nixpkgs/pkgs/development/libraries/aterm/aterm-mingw-asm.patch

499 lines
14 KiB
Diff
Raw Normal View History

diff -rc aterm-2.8/aterm/gc.c aterm-2.8-new/aterm/gc.c
*** aterm-2.8/aterm/gc.c 2008-11-10 13:54:22.000000000 +0100
--- aterm-2.8-new/aterm/gc.c 2010-08-23 17:04:56.000000000 +0200
***************
*** 260,317 ****
AFun oddSym;
#endif
- #ifdef WIN32
-
- unsigned int r_eax, r_ebx, r_ecx, r_edx, \
- r_esi, r_edi, r_esp, r_ebp;
- ATerm reg[8], real_term;
-
- __asm {
- /* Get the registers into local variables to check them
- for aterms later. */
- mov r_eax, eax
- mov r_ebx, ebx
- mov r_ecx, ecx
- mov r_edx, edx
- mov r_esi, esi
- mov r_edi, edi
- mov r_esp, esp
- mov r_ebp, ebp
- }
- /* Put the register-values into an array */
- reg[0] = (ATerm) r_eax;
- reg[1] = (ATerm) r_ebx;
- reg[2] = (ATerm) r_ecx;
- reg[3] = (ATerm) r_edx;
- reg[4] = (ATerm) r_esi;
- reg[5] = (ATerm) r_edi;
- reg[6] = (ATerm) r_esp;
- reg[7] = (ATerm) r_ebp;
-
- for(i=0; i<8; i++) {
- real_term = AT_isInsideValidTerm(reg[i]);
- if (real_term != NULL) {
- AT_markTerm(real_term);
- }
- if (AT_isValidSymbol((Symbol)reg[i])) {
- AT_markSymbol((Symbol)reg[i]);
- }
- }
-
- /* The register variables are on the stack aswell
- I set them to zero so they won't be processed again when
- the stack is traversed. The reg-array is also in the stack
- but that will be adjusted later */
- r_eax = 0;
- r_ebx = 0;
- r_ecx = 0;
- r_edx = 0;
- r_esi = 0;
- r_edi = 0;
- r_esp = 0;
- r_ebp = 0;
-
- #else
jmp_buf env;
/* Traverse possible register variables */
--- 260,265 ----
***************
*** 320,326 ****
start = (ATerm *)((char *)env);
stop = ((ATerm *)(((char *)env) + sizeof(jmp_buf)));
mark_memory(start, stop);
- #endif
stackTop = stack_top();
--- 268,273 ----
***************
*** 385,442 ****
AFun oddSym;
#endif
- #ifdef WIN32
-
- unsigned int r_eax, r_ebx, r_ecx, r_edx, \
- r_esi, r_edi, r_esp, r_ebp;
- ATerm reg[8], real_term;
-
- __asm {
- /* Get the registers into local variables to check them
- for aterms later. */
- mov r_eax, eax
- mov r_ebx, ebx
- mov r_ecx, ecx
- mov r_edx, edx
- mov r_esi, esi
- mov r_edi, edi
- mov r_esp, esp
- mov r_ebp, ebp
- }
- /* Put the register-values into an array */
- reg[0] = (ATerm) r_eax;
- reg[1] = (ATerm) r_ebx;
- reg[2] = (ATerm) r_ecx;
- reg[3] = (ATerm) r_edx;
- reg[4] = (ATerm) r_esi;
- reg[5] = (ATerm) r_edi;
- reg[6] = (ATerm) r_esp;
- reg[7] = (ATerm) r_ebp;
-
- for(i=0; i<8; i++) {
- real_term = AT_isInsideValidTerm(reg[i]);
- if (real_term != NULL) {
- AT_markTerm_young(real_term);
- }
- if (AT_isValidSymbol((Symbol)reg[i])) {
- AT_markSymbol_young((Symbol)reg[i]);
- }
- }
-
- /* The register variables are on the stack aswell
- I set them to zero so they won't be processed again when
- the stack is traversed. The reg-array is also in the stack
- but that will be adjusted later */
- r_eax = 0;
- r_ebx = 0;
- r_ecx = 0;
- r_edx = 0;
- r_esi = 0;
- r_edi = 0;
- r_esp = 0;
- r_ebp = 0;
-
- #else
jmp_buf env;
/* Traverse possible register variables */
--- 332,337 ----
***************
*** 445,451 ****
start = (ATerm *)((char *)env);
stop = ((ATerm *)(((char *)env) + sizeof(jmp_buf)));
mark_memory_young(start, stop);
- #endif
stackTop = stack_top();
start = MIN(stackTop, stackBot);
--- 340,345 ----
Only in aterm-2.8-new/aterm: gc.c.orig
diff -rc aterm-2.8/configure aterm-2.8-new/configure
*** aterm-2.8/configure 2008-11-10 13:54:27.000000000 +0100
--- aterm-2.8-new/configure 2010-08-23 17:08:10.000000000 +0200
***************
*** 19970,20295 ****
CURDATE=`date`
- echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5
- echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6
- if test "${ac_cv_c_bigendian+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- # See if sys/param.h defines the BYTE_ORDER macro.
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
- _ACEOF
- cat confdefs.h >>conftest.$ac_ext
- cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h. */
- #include <sys/types.h>
- #include <sys/param.h>
-
- int
- main ()
- {
- #if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
- bogus endian macros
- #endif
-
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (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); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (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
- # It does; now see whether it defined to BIG_ENDIAN or not.
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
- _ACEOF
- cat confdefs.h >>conftest.$ac_ext
- cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h. */
- #include <sys/types.h>
- #include <sys/param.h>
-
- int
- main ()
- {
- #if BYTE_ORDER != BIG_ENDIAN
- not big endian
- #endif
-
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (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); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (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_bigendian=yes
- else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_c_bigendian=no
- fi
- rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
- # It does not; compile a test program.
- if test "$cross_compiling" = yes; then
- # try to guess the endianness by grepping values into an object file
- ac_cv_c_bigendian=unknown
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
- _ACEOF
- cat confdefs.h >>conftest.$ac_ext
- cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h. */
- short ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
- short ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
- void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; }
- short ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
- short ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
- void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; }
- int
- main ()
- {
- _ascii (); _ebcdic ();
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (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); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (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
- if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then
- ac_cv_c_bigendian=yes
- fi
- if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
- if test "$ac_cv_c_bigendian" = unknown; then
- ac_cv_c_bigendian=no
- else
- # finding both strings is unlikely to happen, but who knows?
- ac_cv_c_bigendian=unknown
- fi
- fi
- else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
- fi
- rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- else
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
- _ACEOF
- cat confdefs.h >>conftest.$ac_ext
- cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h. */
- int
- main ()
- {
- /* Are we little or big endian? From Harbison&Steele. */
- union
- {
- long l;
- char c[sizeof (long)];
- } u;
- u.l = 1;
- exit (u.c[sizeof (long) - 1] == 1);
- }
- _ACEOF
- rm -f 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='./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_bigendian=no
- else
- echo "$as_me: program exited with status $ac_status" >&5
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
- ( exit $ac_status )
- ac_cv_c_bigendian=yes
- fi
- rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- fi
- rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
- echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5
- echo "${ECHO_T}$ac_cv_c_bigendian" >&6
- case $ac_cv_c_bigendian in
- yes)
-
- cat >>confdefs.h <<\_ACEOF
- #define WORDS_BIGENDIAN 1
- _ACEOF
- ;;
- no)
- ;;
- *)
- { { echo "$as_me:$LINENO: error: unknown endianness
- presetting ac_cv_c_bigendian=no (or yes) will help" >&5
- echo "$as_me: error: unknown endianness
- presetting ac_cv_c_bigendian=no (or yes) will help" >&2;}
- { (exit 1); exit 1; }; } ;;
- esac
-
-
- echo "$as_me:$LINENO: checking whether float word ordering is big endian" >&5
- echo $ECHO_N "checking whether float word ordering is big endian... $ECHO_C" >&6
- if test "${ax_cv_c_float_word_order_big+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
- if test "$cross_compiling" = yes; then
- { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
- See \`config.log' for more details." >&5
- echo "$as_me: error: cannot run test program while cross compiling
- See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
- else
- cat >conftest.$ac_ext <<_ACEOF
-
- /* This code returns 0 if the float word order is big endian and >= 1 if it is little endian. */
- main(){
- #ifdef WORDS_BIGENDIAN
- return 0; /* If the system's encoding is big endian, so is the float word order. NOTE: If the encoding is big endian and WORDS_BIGENDIAN isn't defined, the code below will still return the correct float word order (big). */
- #else
- union
- {
- double d;
- /* IEEE754 little endian encoded floating point number structure with little endian float word order. */
- struct{
- unsigned int mantissa1:32;
- unsigned int mantissa0:20;
- unsigned int exponent:11;
- unsigned int negative:1;
- } ieee;
- } u;
- u.d = -1;
- return (u.ieee.negative == 1);
- #endif
- }
-
- _ACEOF
- rm -f 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='./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
- ax_cv_c_float_word_order_big=yes
- else
- echo "$as_me: program exited with status $ac_status" >&5
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
- ( exit $ac_status )
- ax_cv_c_float_word_order_big=no
- fi
- rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
-
-
- fi
- echo "$as_me:$LINENO: result: $ax_cv_c_float_word_order_big" >&5
- echo "${ECHO_T}$ax_cv_c_float_word_order_big" >&6
-
- case $ax_cv_c_float_word_order_big in
- yes)
-
-
- cat >>confdefs.h <<\_ACEOF
- #define FLOAT_WORD_ORDER_BIG 1
- _ACEOF
-
-
- ;;
- no)
- ;;
- *)
-
- { { echo "$as_me:$LINENO: error: Unable to determain float word ordering. You need to manually preset ax_cv_c_float_word_order_big=(yes / no).
- " >&5
- echo "$as_me: error: Unable to determain float word ordering. You need to manually preset ax_cv_c_float_word_order_big=(yes / no).
- " >&2;}
- { (exit 1); exit 1; }; }
-
- ;;
- esac
-
-
for ac_func in strdup
--- 19970,19975 ----
diff -rc aterm-2.8/Makefile.in aterm-2.8-new/Makefile.in
*** aterm-2.8/Makefile.in 2008-11-10 13:54:28.000000000 +0100
--- aterm-2.8-new/Makefile.in 2010-08-23 17:05:27.000000000 +0200
***************
*** 217,223 ****
pkgconfig_DATA = ${PACKAGE}.pc
! SUBDIRS = aterm utils test
ACLOCAL_AMFLAGS = -I .
subdir = .
--- 217,223 ----
pkgconfig_DATA = ${PACKAGE}.pc
! SUBDIRS = aterm utils
ACLOCAL_AMFLAGS = -I .
subdir = .