hboehm [Thu, 7 Jun 2007 02:53:32 +0000 (02:53 +0000)]
2007-06-06 Hans Boehm <Hans.Boehm@hp.com>
* Makefile.am, Makefile.direct: Add NT_X64_STATIC_THREADS_MAKEFILE.
* Makefile.in: Regenerate.
* NT_X64_STATIC_THREADS_MAKEFILE: Fix warning flags.
* allochblk.c, alloc.c, blacklst.c, dbg_malc.c, dyn_load.c,
finalize.c, headers.c, mach_dep.c, malloc.c, mark.c, misc.c,
obj_map.c, os_dep.c, ptr_chck.c, reclaim.c, typd_mlc.c,
win32_threads.c, cord/de_win.c, include/gc_mark.h,
include/private/gc_hdrs.h, include/private/gc_pmark.h,
include/private/gc_priv.h, tests/test_cpp.cc:
Replace old style function declarations. Clean up integral types.
Remove register declarations. The change in malloc.c and the
"int descr" declaration in mark.c are the most likely to have
been real bugs outside of win64.
* msvc_dbg.c: Disable on win64.
* win32_threads.c: Add AMD64 support.
* include/gc.h: no backtrace on AMD64 for now.
hboehm [Wed, 6 Jun 2007 19:58:55 +0000 (19:58 +0000)]
2007-06-06 Hans Boehm <Hans.Boehm@hp.com>
* include/gc.h: (GC_word, GC_signed_word): Fix win64 definitions.
Don't include windows.h in an extern "C" context.
* include/private/gcconfig.h: Fix win64/X86_64 configuration.
* tests/test.c: Eliminate more old style function definitions.
Cleanup pointer and integer casts for win64.
* tests/test_cpp.cc: Don't include gc_priv.h.
* NT_STATIC_THREADS_MAKEFILE: Restrict suffixes for VC++ 2005.
* NT_X64_STATIC_THREADS_MAKEFILE: New.
hboehm [Wed, 6 Jun 2007 19:49:20 +0000 (19:49 +0000)]
2007-06-06 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Romano Paolo Tenca)
* include/gc.h: (GC_word, GC_signed_word): Fix win64 definitions.
Don't include windows.h in an extern "C" context.
* include/private/gcconfig.h: Fix win64/X86_64 configuration.
* tests/test.c: Eliminate more old style function definitions.
Cleanup pointer and integer casts for win64.
* tests/test_cpp.cc: Don't include gc_priv.h.
* NT_STATIC_THREADS_MAKEFILE: Restrict suffixes for VC++ 2005.
* NT_X64_STATIC_THREADS_MAKEFILE: New.
hboehm [Wed, 6 Jun 2007 19:29:05 +0000 (19:29 +0000)]
2007-06-06 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Romano Paolo Tenca)
* win32_threads.c: Separate out DEBUG_WIN32_PTHREADS_STACK. Ignore
FINISHED threads for suspension. (GC_pthread_join): Add
pthread_self() cast. (GC_pthread_start_inner): Execute cleanup
handler when popping it.
* include/private/gc_locks.h: Inline THREAD_EQUAL for
GC_WIN32_PTHREADS. Define USE_PTHREAD_LOCKS only if we have
pthreads.
hboehm [Thu, 24 May 2007 05:18:06 +0000 (05:18 +0000)]
2007-05-23 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Romano Paolo Tenca)
* gc_dlopen.c, thread_local_alloc.c, threadlibs.c, win32_threads.c,
tests/test.c: Accomodate GC_WIN32_PTHREADS.
* include/gc.h: Don't include windows.h for GC_WIN32_PTHREADS.
* include/gc_config_macros.h: Define both PTHREADS and
GC_WIN32_THREADS.
* include/private/gc_locks.h: Nonstandard definitions of
NUMERIC_THREAD_ID for GC_WIN32_PTHREADS.
* doc/README.win32, Makefile.direct: Include documentation
for GC_WIN32_PTHREADS.
* Makefile.direct: Remove some anachronisms in the documentation.
hboehm [Tue, 22 May 2007 19:35:54 +0000 (19:35 +0000)]
2007-05-22 Hans Boehm <Hans.Boehm@hp.com>
* malloc.c(GC_free): Ignore bad frees on MSWIN32 with REDIRECT_MALLOC.
* NT_MAKEFILE: msvc_dbg.h is in include/private. Don't use cvars
rc.
* misc.c (WIN32 GC_write): Define GC_need_to_lock in single-threaded
case.
* win32_threads.c: Test for __MINGW32__ in addition to _MINGW_VER.
(GC_CreateThread, GC_beginthreadex): Deallocate args even if we fail.
* include/gc.h: Add GC_reachable_here(). (GC_WinMain): Add GC_API.
(GC_beginthreadex, GC_endthreadex, GC_ExitThread): Declare.
* tests/test.c: Add GC_reachable_here() call.
hboehm [Fri, 11 May 2007 00:30:36 +0000 (00:30 +0000)]
2007-05-10 Hans Boehm <Hans.Boehm@hp.com>
* include/gc_cpp.h: Documentation updates.
* include/gc_config_macros.h: Don't check for __ppc__ to set
DARWIN_THREADS.
* Makefile.am: Include configure_atomic_ops.sh in dist.
* Makefile.in: Regenerate.
hboehm [Tue, 1 May 2007 20:45:14 +0000 (20:45 +0000)]
2007-05-01 Hans Boehm <Hans.Boehm@hp.com>
(and Manuel Serrano, Craig McDaniel)
* configure.ac: Comment out redundant
AC_DEFINE(NO_EXECUTE_PERMISSION).
* configure: Regenerate.
* sparc_mach_dep.S: Remove single quote in comment.
* include/private/gcconfig.h: Fix DATAEND for NONSTOP.
* win32_threads.c: Include stdint.h for Mingw. Add GC_API for DllMain.
(GC_use_DllMain): Fix assertion.
a_tobler [Wed, 14 Feb 2007 20:13:00 +0000 (20:13 +0000)]
2007-02-14 Andreas Tobler <a.tobler@schweiz.org>
* configure.ac: Introduce extra_ldflags_libgc. Use it for Darwin.
* configure: Regenerate.
* Makefile.am (libgc_la_LDFLAGS): Use extra_ldflags_libgc.
* Makefile.in: Regenerate.
* include/private/gcconfig.h: Enable MPROTECT_VDB for all Darwin
targets. Remove comments.
Prepare ppc64 support for Darwin.
hboehm [Thu, 25 Jan 2007 23:43:10 +0000 (23:43 +0000)]
2007-01-25 Petr Salinger and Hans Boehm <Hans.Boehm@hp.com>
* include/private/gc_priv.h (NEED_FIND_LIMIT, FREEBSD variant):
also define for X86_64.
* configure.ac: Move generic gnu (Hurd) case to below kfreebsd case.
* configure: Regenerate.
* doc/README.changes: Point to ChangeLog.
a_tobler [Thu, 25 Jan 2007 05:18:27 +0000 (05:18 +0000)]
2007-01-25 Andreas Tobler <a.tobler@schweiz.org>
* darwin_stop_world.c: Move THREAD_FLD defines to ...
* include/private/gc_priv.h: ... here.
Fix THREAD_STATE definitions for ppc64.
* os_dep.c (catch_exception_raise): Use THREAD_FLD for exc_state member
access.
a_tobler [Thu, 11 Jan 2007 19:32:44 +0000 (19:32 +0000)]
2007-01-11 Andreas Tobler <a.tobler@schweiz.org>
* configure.ac (i?86*-*-darwin*): Replaced HAS_I386_THREAD_STATE_* with
HAS_X86_THREAD_STATE32_*.
(x86_64-*-darwin*): Extended the above check for x86_64-*-darwin* with
HAS_X86_THREAD_STATE64_*.
Added value 1 in the above AC_DEFINE's. Important for the upcoming
Leopard.
* configure: Regenerated.
* include/private/gcconfig.h: Modified X86_64 define for Darwin.
Removed __x86_64__ check in POWERPC section. Added base definitions
for the X86_64 Darwin port.
* include/private/gc_priv.h: Added GC_MACH_HEADER and GC_MACH_SECTION
to distinguish between 32 and 64-bit applications. Added definitions
for X86_64 Darwin.
* darwin_stop_world.c: Added HAS_X86_THREAD_STATE64___RAX. And
replaced HAS_I386_THREAD_STATE___EAX with HAS_X86_THREAD_STATE32___EAX.
(GC_push_all_stacks): Added code for X86_64 Darwin. Even for the
!DARWIN_DONT_PARSE_STACK. Maybe obsolete.
* 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.
* os_dep.c (catch_exception_raise): Introduce exception definition for
X86_64 Darwin. Replaced old i386_EXCEPTION_STATE_* definition with
x86_EXCEPTION_STATE32_*. Add X86_64 for exc_state.faultvaddr.
hboehm [Thu, 14 Dec 2006 21:51:39 +0000 (21:51 +0000)]
2006-12-14 Hans Boehm <Hans.Boehm@hp.com> (with much help, particularly
from Allan Hsu)
* include/private/gcconfig.h: Handle Darwin/X86-64 a bit better.
* include/private/gc_priv.h (GC_THREAD_STATE_T, GC_MAC_THREAD_STATE,
GC_MACH_THREAD_STATE_COUNT): Define for DARWIN.
* os_dep.c: Use GC_MAC_THREAD_STATE.
* darwin_stop_world.c: More portable register state access,
fix premature vm_deallocate.
* configure.ac: Add tests for machine state field names on Darwin.
* configure: Regenerate with autoconf 2.60a.
hboehm [Wed, 6 Dec 2006 19:16:14 +0000 (19:16 +0000)]
2006-12-06 Hans Boehm <Hans.Boehm@hp.com> and Peter Wang
* include/private/thread_local_alloc.h, include/new_gc_alloc.h:
Fix __GNUC__ spelling.
* include/gc.h (GC_general_register_disappearing_link):
Add comments.
2006-09-19 Hans Boehm <Hans.Boehm@hp.com>
* configure.ac, version.h, doc/README: Increment version number
for 7.0alpha7 release.
* configure: Regenerate.
2006-07-07 Hans Boehm <Hans.Boehm@hp.com> (really mostly Andrew Haley)
* include/gc.h, dyn_load.c: (GC_register_has_static_roots_callback):
new function.
2006-07-07 Hans Boehm <Hans.Boehm@hp.com>
* configure.ac, Makefile.am: Move the atomic_ops.c and atomic_ops_sysdeps.S
copying hack from Makefile.am to configure.ac. Include atomic_ops_sysdeps.S
only if necessary.
* Makefile.in, configure: regenerate.
hboehm [Wed, 7 Jun 2006 05:35:31 +0000 (05:35 +0000)]
2006-06-06 Hans Boehm <Hans.Boehm@hp.com> (Really Petr Salinger)
* configure.ac, dyn_load.c, doc/README.changes, include/gc.h,
include/private/gcconfig.h: Add macro tests and configuration
information to support kFreeBSD + glibc.
hboehm [Thu, 1 Jun 2006 18:41:20 +0000 (18:41 +0000)]
2006-06-01 Hans Boehm <Hans.Boehm@hp.com>
* include/private/gcconfig.h: Fix malloc redirection &
USE_PROC_FOR_LIBRARIES test and comment.
Define INCLUDE LINUX_THREAD_DESCR for malloc redirection with
Linux threads.
hboehm [Thu, 1 Jun 2006 18:37:51 +0000 (18:37 +0000)]
2006-06-01 Hans Boehm <Hans.Boehm@hp.com>
* dyn_load.c, misc.c, include/private/gc_priv.h: More consistently use
ptr_t for addresses.
* os_dep.c (GC_get_file_len, GC_get_maps_len): new functions.
(GC_get_maps): replaces GC_apply_to_maps, retry for asynchronous
removals.
(GC_enclosing_mapping): new functions.
(GC_setup_temporary_fault_handler): add locking assertion.
(GC_find_limit_with_bound): new function.
(GC_find_limit): Reimplement.
(backing_store_base_from_proc): Reimplement.
(GC_get_register_stack_base): Fix for 2.6 kernels.
(IA64 GC_get_stack_base): Avoid scanning through adjacent stack.
(GC_print_address_map): Use GC_get_maps().
* pthread_support.c: (GC_greatest_stack_base_below): new function.
(GC_segment_is_thread_stack): return boolean. On IA64 check for reg.
stacks. (INCLUDE_LINUX_THREAD_DESCR): initial support.
* misc.c: Add ptr_t and USE_PROC_FOR_LIBRARIES checks, register one
word offset with malloc redirection.
* include/private/gc_priv.h: Now need find_limit on IA64.
hboehm [Sat, 6 May 2006 05:19:58 +0000 (05:19 +0000)]
2006-05-05 Hans Boehm <Hans.Boehm@hp.com>
* Makefile.am: conditionally include some libatomic_ops sources
in libgc.
* configure.ac: fix libatomic_ops handling.
* Makefile.in, configure, aclocal.m4: regenerate.
hboehm [Wed, 3 May 2006 00:37:20 +0000 (00:37 +0000)]
2006-05-02 Hans Boehm <Hans.Boehm@hp.com>
* include/private/gc_locks.h: Add I_DONT_HOLD_LOCK.
* dbg_mlc.c: Use I_DONT_HOLD_LOCK instead of !I_HOLD_LOCK.
* thread_local_alloc: Reference ERROR_FL only when defined.
* os_dep.c: comment out unused and incorrect syscall wrapper code.
2006-04-28 Hans Boehm <Hans.Boehm@hp.com>
* NT_STATIC_THREADS_MAKEFILE: Assorted cleanups and bug fixes for VC++.net
* mark.c (alloc_mark_stack): Recycle old stack only if it doesn't break
GWW_VDB.
* misc.c: Try to initialize GWW_VDB earlier. Remove seemingly obsolete
initialization code. More consistently use GC_LOF_FILE.
* os_dep.c (GC_unix_get_mem): Ensure sbrk lock release on Irix, even in the
really obscure cases.
Fix GetWriteWatch error handling; work around slightly late calls to
GC_enable_incremental().
2006-04-28 Hans Boehm <Hans.Boehm@hp.com>
* thread_local_alloc.c (GC_gcj_malloc): Once again punt in incremental mode.
The old code contained unavoidable races in that case.
2006-04-28 Hans Boehm <Hans.Boehm@hp.com>
* mark_rts.c: Have GC_add_roots and GC_clear_roots initialize GC
if necessary.
* include/gc.h (GC_INIT): Remove redundant GC_init calls, add second
precollection if roots were added late.
2006-04-24 Hans Boehm <Hans.Boehm@hp.com>
* thread_local_alloc.c, include/gc_inline.h,
include/private/thread_local_alloc.h: Make non-gcj local
free lists for size 0 contains normal 1 granule objects.
* test/test.c: Add test for explicit deallocation of size zero
objects.
2006-04-12 Hans Boehm <Hans.Boehm@hp.com>
* win32_threads.c: Fix GC_win32_start_inner args, add support
for _beginthreadex and friends.
* doc/README.win32: Update, reorganize.
* include/gc.h: Use backtrace on windows, intercept Windows
thread creation/destruction primitives.