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
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
2002-02-24 Adam Megacz <adam@xwt.org>
* Makefile.am: Added win32_threads.c to sources list.
* win32_threads.c: Added two */'s which I had neglected.
From-SVN: r50016
* dbg_mlc.c (GC_debug_generic_malloc): Removed.
* sparc_mach_dep.S: Rename from sparc_mach_dep.s as it is a
preprocessor file.
* mips_sgi_mach_dep.S: Likewise.
* Makefile.am: Update for above changes.
* Makefile.in: Rebuilt.
From-SVN: r49720
2002-02-06 Adam Megacz <adam@xwt.org>
* boehm-gc/include/gc.h: (GC_CreateThread) This function is
now exposed on all Win32 platforms.
* boehm-gc/win32_threads.c: (GC_CreateThread) This now
compiles on Win32; it invokes CreateThread() if GC is built
as a DLL; otherwise it registers the thread.
* boehm-gc/misc.c (GC_init): Initialize GC_allocate_ml in case
libgcjgc was not built as a DLL.
From-SVN: r49563
* include/gc.h (GC_INIT): Add DATASTART and DATAEND roots on AIX.
* include/private/gcconfig.h (RS6000): Add 64-bit AIX support.
Define USE_GENERIC_PUSH_REGS. Use AIX _data and _end symbols for
DATASTART and DATAEND roots.
* rs6000_mach_dep.s: Add function descriptor and traceback table.
From-SVN: r49218
* dyn_load.c: Define ElfW (if needed) for all targets,
not just GNU/Linux.
(GC_FirstDLOpenedLinkMap): Use it.
(GC_register_dynamic_libraries_dl): Use it.
* include/private/gcconfig.h: Define CPP_WORDSZ, ELF_CLASS
for sparcv9.
From-SVN: r48086
* include/gc_pthread_redirects.h: Generalize test to use GC_PTHREADS.
* linux_threads.c (WRAP_FUNC(pthread_join)): Conditionalized on
GC_FREEBSD_THREADS, handle strange interaction between system
pthread implementation and boehm-gc signal-handler architecture.
* tests/test.c (main): Conditionalized on GC_FREEBSD_THREADS,
set stack.
* include/private/gcconfig.h (configuration keyed off FREEBSD):
Define SIG_SUSPEND, SIG_THR_RESTART. Do not define
MPROTECT_VDB when GC_FREEBSD_THREADS is defined.
From-SVN: r46307
* include/Makefile.am: New file. It defines include_HEADERS.
* Makefile.am (SUBDIRS): New macro, set to include.
* configure.in (AC_OUTPUT): Add include/Makefile.
From-SVN: r45555
2001-08-02 David Billinghurst <David.Billinghurst>
* configure: Rebuilt.
* configure.in: POSIX threads on cygwin does not link with
-lpthreads.
From-SVN: r44574
* configure.in (AC_EXEEXT): Work around in case it expands to
nothing, as in autoconf 2.50.
* acinclude.m4: Likewise.
* aclocal.m4, configure: Rebuilt.
From-SVN: r43107
* Makefile.am: Override gctest_OBJECTS so tests/test.c can be built.
(libgcjgc_la_SOURCES): Remove typo.
* tests/test.c: Fix struct names and includes for GC_GCJ_SUPPORT case.
* Makefile.in: Rebuilt.
From-SVN: r42524
2001-05-01 Jeffrey Oldham <oldham@codesourcery.com>
* gc_priv.h (UNLOCK): Change type of GC_noop1 argument.
(GC_noop1): Change declaration to take one argument.
From-SVN: r41738
* misc.c: Back out buggy changes to stack clearing code.
Reduce CLEAR_SIZE to 1/4 of original value to reduce time
spent clearing memory.
From-SVN: r41172
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
* configure.in: Rename THREADLIB to THREADLIBS.
* Makefile.am (LINK): Add $(THREADLIBS) to libtool command line. This
ensures that we link the correct version of the linuxthreads semaphore
functions.
* Makefile.in: Rebuilt.
* configure: Rebuilt.
* linux_thread.c (GC_thr_init, GC_suspend_handler): Add SIGABRT to the
list of signals which are not blocked during suspend in the NO_SIGNALS
case.
For libjava:
* Makefile.am (libgcj_la_LIBADD): Add $(THREADLIBS). This ensures that
the correct versions of various linuxthreads functions get linked.
* Makefile.in: Rebuilt.
* java/lang/natThread.cc (finalize_native): New static function. Call
_Jv_ThreadDestroyData.
(initialize_native): Register finalizer for "data".
* include/posix-threads.h (_Jv_ThreadInitData): New simpler prototype.
(_Jv_ThreadDestroyData): New prototype.
* include/win32-threads.h: Ditto.
* include/no-threads.h: Ditto.
* posix-threads.cc (_Jv_ThreadInitData): Implement new prototype.
(_Jv_ThreadDestroyData): New function. Free native thread "data" and
move mutex and condition variable destroy code from:
(really_start): ...here.
(_Jv_ThreadStart): Set PTHREAD_CREATE_DETACHED.
* win32-threads.cc (_Jv_ThreadInitData): Implement new prototype.
(_Jv_ThreadDestroyData): Implemented.
* nogc.cc (_Jv_AllocObject): Use "void *" not "ptr_t".
(_Jv_AllocArray): Ditto.
From-SVN: r38557