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 = .