diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog index 423fe711fbe7a3b1b4326862b39f9e28e10758c9..1ef0f9aba9510624fb7e36dc0c3a1c7cd4895eb7 100644 --- a/boehm-gc/ChangeLog +++ b/boehm-gc/ChangeLog @@ -1,3 +1,8 @@ +1999-06-17 Anthony Green <green@cygnus.com> + + * mach_dep.c (GC_push_regs): FreeBSD-elf support (from + Carlo Dapor <carlo@vis.ethz.ch>). + 1999-05-05 Gilles Zunino <Gilles.Zunino@hei.fr> * configure.in: Switch from irix threads to posix threads diff --git a/boehm-gc/mach_dep.c b/boehm-gc/mach_dep.c index e6087d94684458263aa8dc7bbf48d3b78bde8d97..09a79883fdf9f3ec4592189e26252d04bcb2c954 100644 --- a/boehm-gc/mach_dep.c +++ b/boehm-gc/mach_dep.c @@ -170,7 +170,7 @@ void GC_push_regs() # if defined(I386) &&!defined(OS2) &&!defined(SVR4) &&!defined(MSWIN32) \ && !defined(SCO) && !defined(SCO_ELF) && !(defined(LINUX) \ - && defined(__ELF__)) && !defined(DOS4GW) + && defined(__ELF__)) && !defined(DOS4GW) && !defined(FREEBSD) /* I386 code, generic code does not appear to work */ /* It does appear to work under OS2, and asms dont */ /* This is used for some 38g UNIX variants and for CYGWIN32 */ @@ -183,8 +183,8 @@ void GC_push_regs() asm("pushl %ebx"); asm("call _GC_push_one"); asm("addl $4,%esp"); # endif -# if defined(I386) && defined(LINUX) && defined(__ELF__) - /* This is modified for Linux with ELF (Note: _ELF_ only) */ +# if defined(I386) && (defined(LINUX) || defined(FREEBSD)) && defined(__ELF__) + /* This is modified for Linux/FreeBSD with ELF (Note: _ELF_ only) */ asm("pushl %eax"); asm("call GC_push_one"); asm("addl $4,%esp"); asm("pushl %ecx"); asm("call GC_push_one"); asm("addl $4,%esp"); asm("pushl %edx"); asm("call GC_push_one"); asm("addl $4,%esp");