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
2007-02-19 Andreas Tobler <a.tobler@schweiz.org>
* dyn_load.c (GC_dyld_image_add): Remove ifdef clause and use the macro
GC_GETSECTBYNAME instead.
* include/private/gc_priv.h: Define GC_GETSECTBYNAME according to the
architecture (Darwin).
From-SVN: r132452
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-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
2003-03-04 Hans Boehm <Hans.Boehm@hp.com>
* include/private/gcconfig.h (GC_data_start): declare when needed.
* include/private/gc_priv.h: Include gcconfig.h after ptr_t
declaration.
* dyn_load.c (GC_register_dynamic_libraries_dl_iterate_phdr,
GC_register_dynlib_callback): Register main data for static
executable if dl_iterate_phdr() didn't.
* misc.c (GC_init_inner): Call GC_init_linux_data_start() even
if we don't expect to register main static data.
From-SVN: r63809
* irix_threads.cc (GC_pthread_detach): Do not use REAL_FUNC.
(GC_pthread_create): Fix typo.
(GC_TRY_LOCK): Likewise.
* include/private/gc_locks.h (GC_test_and_set): Only take one
one argument.
(LOCK): Adjust appropriately.
* include/private/gc_priv.h (SIG_SUSPEND): Use SIGRTMIN if
_SIGRTMIN is unavailable.
From-SVN: r53636
libjava:
Hashtable synchronization for PowerPC.
* configure.in: Define SLOW_PTHREAD_SELF if configure.host set
slow_pthread_self. Set up symlink for sysdeps directory.
* configure: Rebuild.
* configure.host: Document more shell variables. Set sysdeps_dir
for most platforms. Set slow_pthread_self for i686. Set
enable_hash_synchronization_default and slow_pthread_self for PowerPC.
* posix-threads.cc (_Jv_ThreadSelf_out_of_line): Use release_set so
that memory barrier is emitted where required.
* prims.cc: 64-bit align static primitive class instances.
* include/posix-threads.h (_Jv_ThreadSelf for SLOW_PTHREAD_SELF): Add
read_barrier() to enforce ordering of reads.
* sysdep/powerpc/locks.h: New file. Implementation of synchronization
primitives for PowerPC.
* sysdep/i386/locks.h: New file. Synchronization primitives for i386
moved from natObject.cc.
* sysdep/alpha/locks.h: Likewise.
* sysdep/ia64/locks.h: Likewise.
* sysdep/generic/locks.h: Likewise.
* java/lang/natObject.cc: Move thread synchronization primitives to
system-dependent headers.
gcc/java:
* decl.c (java_init_decl_processing): Make sure class_type_node
alignment is not less than 64 bits if hash synchronization isenabled.
boehm-gc:
* include/gc_priv.h: Define ALIGN_DOUBLE on 32 bit targets if GCJ
support is enabled, for hash synchronization.
From-SVN: r50523