summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'media-libs/libsdl/files/libsdl-1.2.10-PIC-hidden-symbols.patch')
-rw-r--r--media-libs/libsdl/files/libsdl-1.2.10-PIC-hidden-symbols.patch168
1 files changed, 168 insertions, 0 deletions
diff --git a/media-libs/libsdl/files/libsdl-1.2.10-PIC-hidden-symbols.patch b/media-libs/libsdl/files/libsdl-1.2.10-PIC-hidden-symbols.patch
new file mode 100644
index 000000000000..857fc6591aa3
--- /dev/null
+++ b/media-libs/libsdl/files/libsdl-1.2.10-PIC-hidden-symbols.patch
@@ -0,0 +1,168 @@
+kill off textrels by hiding internal symbols
+
+http://bugzilla.libsdl.org/show_bug.cgi?id=157
+http://www.libsdl.org/pipermail/sdl/2006-March/073618.html
+
+--- configure.in
++++ configure.in
+@@ -591,10 +591,13 @@ CheckNASM()
+ , enable_nasm=yes)
+ if test x$enable_video = xyes -a x$enable_assembly = xyes -a x$enable_nasm = xyes; then
+- AC_PATH_PROG(NASM, nasm)
+- if test x$NASM != x -a x$NASM != x'"$NASM"'; then
++ AC_PATH_PROG(NASM, yasm)
++ if test "x$NASM" = x -o "x$NASM" = x'"$NASM"'; then
++ AC_PATH_PROG(NASM, nasm)
++ fi
++ if test "x$NASM" != x -a "x$NASM" != x'"$NASM"'; then
+ AC_DEFINE(SDL_HERMES_BLITTERS)
+ SOURCES="$SOURCES $srcdir/src/hermes/*.asm"
+- if test x$NASMFLAGS = x; then
++ if test x"$NASMFLAGS" = x; then
+ case $ARCH in
+ win32)
+ NASMFLAGS="-f win32"
+@@ -607,6 +610,15 @@ AC_HELP_STRING([--enable-nasm], [use nas
+ ;;
+ esac
+ fi
++ NASMFLAGS="$NASMFLAGS -i $srcdir/src/hermes/"
++
++ dnl See if hidden visibility is supported
++ echo 'GLOBAL _bar:function hidden' > nasm_vis.asm
++ if $NASM $NASMFLAGS nasm_vis.asm -o nasm_vis.o >&AS_MESSAGE_LOG_FD ; then
++ NASMFLAGS="$NASMFLAGS -DHIDDEN_VISIBILITY"
++ fi
++ rm -f nasm_vis.asm nasm_vis.o
++
+ AC_SUBST(NASM)
+ AC_SUBST(NASMFLAGS)
+
+--- src/hermes/mmx_main.asm
++++ src/hermes/mmx_main.asm
+@@ -9,8 +9,10 @@
+
+ BITS 32
+
+-GLOBAL _ConvertMMX
+-GLOBAL _mmxreturn
++%include "common.asm"
++
++SDL_FUNC _ConvertMMX
++SDL_FUNC _mmxreturn
+
+ SECTION .text
+
+--- src/hermes/mmxp2_32.asm
++++ src/hermes/mmxp2_32.asm
+@@ -20,12 +20,13 @@
+
+ BITS 32
+
++%include "common.asm"
+
+-GLOBAL _ConvertMMXpII32_24RGB888
+-GLOBAL _ConvertMMXpII32_16RGB565
+-GLOBAL _ConvertMMXpII32_16BGR565
+-GLOBAL _ConvertMMXpII32_16RGB555
+-GLOBAL _ConvertMMXpII32_16BGR555
++SDL_FUNC _ConvertMMXpII32_24RGB888
++SDL_FUNC _ConvertMMXpII32_16RGB565
++SDL_FUNC _ConvertMMXpII32_16BGR565
++SDL_FUNC _ConvertMMXpII32_16RGB555
++SDL_FUNC _ConvertMMXpII32_16BGR555
+
+ EXTERN _mmxreturn
+
+--- src/hermes/x86_main.asm
++++ src/hermes/x86_main.asm
+@@ -11,10 +11,12 @@
+
+ BITS 32
+
+-GLOBAL _ConvertX86
+-GLOBAL _x86return
++%include "common.asm"
++
++SDL_FUNC _ConvertX86
++SDL_FUNC _x86return
+
+-GLOBAL _Hermes_X86_CPU
++SDL_FUNC _Hermes_X86_CPU
+
+ SECTION .text
+
+--- src/hermes/x86p_16.asm
++++ src/hermes/x86p_16.asm
+@@ -10,19 +10,14 @@
+ ; Used with permission.
+ ;
+
+-
+ BITS 32
+
+-GLOBAL _ConvertX86p16_32RGB888
+-GLOBAL _ConvertX86p16_32BGR888
+-GLOBAL _ConvertX86p16_32RGBA888
+-GLOBAL _ConvertX86p16_32BGRA888
+-GLOBAL _ConvertX86p16_24RGB888
+-GLOBAL _ConvertX86p16_24BGR888
+-GLOBAL _ConvertX86p16_16BGR565
+-GLOBAL _ConvertX86p16_16RGB555
+-GLOBAL _ConvertX86p16_16BGR555
+-GLOBAL _ConvertX86p16_8RGB332
++%include "common.asm"
++
++SDL_FUNC _ConvertX86p16_16BGR565
++SDL_FUNC _ConvertX86p16_16RGB555
++SDL_FUNC _ConvertX86p16_16BGR555
++SDL_FUNC _ConvertX86p16_8RGB332
+
+ EXTERN _ConvertX86
+ EXTERN _x86return
+--- src/hermes/x86p_32.asm
++++ src/hermes/x86p_32.asm
+@@ -9,19 +9,20 @@
+ ; Most routines are (c) Glenn Fiedler (ptc@gaffer.org), used with permission
+ ;
+
+-
+ BITS 32
+
+-GLOBAL _ConvertX86p32_32BGR888
+-GLOBAL _ConvertX86p32_32RGBA888
+-GLOBAL _ConvertX86p32_32BGRA888
+-GLOBAL _ConvertX86p32_24RGB888
+-GLOBAL _ConvertX86p32_24BGR888
+-GLOBAL _ConvertX86p32_16RGB565
+-GLOBAL _ConvertX86p32_16BGR565
+-GLOBAL _ConvertX86p32_16RGB555
+-GLOBAL _ConvertX86p32_16BGR555
+-GLOBAL _ConvertX86p32_8RGB332
++%include "common.asm"
++
++SDL_FUNC _ConvertX86p32_32BGR888
++SDL_FUNC _ConvertX86p32_32RGBA888
++SDL_FUNC _ConvertX86p32_32BGRA888
++SDL_FUNC _ConvertX86p32_24RGB888
++SDL_FUNC _ConvertX86p32_24BGR888
++SDL_FUNC _ConvertX86p32_16RGB565
++SDL_FUNC _ConvertX86p32_16BGR565
++SDL_FUNC _ConvertX86p32_16RGB555
++SDL_FUNC _ConvertX86p32_16BGR555
++SDL_FUNC _ConvertX86p32_8RGB332
+
+ EXTERN _x86return
+
+--- src/hermes/common.asm
++++ src/hermes/common.asm
+@@ -0,0 +1,9 @@
++; Some common macros for hermes nasm code
++
++%macro SDL_FUNC 1
++%ifdef HIDDEN_VISIBILITY
++GLOBAL %1:function hidden
++%else
++GLOBAL %1:function
++%endif
++%endmacro