Commit d9457362 authored by Sam Lantinga's avatar Sam Lantinga

Fixed bug #157

[patch tweaked to handle older nasm, which doesn't support :function syntax]

------- Comment #5 From Mike Frysinger 2006-05-22 01:24 [reply] -------
Created an attachment (id=132) [edit]
libsdl-hidden-nasm.patch

here's the patch i posted here:
http://www.libsdl.org/pipermail/sdl/2006-March/073618.html

this will hide the symbols dynamically if the build nasm/yasm supports the
hidden stuff ... in other words, this patch should be safe with both older and
new versions of nasm/yasm

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%401873
parent 739db2c7
...@@ -596,11 +596,14 @@ CheckNASM() ...@@ -596,11 +596,14 @@ CheckNASM()
AC_HELP_STRING([--enable-nasm], [use nasm assembly blitters on x86 [[default=yes]]]), AC_HELP_STRING([--enable-nasm], [use nasm assembly blitters on x86 [[default=yes]]]),
, enable_nasm=yes) , enable_nasm=yes)
if test x$enable_video = xyes -a x$enable_assembly = xyes -a x$enable_nasm = xyes; then if test x$enable_video = xyes -a x$enable_assembly = xyes -a x$enable_nasm = xyes; then
AC_PATH_PROG(NASM, yasm)
if test "x$NASM" = x -o "x$NASM" = x'"$NASM"'; then
AC_PATH_PROG(NASM, nasm) AC_PATH_PROG(NASM, nasm)
if test x$NASM != x -a x$NASM != x'"$NASM"'; then fi
if test "x$NASM" != x -a "x$NASM" != x'"$NASM"'; then
AC_DEFINE(SDL_HERMES_BLITTERS) AC_DEFINE(SDL_HERMES_BLITTERS)
SOURCES="$SOURCES $srcdir/src/hermes/*.asm" SOURCES="$SOURCES $srcdir/src/hermes/*.asm"
if test x$NASMFLAGS = x; then if test x"$NASMFLAGS" = x; then
case $ARCH in case $ARCH in
win32) win32)
NASMFLAGS="-f win32" NASMFLAGS="-f win32"
...@@ -613,6 +616,15 @@ AC_HELP_STRING([--enable-nasm], [use nasm assembly blitters on x86 [[default=yes ...@@ -613,6 +616,15 @@ AC_HELP_STRING([--enable-nasm], [use nasm assembly blitters on x86 [[default=yes
;; ;;
esac esac
fi 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(NASM)
AC_SUBST(NASMFLAGS) AC_SUBST(NASMFLAGS)
......
; Some common macros for hermes nasm code
%macro SDL_FUNC 1
%ifdef HIDDEN_VISIBILITY
GLOBAL %1:function hidden
%else
GLOBAL %1
%endif
%endmacro
...@@ -9,8 +9,10 @@ ...@@ -9,8 +9,10 @@
BITS 32 BITS 32
GLOBAL _ConvertMMX %include "common.asm"
GLOBAL _mmxreturn
SDL_FUNC _ConvertMMX
SDL_FUNC _mmxreturn
SECTION .text SECTION .text
......
...@@ -20,12 +20,13 @@ ...@@ -20,12 +20,13 @@
BITS 32 BITS 32
%include "common.asm"
GLOBAL _ConvertMMXpII32_24RGB888 SDL_FUNC _ConvertMMXpII32_24RGB888
GLOBAL _ConvertMMXpII32_16RGB565 SDL_FUNC _ConvertMMXpII32_16RGB565
GLOBAL _ConvertMMXpII32_16BGR565 SDL_FUNC _ConvertMMXpII32_16BGR565
GLOBAL _ConvertMMXpII32_16RGB555 SDL_FUNC _ConvertMMXpII32_16RGB555
GLOBAL _ConvertMMXpII32_16BGR555 SDL_FUNC _ConvertMMXpII32_16BGR555
EXTERN _mmxreturn EXTERN _mmxreturn
......
...@@ -11,10 +11,12 @@ ...@@ -11,10 +11,12 @@
BITS 32 BITS 32
GLOBAL _ConvertX86 %include "common.asm"
GLOBAL _x86return
GLOBAL _Hermes_X86_CPU SDL_FUNC _ConvertX86
SDL_FUNC _x86return
SDL_FUNC _Hermes_X86_CPU
SECTION .text SECTION .text
......
...@@ -10,19 +10,14 @@ ...@@ -10,19 +10,14 @@
; Used with permission. ; Used with permission.
; ;
BITS 32 BITS 32
GLOBAL _ConvertX86p16_32RGB888 %include "common.asm"
GLOBAL _ConvertX86p16_32BGR888
GLOBAL _ConvertX86p16_32RGBA888 SDL_FUNC _ConvertX86p16_16BGR565
GLOBAL _ConvertX86p16_32BGRA888 SDL_FUNC _ConvertX86p16_16RGB555
GLOBAL _ConvertX86p16_24RGB888 SDL_FUNC _ConvertX86p16_16BGR555
GLOBAL _ConvertX86p16_24BGR888 SDL_FUNC _ConvertX86p16_8RGB332
GLOBAL _ConvertX86p16_16BGR565
GLOBAL _ConvertX86p16_16RGB555
GLOBAL _ConvertX86p16_16BGR555
GLOBAL _ConvertX86p16_8RGB332
EXTERN _ConvertX86 EXTERN _ConvertX86
EXTERN _x86return EXTERN _x86return
......
...@@ -9,19 +9,20 @@ ...@@ -9,19 +9,20 @@
; Most routines are (c) Glenn Fiedler (ptc@gaffer.org), used with permission ; Most routines are (c) Glenn Fiedler (ptc@gaffer.org), used with permission
; ;
BITS 32 BITS 32
GLOBAL _ConvertX86p32_32BGR888 %include "common.asm"
GLOBAL _ConvertX86p32_32RGBA888
GLOBAL _ConvertX86p32_32BGRA888 SDL_FUNC _ConvertX86p32_32BGR888
GLOBAL _ConvertX86p32_24RGB888 SDL_FUNC _ConvertX86p32_32RGBA888
GLOBAL _ConvertX86p32_24BGR888 SDL_FUNC _ConvertX86p32_32BGRA888
GLOBAL _ConvertX86p32_16RGB565 SDL_FUNC _ConvertX86p32_24RGB888
GLOBAL _ConvertX86p32_16BGR565 SDL_FUNC _ConvertX86p32_24BGR888
GLOBAL _ConvertX86p32_16RGB555 SDL_FUNC _ConvertX86p32_16RGB565
GLOBAL _ConvertX86p32_16BGR555 SDL_FUNC _ConvertX86p32_16BGR565
GLOBAL _ConvertX86p32_8RGB332 SDL_FUNC _ConvertX86p32_16RGB555
SDL_FUNC _ConvertX86p32_16BGR555
SDL_FUNC _ConvertX86p32_8RGB332
EXTERN _x86return EXTERN _x86return
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment