PR target/42811 (prerequisite)
* include/private/gc_priv.h (struct roots) [CYGWIN32]: Don't
declare r_next member on Cygwin as on other windows hosts.
(LOG_RT_SIZE) [CYGWIN32]: Don't define likewise.
(RT_SIZE) [CYGWIN32]: Likewise.
(struct _GC_arrays) [CYGWIN32]: Do declare _heap_bases[] member
likewise.
(GC_heap_bases) [CYGWIN32]: Do define likewise.
(struct _SYSTEM_INFO) [CYGWIN32]: Do forward-declare likewise.
(GC_sysinfo) [CYGWIN32]: Do declare extern likewise.
(GC_n_heap_bases) [CYGWIN32]: Likewise.
(GC_is_tmp_root) [CYGWIN32]: Do prototype likewise.
* include/private/gcconfig.h (GC_win32_get_mem) [CYGWIN32]: Likewise.
(GET_MEM) [CYGWIN32]: Do define likewise.
* boehm-gc/ptr_chck.c (GC_is_visible) [CYGWIN32]: Do handle dynamic
registration likewise.
* boehm-gc/os_dep.c (GC_setpagesize) [CYGWIN32]: Do define likewise.
(GC_no_win32_dlls) [CYGWIN32]: Define as constant false, unlike
other windows hosts.
(GC_sysinfo) [CYGWIN32]: Define as on other windows hosts.
(GC_n_heap_bases) [CYGWIN32]: Likewise.
(GLOBAL_ALLOC_TEST) [CYGWIN32]: Likewise.
(GC_win32_get_mem) [CYGWIN32]: Likewise, but wrapping GC_unix_get_mem
rather than GlobalAlloc/VirtualAlloc.
(GC_win32_free_heap) [CYGWIN32]: Likewise, but wrapping free instead
of GlobalFree (even though the function body is optimised away).
* boehm-gc/mark_rts.c (add_roots_to_index) [CYGWIN32]: Define as on
other windows hosts.
(GC_add_roots_inner) [CYGWIN32]: Avoid overlapping or adjacent
intervals likewise.
(GC_clear_roots) [CYGWIN32]: Clear GC_root_index[] likewise.
(GC_rebuild_root_index) [CYGWIN32]: Define as on other windows hosts.
(GC_remove_tmp_roots) [CYGWIN32]: Call it likewise.
(GC_remove_roots) [CYGWIN32]: Don't define, as on other windows hosts.
(GC_is_tmp_root) [CYGWIN32]: Define, as on other windows hosts.
(GC_cond_register_dynamic_libraries) [CYGWIN32]: Handle temporary
roots and dynamic registration likewise.
* boehm-gc/dyn_load.c (GC_has_static_roots) [CYGWIN32]: Define as on
other windows hosts.
(GC_register_has_static_roots_callback) [CYGWIN32]: Likewise.
(GC_cond_add_roots) [CYGWIN32]: Likewise.
(GC_register_main_static_data) [CYGWIN32]: Define to always return
false, as on MSWINCE
(HAVE_REGISTER_MAIN_STATIC_DATA) [CYGWIN32]: Define as on other
windows hosts.
(GC_warn_fb) [CYGWIN32]: Likewise.
(GC_disallow_ignore_fb) [CYGWIN32]: Likewise.
(GC_ignore_fb_mb) [CYGWIN32]: Likewise.
(GC_ignore_fb) [CYGWIN32]: Likewise.
(is_frame_buffer) [CYGWIN32]: Likewise.
(GC_dump_meminfo) [CYGWIN32]: Likewise.
(GC_wnt) [CYGWIN32]: Define to constant true.
(GC_register_dynamic_libraries) [CYGWIN32]: Define as on other
windows hosts.
From-SVN: r157604
* os_dep.c: Use the POSIX signal API in preference to the BSD API.
Generate a compilation error if neither the POSIX nor BSD APIs can
be detected.
From-SVN: r154747
2007-01-19 Andreas Tobler <a.tobler@schweiz.org>
* os_dep.c (defined(MPROTECT_VDB) && defined(DARWIN)): Moved recently
added defines to include/private/gc_priv.h
* darwin_stop_world.c: Removed the above defines.
(catch_exception_raise): Added THREAD_FLD in exc_state for POWERPC too.
* include/private/gc_priv.h: Moved definitions from darwin_stop_world.c
and os_dep.c to here. Fixed THREAD definition fixes for ppc64.
From-SVN: r120977
2007-01-15 Andreas Tobler <a.tobler@schweiz.org>
* os_dep.c (defined(MPROTECT_VDB) && defined(DARWIN)): Adjust mail
reference.
(catch_exception_raise): Fix typo in the I386 exc_state.
From-SVN: r120801
2007-01-11 Andreas Tobler <a.tobler@schweiz.org>
* configure.ac: Replaced HAS_I386_THREAD_STATE_* with
HAS_X86_THREAD_STATE32_* and HAS_X86_THREAD_STATE64_* respectively.
* configure: Regenerated.
* include/private/gcconfig.h (DARWIN): Added X86_64 define for Darwin.
Added base definitions for the X86_64 Darwin port.
* include/private/gc_priv.h: Added definitions for Darwin MACH thread
operations. Moved existing THREAD_STATE info from darwin_stop_world.c.
* darwin_stop_world.c: Removed THREAD_STATE info. Added
HAS_X86_THREAD_STATE64___RAX. And replaced HAS_I386_THREAD_STATE___EAX
with HAS_X86_THREAD_STATE32___EAX.
(GC_push_all_stacks): Use GC_MACH_THREAD_STATE_COUNT. Add code for
X86_64 Darwin.
* dyn_load.c (GC_dyld_name_for_hdr): Use GC_MACH_HEADER.
(GC_dyld_image_add): Use GC_MACH_HEADER and GC_MACH_SECTION.
Distinguish between getsectbynamefromheader_64 and
getsectbynamefromheader.
(GC_dyld_image_remove): Likewise.
* os_dep.c (GC_dirty_init): Use GC_MACH_THREAD_STATE.
(catch_exception_raise): Introduce exception information for I386 and
X86_64 Darwin. Add X86_64 for exc_state.faultvaddr.
From-SVN: r120684
* os_dep.c (GC_wnt): Define.
(GC_init_win32): Set GC_wnt.
* dyn_load.c (GC_register_dynamic_libraries): Consider MEM_PRIVATE
sections also on Windows 9x/ME.
From-SVN: r114818
* os_dep.c, include/private/gc_locks.h: Import CRIS port by
Simon Posnjak from gc6.4.
* include/private/gcconfig.h: Ditto. Add M32R note from gc6.4.
From-SVN: r98414
2005-04-17 David S. Miller <davem@davemloft.net>
* include/private/gcconfig.h (sparc-linux): Use LINUX_STACKBOTTOM.
* os_dep.c (GC_linux_stack_base): Check for bug present in some
Sparc glibc variants where __libc_stack_end is erroneously set
to "1". Fallback to procfs code in that case.
From-SVN: r98303
* include/private/gcconfig.h: Add unified test for FreeBSD.
Support FreeBSD/alpha.
* os_dep.c: Do not include <machine/trap.h> unless available.
(GC_freebsd_stack_base): Fix types.
From-SVN: r51159
2002-03-12 Adam Megacz <adam@xwt.org>
* dyn_load.c: Renamed GC_win32s to GC_no_win32_dlls.
* misc.c: Renamed GC_is_win32s() to GC_no_win32_dlls
* os_dep.c: Renamed GC_win32s to GC_no_win32_dlls and
statically initialized it to TRUE if compiling with GCC.
* win32_threads.c (thread_start): We no longer use SEH if
compiling with GCC.
* mark.c (GC_mark_some): We no longer use SEH if
compiling with GCC.
From-SVN: r50671
2001-04-04 Hans Boehm <hans_boehm@hp.com>
* finalize.c:
- Accomodate finalization requests for static objects.
(Will be required by hash synchronization. May be needed
in some configurations now.)
* gc_priv.h:
- Define MIN_WORDS. All allocation requests are rounded
up to at least this size. Removes a subtle assumption that
Java objects have a 2 word header.
* gcconfig.h:
- Adjust Linux/IA64 configuration for non-ancient kernels.
(Necessary fix for IA64.)
* linux_threads.c:
- Fix syntax error in currently unused code. Will be needed
for Linux/PA-RISC.
* malloc.c:
- Handle MIN_WORDS.
* misc.c:
- Handle MIN_WORDS.
- Change stack cleaning code to typically clear about one tenth
the memory it used to in the threads configuration. Occasionally
still clear more. (This is really a fix for a long-standing
and fairly significant performance bug with threads.)
* os_dep.c:
- Fix the code for finding the beginning of the data segment under
Linux. I believe this is necessary for some IA64 Linux
distributions. It will also helo other platforms, though those
may additionally require a gcconfig.h adjustment. (This basically
works around the absence of a data_start or __data_start
definition in glibc.)
* test.c:
- Handle rounding due to MIN_WORDS.
From-SVN: r41102
2000-04-26 Jakub Jelinek <jakub@redhat.com>
* gcconfig.h (SPARC): Define ALIGNMENT to 8 for 64bit SPARC.
(SPARC/LINUX): Use GC_SysVGetDataStart instead of LINUX_DATA_START
- sparc glibc does not provide it.
(SAVE_CALL_CHAIN, ASM_CLEAR_CODE): Define on sparc*-linux*.
Make STACKBOTTOM depend on the wordsize.
* os_dep.c (GC_SysVGetDataStart): Compile in on sparc*-linux*.
(struct frame): Declare on sparc*-linux*.
(GC_save_callers): Bias the frame pointers if needed (sparc64).
* mach_dep.c (GC_save_regs_in_stack): Optimize on sparc32.
Implement on sparc64.
(GC_clear_stack_inner): Implement on sparc64.
* gc_priv.h (GC_test_and_set): Implement for sparc.
* linux_threads.c (GC_suspend_handler, GC_push_all_stacks): Use
From-SVN: r33452
* gcconfig.h (DATASTART): Define as (&data_start) for PowerPC
Linux.
(DYNAMIC_LOADING): Define for PowerPC Linux.
* os_dep.c: Remove some special cases for PowerPC Linux.
* misc.c (GC_init_inner): Don't call GC_init_linux_data_start
for PowerPC Linux.
From-SVN: r30873