From f814cf87af8911a549db8a6e5c4964c73f986c56 Mon Sep 17 00:00:00 2001 From: Christian Costa Date: Sun, 23 Mar 2003 00:18:26 +0000 Subject: [PATCH] Make use of .half and/or .asciiz assembler keywords when necessary. --- configure | 120 ++++++++++++++++++++++++++++++++++++++++++++++- configure.ac | 26 +++++++++- include/config.h.in | 9 ++-- tools/winebuild/spec32.c | 10 ++-- 4 files changed, 154 insertions(+), 11 deletions(-) diff --git a/configure b/configure index 7f2674ff948..1bf05d5e03d 100755 --- a/configure +++ b/configure @@ -11141,7 +11141,125 @@ if test "$ac_cv_c_asm_string" = "yes" then cat >>confdefs.h <<\_ACEOF -#define HAVE_ASM_STRING 1 +#define __ASM_STRING ".string" +_ACEOF + +else + echo "$as_me:$LINENO: checking whether assembler accepts .asciz" >&5 +echo $ECHO_N "checking whether assembler accepts .asciz... $ECHO_C" >&6 +if test "${ac_cv_c_asm_asciz+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +void ac_asm(void) { asm(".data\n\t.asciz \"test\"\n\t.text"); } + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_c_asm_asciz="yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_c_asm_asciz="no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_c_asm_asciz" >&5 +echo "${ECHO_T}$ac_cv_c_asm_asciz" >&6 + if test "$ac_cv_c_asm_asciz" = "yes" + then + cat >>confdefs.h <<\_ACEOF +#define __ASM_STRING ".asciz" +_ACEOF + + else + cat >>confdefs.h <<\_ACEOF +#define __ASM_STRING ".ascii" +_ACEOF + + fi +fi + + +echo "$as_me:$LINENO: checking whether assembler accepts .short" >&5 +echo $ECHO_N "checking whether assembler accepts .short... $ECHO_C" >&6 +if test "${ac_cv_c_asm_short+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +void ac_asm(void) { asm(".data\n\t.short 1\n\t.text"); } + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_c_asm_short="yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_c_asm_short="no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_c_asm_short" >&5 +echo "${ECHO_T}$ac_cv_c_asm_short" >&6 +if test "$ac_cv_c_asm_short" = "yes" +then + +cat >>confdefs.h <<\_ACEOF +#define __ASM_SHORT ".short" +_ACEOF + +else + cat >>confdefs.h <<\_ACEOF +#define __ASM_SHORT ".half" _ACEOF fi diff --git a/configure.ac b/configure.ac index cd3a8431e3d..506c3f517f3 100644 --- a/configure.ac +++ b/configure.ac @@ -732,14 +732,36 @@ else AC_DEFINE([__ASM_NAME(name)], [name]) fi -dnl **** Check for .string in assembler **** +dnl **** Check how to do strings in assembler **** AC_CACHE_CHECK([whether assembler accepts .string], ac_cv_c_asm_string, WINE_TRY_ASM_LINK([".data\n\t.string \"test\"\n\t.text"],,, ac_cv_c_asm_string="yes",ac_cv_c_asm_string="no")) if test "$ac_cv_c_asm_string" = "yes" then - AC_DEFINE(HAVE_ASM_STRING, 1, [Define to use .string instead of .ascii]) + AC_DEFINE(__ASM_STRING, [".string"], [Define to the assembler keyword used to specify an ASCII string]) +else + AC_CACHE_CHECK([whether assembler accepts .asciz], ac_cv_c_asm_asciz, + WINE_TRY_ASM_LINK([".data\n\t.asciz \"test\"\n\t.text"],,, + ac_cv_c_asm_asciz="yes",ac_cv_c_asm_asciz="no")) + if test "$ac_cv_c_asm_asciz" = "yes" + then + AC_DEFINE(__ASM_STRING, [".asciz"]) + else + AC_DEFINE(__ASM_STRING, [".ascii"]) + fi +fi + +dnl **** Check for .short in assembler **** + +AC_CACHE_CHECK([whether assembler accepts .short], ac_cv_c_asm_short, + WINE_TRY_ASM_LINK([".data\n\t.short 1\n\t.text"],,, + ac_cv_c_asm_short="yes",ac_cv_c_asm_short="no")) +if test "$ac_cv_c_asm_short" = "yes" +then + AC_DEFINE(__ASM_SHORT, [".short"], [Define to the assembler keyword used to specify a word value]) +else + AC_DEFINE(__ASM_SHORT, [".half"]) fi dnl **** Check for working dll **** diff --git a/include/config.h.in b/include/config.h.in index 91274d030a0..b7a0808f060 100644 --- a/include/config.h.in +++ b/include/config.h.in @@ -35,9 +35,6 @@ /* Define if you have ARTS sound server */ #undef HAVE_ARTS -/* Define to use .string instead of .ascii */ -#undef HAVE_ASM_STRING - /* Define to 1 if you have the