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
This commit is contained in:
parent
739db2c78e
commit
d94573621a
7 changed files with 57 additions and 35 deletions
18
configure.in
18
configure.in
|
@ -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, nasm)
|
AC_PATH_PROG(NASM, yasm)
|
||||||
if test x$NASM != x -a x$NASM != x'"$NASM"'; then
|
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)
|
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
|
||||||
;;
|
;;
|
||||||
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)
|
||||||
|
|
||||||
|
|
9
src/hermes/common.asm
Normal file
9
src/hermes/common.asm
Normal file
|
@ -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
|
||||||
|
%endif
|
||||||
|
%endmacro
|
|
@ -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 @@
|
||||||
|
|
||||||
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 @@
|
||||||
|
|
||||||
BITS 32
|
BITS 32
|
||||||
|
|
||||||
GLOBAL _ConvertX86
|
%include "common.asm"
|
||||||
GLOBAL _x86return
|
|
||||||
|
SDL_FUNC _ConvertX86
|
||||||
|
SDL_FUNC _x86return
|
||||||
|
|
||||||
GLOBAL _Hermes_X86_CPU
|
SDL_FUNC _Hermes_X86_CPU
|
||||||
|
|
||||||
SECTION .text
|
SECTION .text
|
||||||
|
|
||||||
|
|
|
@ -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 @@
|
||||||
; 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
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue