]> granicus.if.org Git - gc/log
gc
8 years agoFix calloc_explicitly_typed in case of lb*n overflow
Ivan Maidanski [Thu, 15 Sep 2016 15:40:21 +0000 (18:40 +0300)]
Fix calloc_explicitly_typed in case of lb*n overflow
(Cherry-pick commit 41a9ed4 from 'release-7_4' branch.)

* typd_mlc.c: Include limits.h (for SIZE_MAX).
* typd_mlc.c (GC_SIZE_MAX, GC_SQRT_SIZE_MAX): New macro (same as in
malloc.c).
* typd_mlc.c (GC_calloc_explicitly_typed): Return NULL if lb * n
overflows (same algorithm as in calloc defined in malloc.c); eliminate
lb *= n code duplication.

8 years agoFix integer shift undefined behavior in GC_init_explicit_typing
Ivan Maidanski [Tue, 19 Jul 2016 22:04:17 +0000 (01:04 +0300)]
Fix integer shift undefined behavior in GC_init_explicit_typing
(Cherry-pick commit 5c90e02 from 'release-7_4' branch.)

* typd_mlc.c (GC_init_explicit_typing): Avoid left-shift by WORDSZ
(which is an undefined behavior), initialize GC_bm_table[0] to
GC_DS_BITMAP explicitly.

8 years agoFix GC_requested_heapsize increment in GC_init
Ivan Maidanski [Fri, 30 Sep 2016 12:46:42 +0000 (15:46 +0300)]
Fix GC_requested_heapsize increment in GC_init

Also eliminate static analyzer warning about potential overflow in
initial_heap_sz * HBLKSIZE.

* misc.c (GC_init): Change initial_heap_sz to keep size value in bytes
instead of HBLKSIZE units (thus, GC_requested_heapsize is incremented
by a number of bytes not HBLKSIZE units).

8 years agoFix conditional expression in pos_fetch, next non-macro definitions (cord)
Ivan Maidanski [Wed, 26 Oct 2016 21:55:22 +0000 (00:55 +0300)]
Fix conditional expression in pos_fetch, next non-macro definitions (cord)

* cord/cordbscs.c (CORD_pos_fetch, CORD_next): Match the conditional
expression of the macro definition (of the same name) in cord_pos.h.

8 years agoFix CORD_substr_closure for the case when CORD_from_fn returns C string
Ivan Maidanski [Wed, 28 Sep 2016 07:27:12 +0000 (10:27 +0300)]
Fix CORD_substr_closure for the case when CORD_from_fn returns C string

* cord/cordbscs.c (CORD_substr_closure): Change type of "result" local
variable from CORD to CordRep* (insert necessary type casts); update
function.header only if function.null field is zero (i.e. CORD_from_fn
returned pointer to CordRep, not a pointer to C character string).

8 years agoFix typo in comment of GC_lock (Win32)
Ivan Maidanski [Mon, 19 Sep 2016 21:18:28 +0000 (00:18 +0300)]
Fix typo in comment of GC_lock (Win32)

* win32_threads.c [USE_PTHREAD_LOCKS] (GC_lock): Fix typo in comment
("pthread_mutex_trylock").

8 years agoFix double multiplication of lb by n in calloc_explicitly_typed
Ivan Maidanski [Thu, 15 Sep 2016 06:47:23 +0000 (09:47 +0300)]
Fix double multiplication of lb by n in calloc_explicitly_typed

* typd_mlc.c (GC_calloc_explicitly_typed): Do not multiply lb by n
twice (when passed to GC_malloc in case of
GC_general_register_disappearing_link fails).

8 years agoFix header filename in gcconfig.h comment
Ivan Maidanski [Fri, 26 Aug 2016 06:29:35 +0000 (09:29 +0300)]
Fix header filename in gcconfig.h comment

* include/private/gcconfig.h: Replace include gc_private.h with gc.h
in comment (the header is supposed to be included to declare
GC_stackbottom).

8 years agoDo not allow SHORT_DBG_HDRS if KEEP_BACK_PTRS or MAKE_BACK_GRAPH
Ivan Maidanski [Tue, 2 Aug 2016 09:01:48 +0000 (12:01 +0300)]
Do not allow SHORT_DBG_HDRS if KEEP_BACK_PTRS or MAKE_BACK_GRAPH

Otherwise GC_HAS_DEBUG_INFO (defined as (p&1)) might return true
if a non-pointer is stored at the beginning of the tested object
leading further to its corruption by GC_store_back_pointer.
See issue #125 for details.

* include/private/dbg_mlc.h [KEEP_BACK_PTRS || MAKE_BACK_GRAPH]
(GC_HAS_DEBUG_INFO): Add #error (with the appropriate message) in
case of SHORT_DBG_HDRS defined.

8 years agoFix various typos in comments and documentation
Ivan Maidanski [Mon, 1 Aug 2016 07:20:06 +0000 (10:20 +0300)]
Fix various typos in comments and documentation

* doc/README.Mac: Fix typo (replace "it's" to "its").
* doc/debugging.html: Likewise.
* doc/gcdescr.html: Fix typo ("it performs").
* include/private/gcconfig.h: Fix typo in comment ("its").
* mark.c (INITIAL_MARK_STACK_SIZE): Fix typo in comment ("it wants").
* mark.c (GC_mark_from): Fix typo in comment (double "it").
* misc.c (GC_SLOP): Fix typo in comma (double "saw").
* os_dep.c (GC_get_file_len): Fix typo in comment (missing "buffer").
* ptr_chck.c (GC_is_visible): Add missing comma in comment.

8 years agoHandle load_segs overflow in register_dynlib_callback gracefully
Kjetil Matheussen [Sat, 16 Jul 2016 12:43:32 +0000 (14:43 +0200)]
Handle load_segs overflow in register_dynlib_callback gracefully

* dyn_load.c [HAVE_DL_ITERATE_PHDR and PT_GNU_RELRO]
(GC_register_dynlib_callback): If n_load_segs reaches MAX_LOAD_SEGS
then call WARN (with the appropriate message) and call
GC_add_roots_inner to register the segment directly instead of ABORT.

8 years agoFix assertion in GC_mark_from for non-heap regions
Gabor Drescher [Tue, 5 Jul 2016 07:51:50 +0000 (09:51 +0200)]
Fix assertion in GC_mark_from for non-heap regions

* mark.c (GC_mark_from): Relax assertion condition for descr and
GC_least/greatest_plausible_heap_addr values.

8 years agoReplace (fix) 'objs' acronym in comments with 'objects' word
Ivan Maidanski [Fri, 1 Jul 2016 07:30:57 +0000 (10:30 +0300)]
Replace (fix) 'objs' acronym in comments with 'objects' word

* include/gc.h (GC_PROTECTS_POINTER_HEAP): Replace "objs" word to
"objects" in comment.
* include/private/gc_priv.h (GC_arrays._aobjfreelist,
GC_arrays._uobjfreelist, GC_arrays._auobjfreelist, GC_aobjfreelist):
Likewise.
* mark.c (INITIAL_MARK_STACK_SIZE): Likewise.
* include/private/gc_priv.h (GC_arrays._uobjfreelist): Add missing dot
to delimit the end of a sentence in comment.

8 years agoFix assertion violation in GC_wait_builder called from start_mark_threads
Ivan Maidanski [Tue, 21 Jun 2016 20:38:23 +0000 (23:38 +0300)]
Fix assertion violation in GC_wait_builder called from start_mark_threads
(Apply commit d02ea97 from 'master' branch.)

* mark.c (GC_wait_for_markers_init): Surround function body with
DISABLE/RESTORE_CANCEL.

Conflicts:
* include/private/gc_priv.h
* pthread_support.c
* win32_threads.c

8 years agoFix STACKBOTTOM for Solaris 11/x86
Peter Wang [Thu, 16 Jun 2016 09:16:05 +0000 (12:16 +0300)]
Fix STACKBOTTOM for Solaris 11/x86
(Apply commit 81cae56 from 'master' branch.)

* include/private/gcconfig.h [I386 && SOLARIS] (STACKBOTTOM,
HEURISTIC2): Define conditionally depening on USERLIMIT - use
HEURISTIC2 if USERLIMIT is undefined (workaround similar to that for
Solaris/sparc and Solaris/x64); include sys/vmparam.h instead of
sys/vm.h; update comment.

8 years agoWorkaround a bug in winpthreads causing parallel marks deadlock (MinGW)
Adrian Pop [Fri, 10 Jun 2016 17:39:18 +0000 (20:39 +0300)]
Workaround a bug in winpthreads causing parallel marks deadlock (MinGW)

The solution is to use Win32 threads for parallel markers while using
winpthreads to provide GC-aware pthread_create/join/detach and fork.

See details in GitHub issue #81 and issue #119.

* win32_threads.c (GC_PTHREADS_PARAMARK): Do not define if
GC_PTHREADS, PARALLEL_MARK and __MINGW32__ (to workaround a deadlock
in do_sema_b_wait() of winpthreads).

8 years ago[7.2g] gc7_2g
Ivan Maidanski [Mon, 23 May 2016 19:28:10 +0000 (22:28 +0300)]
[7.2g]

Bump version to 7.2g in README; update ChangeLog

8 years agoUpdate ChangeLog
Ivan Maidanski [Tue, 22 Mar 2016 07:40:41 +0000 (10:40 +0300)]
Update ChangeLog

8 years agoRegenerate configure files using official libtool release (v2.4.2)
Ivan Maidanski [Tue, 22 Mar 2016 07:37:00 +0000 (10:37 +0300)]
Regenerate configure files using official libtool release (v2.4.2)

libtool 2.4.2 is an official release unlike libtool 2.4.2.418.

* config.guess: Regenerate (by autoreconf -vif using autoconf-2.69,
automake-1.14.1, libtool-2.4.2, pkg-config 0.26).
* config.sub: Likewise.
* configure: Likewise.
* include/private/config.h.in: Likewise.
* ltmain.sh: Likewise.
* m4/libtool.m4: Likewise.
* m4/ltoptions.m4: Likewise.
* m4/ltsugar.m4: Likewise.
* m4/ltversion.m4: Likewise.
* m4/lt~obsolete.m4: Likewise.

8 years agoUpdate ChangeLog
Ivan Maidanski [Wed, 16 Mar 2016 21:51:58 +0000 (00:51 +0300)]
Update ChangeLog

8 years agoFix filename printing in cordtest
Ivan Maidanski [Wed, 2 Mar 2016 07:47:24 +0000 (10:47 +0300)]
Fix filename printing in cordtest

* cord/tests/cordtest.c (test_extras): Do not quote FNAME1 and FNAME2.

8 years agoSkip GC_DS_PER_OBJECT objects with negative descriptor in GC_mark_from
Niklas Therning [Wed, 17 Feb 2016 13:16:01 +0000 (14:16 +0100)]
Skip GC_DS_PER_OBJECT objects with negative descriptor in GC_mark_from

Added a check in GC_mark_from() for GC_DS_PER_OBJECT objects with
negative descriptors to prevent mistaking the free list pointers in
free objects for being type descriptor pointers.  If the specified
descriptor offset was larger than the object size this could lead to
arbitrary data from allocated objects being misinterpreted as
descriptors and the process crashing.

* mark.c (GC_mark_from): In case of GC_DS_PER_OBJECT, skip objects
those descriptor is outside object.

8 years agoFix vsprintf_args initialization/cleanup in CORD_vsprintf for EMX
Ivan Maidanski [Sun, 22 Jun 2014 16:49:01 +0000 (20:49 +0400)]
Fix vsprintf_args initialization/cleanup in CORD_vsprintf for EMX

* cord/cordprnt.c (CORD_vsprintf): Do not use va_copy and va_end if
EMX (as the primitives are missing).

8 years agoFix OSX issue with snprintf wrapper macro
Bruce Hoult [Sun, 4 Jan 2015 15:32:29 +0000 (04:32 +1300)]
Fix OSX issue with snprintf wrapper macro

OS X for some reason has problems with defining snprintf as a macro
and including another macro expansion in its arguments.

* cord/cordtest.c (GC_SNPRINTF_BUFSZ_ARG): Remove.
* cord/cordtest.c (GC_SNPRINTF): Do not define if no snprintf()
available.
* cord/cordtest.c (test_printf): If GC_SNPRINTF undefined then
use sprintf() instead.

8 years agoFix unresolved vsnprintf in misc.c and snprintf in cordtest (DJGPP, VC)
Ivan Maidanski [Wed, 18 Jun 2014 23:04:28 +0000 (03:04 +0400)]
Fix unresolved vsnprintf in misc.c and snprintf in cordtest (DJGPP, VC)
(Apply commit c3ecfd8 from 'release-7_4' branch.)

* cord/cordtest.c (GC_SNPRINTF, GC_SNPRINTF_BUFSZ_ARG): New
macro to workaround snprintf() missing in DJGPP and MS VC.
* cord/cordtest.c (test_printf): Replace snprintf() with
GC_SNPRINTF and GC_SNPRINTF_BUFSZ_ARG.
* misc.c (vsnprintf): Test DJGPP instead of NO_VSNPRINTF; refine
comment.

8 years agoFix potential multiplication overflow in check_heap_stats (test)
Ivan Maidanski [Fri, 12 Feb 2016 18:36:08 +0000 (21:36 +0300)]
Fix potential multiplication overflow in check_heap_stats (test)

* tests/test.c (check_heap_stats): Cast n_tests to size_t before
multiplication by 2700000 (instead of implicit cast to size_t of the
result).

8 years agoFix 'implicit declaration of function' compiler warnings in cord/de
Ivan Maidanski [Tue, 16 Feb 2016 08:09:34 +0000 (11:09 +0300)]
Fix 'implicit declaration of function' compiler warnings in cord/de

* cord/tests/de.c: Include stdlib.h (for "exit" prototype); include
ctype.h unconditionally (for "iscntrl", "isdigit" prototypes); include
unistd.h (for "sleep" prototype) unless WIN32 or MACINTOSH.

8 years agoFix null-pointer dereferences on out-of-memory in cord/de
Ivan Maidanski [Mon, 15 Feb 2016 21:32:01 +0000 (00:32 +0300)]
Fix null-pointer dereferences on out-of-memory in cord/de

* cord/tests/de.c (add_map, add_hist): Check GC_NEW() result for null.

8 years agoFix GC initialization in de_win for Cygwin
Ivan Maidanski [Fri, 12 Feb 2016 09:04:16 +0000 (12:04 +0300)]
Fix GC initialization in de_win for Cygwin
(make GC initialization portable)
(Apply commit bbfd369 from 'release-7_4' branch.)

* cord/tests/de_win.c (WinMain): Call GC_INIT() unconditionally.

8 years agoFix de_win WndProc prototype parameters for 64-bit (Win64)
Ivan Maidanski [Fri, 12 Feb 2016 08:46:06 +0000 (11:46 +0300)]
Fix de_win WndProc prototype parameters for 64-bit (Win64)
(Apply commit f8374c8 from 'release-7_4' branch.)

* cord/de_win.h (WndProc): Change UINT type (for wParam) to
WPARAM; change LONG type to LPARAM.
* cord/de_win.h (AboutBox): Remove unused declaration.

8 years agoFix null-pointer dereferences in case of out-of-memory in cord
Ivan Maidanski [Thu, 11 Feb 2016 21:22:44 +0000 (00:22 +0300)]
Fix null-pointer dereferences in case of out-of-memory in cord
(Apply commit 127f7b0 from 'release-7_4' branch.)

* cord/cordprnt.c: Include <stdlib.h> (for abort() declaration).
* cord/cordprnt.c (OUT_OF_MEMORY): New macro.
* cord/de.c (OUT_OF_MEMORY): Likewise.
* cord/cordprnt.c (CORD_vsprintf): Execute OUT_OF_MEMORY if
GC_MALLOC_ATOMIC returns NULL.
* cord/cordxtra.c (CORD_ec_flush_buf): Likewise.
* cord/de.c (replace_line, main): Likewise.
* tests/cordtest.c (test_extras): Declare "u" local variable; do ABORT
if CORD_substr returns NULL (to avoid null pointer dereference in
strcmp).
* cord/de_win.c (plain_chars, control_chars): Return NULL if
GC_MALLOC_ATOMIC returns NULL.
* cord/de_win.c (WndProc): Execute de_error() (with the
appropriate message) if plain_chars() or control_chars() returned
NULL (and do not call the corresponding TextOutA in such a case).

8 years agoFix Unicode Win32 API calls in cord de_win
Ivan Maidanski [Sat, 2 Aug 2014 08:56:27 +0000 (12:56 +0400)]
Fix Unicode Win32 API calls in cord de_win
(Apply commit 47a329c from 'release-7_4' branch.)

* cord/de_win.c (FullAppName): Remove global variable.
* cord/de_win.c (szAppName): Turn into macro; use TEXT().
* cord/de_win.c (de_error): Force calling ANSI version of
MessageBox; remove casts to LPSTR.
* cord/de_win.c (WinMain): Use TEXT() for lpszMenuName field and
for CreateWindow agrument.
* cord/de_win.c (WndProc): Use TEXT() for DialogBox argument;
force calling ANSI version of TextOut.

8 years agoFix null pointer dereference on out-of-memory in tests
Ivan Maidanski [Tue, 9 Feb 2016 20:35:33 +0000 (23:35 +0300)]
Fix null pointer dereference on out-of-memory in tests
(Apply commit 8639092 from 'release-7_4' branch.)

* tests/test.c (run_one_test): Check GC_MALLOC result for NULL
(abort in case of out-of-memory) before dereference.

8 years agoFix typo in GC_malloc_uncollectable comment
Ivan Maidanski [Wed, 13 Jan 2016 08:34:56 +0000 (11:34 +0300)]
Fix typo in GC_malloc_uncollectable comment
(Apply commit 44a2904 from 'release-7_4' branch.)

* doc/README.changes: Fix typo ("was").
* malloc.c (GC_malloc_uncollectable): Fix typo ("was") in comment.

8 years agoUpdate ChangeLog
Ivan Maidanski [Mon, 8 Feb 2016 06:29:59 +0000 (09:29 +0300)]
Update ChangeLog

8 years agoFix typo in comment of ERROR_FL
Ivan Maidanski [Wed, 30 Dec 2015 09:13:55 +0000 (12:13 +0300)]
Fix typo in comment of ERROR_FL

* include/private/thread_local_alloc.h (ERROR_FL): Fix typo in comment
("gcj_freelists").

8 years agoFix race (and potential deadlock) at marker threads initialization
Ivan Maidanski [Tue, 22 Sep 2015 05:42:40 +0000 (08:42 +0300)]
Fix race (and potential deadlock) at marker threads initialization
(Apply commit 378d7e1 from 'release-7_4' branch.)

* include/private/gc_priv.h (GC_wait_for_markers_init): New prototype.
* mark.c (GC_wait_for_markers_init): New function (if PARALLEL_MARK).
* pthread_support.c (GC_mark_thread): Notify start_mark_threads()
about completion of marker data initialization.
* win32_threads.c (GC_mark_thread): Likewise.
* pthread_support.c (start_mark_threads): Add assertion about
GC_fl_builder_count; call GC_wait_for_markers_init.
* win32_threads.c (start_mark_threads): Likewise.
* win32_threads.c (GC_mark_thread): Reformat code.

8 years agoUpdate ChangeLog
Ivan Maidanski [Tue, 2 Feb 2016 21:41:58 +0000 (00:41 +0300)]
Update ChangeLog

8 years agoFix typos in gc_priv.h
Ivan Maidanski [Wed, 30 Dec 2015 05:44:18 +0000 (08:44 +0300)]
Fix typos in gc_priv.h

* include/private/gc_priv.h (CPP_MAXOBJBYTES): Add missing ')' in
comment.
* include/private/gc_priv.h (obj_kind.ok_freelist): Fix typo in
comment ("list headers").
* include/private/gc_priv.h (obj_kind.ok_freelist,
obj_kind.ok_reclaim_list): Reformat comment.

8 years agoFix typo (items numbering) in GC_finalize_all documentation
Ivan Maidanski [Fri, 4 Dec 2015 08:20:41 +0000 (11:20 +0300)]
Fix typo (items numbering) in GC_finalize_all documentation

* include/javaxfc.h (GC_finalize_all): Fix 2nd item numbering in
comment.

8 years agoRemove documentation about obsolete GC_REDIRECT_TO_LOCAL
Ivan Maidanski [Tue, 1 Dec 2015 08:49:02 +0000 (11:49 +0300)]
Remove documentation about obsolete GC_REDIRECT_TO_LOCAL

* doc/scale.html (GC_REDIRECT_TO_LOCAL): Remove documentation.
* doc/simple_example.html (GC_REDIRECT_TO_LOCAL): Likewise.

8 years agoFix missing GC_get_stack_base for Amiga
Ivan Maidanski [Thu, 26 Nov 2015 20:24:38 +0000 (23:24 +0300)]
Fix missing GC_get_stack_base for Amiga

* os_dep.c (GET_MAIN_STACKBASE_SPECIAL): Define if AMIGA (which, in
turn, causes default GC_get_stack_base to be defined).

8 years agoFix USE_COMPILER_TLS macro duplicate description in README
Ivan Maidanski [Tue, 17 Nov 2015 21:43:25 +0000 (00:43 +0300)]
Fix USE_COMPILER_TLS macro duplicate description in README

* doc/README.macros (USE_COMPILER_TLS): Remove duplicate description.

8 years ago.gitignore: Ignore .copied.c, .dll.manifest, idb, ilk files (MSVC)
Ivan Maidanski [Wed, 23 Sep 2015 07:43:53 +0000 (10:43 +0300)]
.gitignore: Ignore .copied.c, .dll.manifest, idb, ilk files (MSVC)

8 years agowindows-untested: Fix paths to msvc_dbg.c/h
Ivan Maidanski [Tue, 15 Sep 2015 07:49:01 +0000 (10:49 +0300)]
windows-untested: Fix paths to msvc_dbg.c/h

* windows-untested/vc60/gc.dsp (SOURCE): Fix paths to msvc_dbg.c and
msvc_dbg.h.
* windows-untested/vc60/libgc.dsp (SOURCE): Likewise.
* windows-untested/vc60/libgcmt.dsp (SOURCE): Likewise.
* windows-untested/vc60/libgcmt.dsp (File RelativePath): Likewise.
* windows-untested/vc70/libgc.vcproj (File RelativePath): Likewise.
* windows-untested/vc70/libgcmt.vcproj (File RelativePath): Likewise.
* windows-untested/vc71/gc.vcproj (File RelativePath): Likewise.
* windows-untested/vc71/libgc.vcproj (File RelativePath): Likewise.
* windows-untested/vc71/libgcmt.vcproj (File RelativePath): Likewise.

8 years agoFix typos in README for ews4800
Terrell Russell [Mon, 14 Sep 2015 18:48:41 +0000 (14:48 -0400)]
Fix typos in README for ews4800

* doc/README.ews4800: Fix typos ("information", "vendor", "the").

8 years ago.gitignore: Ignore .exp and .sbr also in subfolders (MSVC)
Ivan Maidanski [Mon, 14 Sep 2015 07:41:44 +0000 (10:41 +0300)]
.gitignore: Ignore .exp and .sbr also in subfolders (MSVC)

8 years agoFix GC_get_stack_base if called before GC_init (Win32)
Eli Barzilay [Tue, 7 Jul 2015 22:22:23 +0000 (01:22 +0300)]
Fix GC_get_stack_base if called before GC_init (Win32)
(Apply part of commit db2b9f1 from 'racket_gc' branch.)

* os_dep.c (GC_get_stack_base): Call GC_setpagesize if GC_page_size is
not initialized (only if MSWIN32 but not CYGWIN32).

8 years agoFix various spelling errors
David Van Horn [Wed, 2 Feb 2011 19:56:42 +0000 (14:56 -0500)]
Fix various spelling errors
(Apply commit 9e14eae from 'release-7_4' branch.)

* ChangeLog: Fix typo (accommodate).
* doc/README.changes: Likewise.
* win32_threads.c (GC_pthread_create): Fix typo (interceptable).

8 years ago.gitignore: Add *.vcproj.*.user (copied from .hgignore)
Ivan Maidanski [Sun, 18 Nov 2012 08:00:13 +0000 (12:00 +0400)]
.gitignore: Add *.vcproj.*.user (copied from .hgignore)

8 years agoFix OSX issue with pthread_attr_setstacksize failure
Bruce Hoult [Sun, 4 Jan 2015 15:33:35 +0000 (04:33 +1300)]
Fix OSX issue with pthread_attr_setstacksize failure
(Apply commit 3b82219 from 'release-7_4' branch.)

* tests/test.c (main): Set stack size to 1000 KiB instead of
1000000 bytes (to avoid pthread_attr_setstacksize failure with
"stacksize is not a multiple of the system page size" error on
Darwin)

9 years agoUpdate (regenerate) configure files; update ChangeLog
Ivan Maidanski [Thu, 14 May 2015 19:56:52 +0000 (22:56 +0300)]
Update (regenerate) configure files; update ChangeLog

9 years agoFix mistyped ARM_THREAD_STATE macro (Darwin/arm)
Ivan Maidanski [Tue, 4 Nov 2014 14:01:08 +0000 (17:01 +0300)]
Fix mistyped ARM_THREAD_STATE macro (Darwin/arm)
(Apply commit 1bfd1cd from 'release-7_4' branch.)

* include/private/gc_priv.h (GC_MACH_THREAD_STATE,
GC_MACH_THREAD_STATE_COUNT): Define to ARM_THREAD_STATE[_COUNT],
respectively, instead of mistyped ARM_MACHINE_THREAD_STATE[_COUNT]
(if DARWIN and ARM32).

Conflicts:

    include/private/gc_priv.h

9 years agoFix FirstDLOpenedLinkMap for case libgc not 1st dynamically linked (NetBSD)
Tsugutomo Enami [Sun, 2 Nov 2014 07:46:17 +0000 (10:46 +0300)]
Fix FirstDLOpenedLinkMap for case libgc not 1st dynamically linked (NetBSD)

Current GC_FirstDLOpenedLinkMap() for NetBSD calls dlinfo(RTLD_SELF,
RTLD_DI_LINKMAP, &lm) to find link_map. So it will find link_map of
libgc.  With guile's case, libgc is link to libguile and libguile is
linked to the guile command, so libgc is not the first one in the
link_map chain.  That is why, data section of libguile, where
scm_protects exists, is not added to GC root and GC_is_visible fails.

* dyn_load.c (GC_FirstDLOpenedLinkMap): Iterate over link_map
(provided by dlinfo(RTLD_SELF)) to return 2nd element instead of the
provided one which might not always belong to libgc (only for NETBSD
and defined RTLD_DI_LINKMAP).

9 years agoFix missing cord_pos.h, ec.h among installed headers (Automake)
Ivan Maidanski [Tue, 21 Oct 2014 21:36:17 +0000 (01:36 +0400)]
Fix missing cord_pos.h, ec.h among installed headers (Automake)
(Apply commit acf7c0e from 'release-7_4' branch.)

* cord/cord.am (pkginclude_HEADERS): Add cord_pos.h, ec.h entries.

9 years agoFix missing msvc_dbg.h in dist_noinst_HEADERS (Automake)
Ivan Maidanski [Tue, 21 Oct 2014 06:31:11 +0000 (10:31 +0400)]
Fix missing msvc_dbg.h in dist_noinst_HEADERS (Automake)
(Apply commit 0418592 from 'release-7_4' branch.)

* include/include.am (dist_noinst_HEADERS): Add msvc_dbg.h entry.

Conflicts:

    include/include.am

10 years agoUpdate (regenerate) configure files; update ChangeLog
Ivan Maidanski [Sun, 15 Jun 2014 16:01:41 +0000 (20:01 +0400)]
Update (regenerate) configure files; update ChangeLog

* Makefile.in: Regenerate.
* configure: Likewise.

10 years agoFix signedness of char values passed to isspace, iscntrl, isxdigit
Ivan Maidanski [Sun, 15 Jun 2014 07:39:12 +0000 (11:39 +0400)]
Fix signedness of char values passed to isspace, iscntrl, isxdigit
(eliminate 'array subscript has type char' GCC warning)
(Apply commit 17fc114 from 'release-7_4' branch.)

* cord/de_win.c (WinMain, plain_chars, control_chars): Cast char
value to unsigned char when passed to isspace(), iscntrl().
* os_dep.c (GC_parse_map_entry): Change type of "start_start",
"end_start", "maj_dev_start", "p" local variables from char* to
unsgined char* (as isspace(), isxdigit() expect non-negative values);
insert casts between char* and unsigned char* where needed.
* os_dep.c (GC_parse_map_entry): Remove "endp" local variable (use "p"
variable directly instead).

Conflicts:

    cord/de_win.c
    os_dep.c

10 years agoFix file descriptor resource leak in GC_register_data_segments (OS/2)
Ivan Maidanski [Fri, 13 Jun 2014 14:22:30 +0000 (18:22 +0400)]
Fix file descriptor resource leak in GC_register_data_segments (OS/2)

* os_dep.c (GC_register_data_segments): Call fclose(myexefile) on
return (only if OS2).

10 years agoFix 'illegal option -xassembler-with-cpp' error (Oracle SunCC)
Ivan Maidanski [Mon, 9 Jun 2014 22:25:31 +0000 (02:25 +0400)]
Fix 'illegal option -xassembler-with-cpp' error (Oracle SunCC)

* Makefile.am (ASM_CPP_OPTIONS): Move comment to configure.ac.
* Makefile.am (COMPILER_XLC): Rename to ASM_WITH_CPP_UNSUPPORTED.
* configure.ac (COMPILER_XLC): Likewise.
* configure.ac (compiler_suncc): New variable (set to "yes" if Solaris
Sun C compiler).
* configure.ac (ASM_WITH_CPP_UNSUPPORTED): Define not only for
compiler_xlc but also for compiler_suncc.

10 years agoFix CFLAGS in configure regarding -O flag passing to SunCC compiler
Ivan Maidanski [Sun, 8 Jun 2014 13:24:17 +0000 (17:24 +0400)]
Fix CFLAGS in configure regarding -O flag passing to SunCC compiler
(Apply commit d727e13 from 'release-7_4' branch.)

* configure.ac (CFLAGS): Add -O flag if Solaris SunCC (i.e., not GCC)
regardless of threads support (i.e., even in case it is off).

Conflicts:

    configure.ac

10 years ago[7.2f] gc7_2f
Ivan Maidanski [Mon, 2 Jun 2014 21:36:29 +0000 (01:36 +0400)]
[7.2f]

Bump version to 7.2f in README; update ChangeLog

10 years agoRegenerate configure files by new automake (v1.14.1), libtool (v2.4.2.418)
Ivan Maidanski [Mon, 2 Jun 2014 03:57:47 +0000 (07:57 +0400)]
Regenerate configure files by new automake (v1.14.1), libtool (v2.4.2.418)

* Makefile.in: Regenerate (by autoreconf -vif using autoconf-2.69,
automake-1.14.1 and libtool-2.4.2.418).
* aclocal.m4: Likewise.
* config.guess: Likewise.
* config.sub: Likewise.
* configure: Likewise.
* include/private/config.h.in: Likewise.
* ltmain.sh: Likewise.
* m4/libtool.m4: Likewise.
* m4/ltoptions.m4: Likewise.
* m4/ltsugar.m4: Likewise.
* m4/ltversion.m4: Likewise.
* m4/lt~obsolete.m4: Likewise.
* missing: Likewise.
* test-driver: Likewise.

10 years agoUpdate (regenerate) configure files
Ivan Maidanski [Sun, 1 Jun 2014 18:38:14 +0000 (22:38 +0400)]
Update (regenerate) configure files

* Makefile.in: Regenerate.
* configure: Likewise.
* ltmain.sh: Likewise.

10 years agoUpdate ChangeLog
Ivan Maidanski [Sat, 31 May 2014 19:50:50 +0000 (23:50 +0400)]
Update ChangeLog

10 years agoFix PARALLEL_MARK for Windows 7+
Ivan Maidanski [Thu, 29 May 2014 19:32:45 +0000 (23:32 +0400)]
Fix PARALLEL_MARK for Windows 7+
(Apply commit c2c650f from 'release-7_4' branch.)

* doc/README.macros (DONT_USE_SIGNALANDWAIT): Remove.
* win32_threads.c (DONT_USE_SIGNALANDWAIT, GC_mark_mutex_waitcnt,
SignalObjectAndWait_type, signalObjectAndWait_func): Likewise.
* win32_threads.c (GC_marker_cv, GC_mark_thread, start_mark_threads,
GC_mark_mutex_state, GC_acquire_mark_lock, GC_release_mark_lock,
GC_wait_marker, GC_notify_all_marker, GC_thr_init): Do not check
DONT_USE_SIGNALANDWAIT macro (assume it is always on as multi-core
marker based on NT SignalObjectAndWait is broken in Windows 7+ leading
to a deadlock sometimes because the function is no longer atomic).

Conflicts:

    win32_threads.c

10 years agoFix crash when using GC_malloc_many() as first allocation call
Bruce Hoult [Thu, 29 May 2014 06:16:50 +0000 (18:16 +1200)]
Fix crash when using GC_malloc_many() as first allocation call

* mallocx.c (GC_CALL GC_generic_malloc_many): Do not dereference
ok_reclaim_list if it is NULL.

10 years ago.gitignore: Ignore all .deps, .dirstamp
Ivan Maidanski [Wed, 28 May 2014 17:59:47 +0000 (21:59 +0400)]
.gitignore: Ignore all .deps, .dirstamp

10 years agoUpdate ChangeLog
Ivan Maidanski [Sun, 25 May 2014 19:13:27 +0000 (23:13 +0400)]
Update ChangeLog

10 years agoFix 'source file in a subdirectory' Automake warnings
Ivan Maidanski [Thu, 22 May 2014 20:21:23 +0000 (00:21 +0400)]
Fix 'source file in a subdirectory' Automake warnings
(Apply commit 86bf95d from 'release-7_4' branch.)

* configure.ac (AM_INIT_AUTOMAKE): Enable subdir-objects (to avoid
future incompatibilities as "cord" and "tests" source files are in
subdirectories).

Conflicts:

    configure.ac

10 years agoUpdate (regenerate) configure files; update ChangeLog
Ivan Maidanski [Wed, 21 May 2014 19:57:35 +0000 (23:57 +0400)]
Update (regenerate) configure files; update ChangeLog

* configure: Regenerate.

10 years agoFix typos in README.changes (in items for ancient GC releases)
Ivan Maidanski [Fri, 16 May 2014 19:31:38 +0000 (23:31 +0400)]
Fix typos in README.changes (in items for ancient GC releases)
(Apply commit 1d5c8d5 from 'release-7_4' branch.)

* README.changes: Fix typos ("nonexistent", "to", "posting", "bit rot",
"likely", "flaky").
* README.changes: Fix typos in surname (Juan Jose Garcia-Ripoll,
Paolo Molaro, Andreas Tobler).
* README.changes: Fix incorrect article ("a finalizable").

Conflicts:

    ChangeLog

10 years agoFix typo in person name in gc_cpp.h comment
Ivan Maidanski [Thu, 15 May 2014 17:41:21 +0000 (21:41 +0400)]
Fix typo in person name in gc_cpp.h comment

* include/gc_cpp.h: Fix typo in surname (John Ellis) in comment.

10 years agoUpdate Xerox FTP host name in overview.html
Ivan Maidanski [Thu, 15 May 2014 17:30:10 +0000 (21:30 +0400)]
Update Xerox FTP host name in overview.html

* doc/overview.html: Update FTP host name (ftp.parc.xerox.com).

10 years agoFix typos in names in README.changes file
Ivan Maidanski [Sat, 3 May 2014 18:50:50 +0000 (22:50 +0400)]
Fix typos in names in README.changes file
(Apply commit caf301b from 'release-7_4' branch.)

* README.changes: Fix typo in surname (Bryce McKinlay, Slava Sysoltsev).
* README.changes: Fix typo in name or surname (Philip Brown,
Rutger Ovidius).
* README.changes: Place surname after 1st name (Tommaso Tagliapietra).

Conflicts:

    AUTHORS
    ChangeLog

10 years agoFix build (broken by fenv.h inclusion) on Linux/x86_64 under uClibc
Baruch Siach [Sat, 26 Apr 2014 17:50:07 +0000 (21:50 +0400)]
Fix build (broken by fenv.h inclusion) on Linux/x86_64 under uClibc
(Apply commit 295f454 from 'release-7_4' branch.)

* include/private/gcconfig.h (GETCONTEXT_FPU_EXCMASK_BUG): Do not
define for uClibc, as it may not have fenv.h.

Conflicts:

    include/private/gcconfig.h

10 years agoFix a typo in gc_config_macros.h comment (redundant "an" article)
Ivan Maidanski [Mon, 31 Mar 2014 22:07:05 +0000 (02:07 +0400)]
Fix a typo in gc_config_macros.h comment (redundant "an" article)

* include/gc_config_macros.h (GC_ADD_CALLER): Fix a typo in comment
(redundant "an" article).

10 years agoFix GC_scratch_last_end_ptr update on GC_scratch_alloc failure
Ivan Maidanski [Sun, 30 Mar 2014 17:05:35 +0000 (21:05 +0400)]
Fix GC_scratch_last_end_ptr update on GC_scratch_alloc failure

* headers.c (GC_scratch_alloc): Do not update GC_scratch_last_end_ptr
if allocation failed ("result" variable is NULL).

10 years agoFix out-of-memory case in new_back_edges, push_in_progress (backgraph)
Ivan Maidanski [Sun, 30 Mar 2014 08:53:48 +0000 (12:53 +0400)]
Fix out-of-memory case in new_back_edges, push_in_progress (backgraph)

* backgraph.c (new_back_edges): Abort if not enough memory.
* backgraph.c (push_in_progress): Prevent null pointer dereference in
BCOPY() if allocation failed (due to not enough memory).

10 years agoFix GET_MEM argument rounding in GC_scratch_alloc and similar
Ivan Maidanski [Sun, 30 Mar 2014 08:31:49 +0000 (12:31 +0400)]
Fix GET_MEM argument rounding in GC_scratch_alloc and similar
(Prevent abort in GC_unix_mmap_get_mem if the allocation size is not
a multiple of a page size.)
(Apply commit 62bfeb0 from 'release-7_4' branch.)

* backgraph.c (new_back_edges, push_in_progress): Use
ROUNDUP_PAGESIZE_IF_MMAP() to adjust GET_MEM() argument (when needed).
* headers.c (GC_scratch_alloc): Likewise.
* misc.c (GC_envfile_init): Likewise.
* include/private/gc_priv.h (ROUNDUP_PAGESIZE_IF_MMAP): New macro.
* include/private/gcconfig.h (MMAP_SUPPORTED): Move definition from
os_dep.c (as needed for ROUNDUP_PAGESIZE_IF_MMAP() definition).
* include/private/gcconfig.h (GET_MEM): Refine comment (regarding its
argument).

Conflicts:

    include/private/gcconfig.h
    os_dep.c

10 years agoUpdate emails/links due to project site and ML transition
Ivan Maidanski [Sun, 23 Feb 2014 12:56:54 +0000 (16:56 +0400)]
Update emails/links due to project site and ML transition
(www.hpl.hp.com/personal/Hans_Boehm -> www.hboehm.info;
gc@linux.hpl.hp.com -> bdwgc@lists.opendylan.org)
(Apply commit 64ad6f0 from 'release-7_4' branch.)

* doc/gc.man: Update email.
* doc/README.cords: Likewise.
* README.QUICK: Change external link to gcinterface.html to local one
(pointing to the file in "doc" folder).
* doc/README: Replace BDWGC site URL (www.hpl.hp.com/personal/Hans_Boehm
to www.hboehm.info).
* doc/gc.man: Likewise.
* doc/gcdescr.html: Likewise.
* doc/gcinterface.html: Likewise.
* doc/overview.html: Likewise.
* doc/scale.html: Likewise.
* doc/README: Update mailing list info (gc@linux.hpl.hp.com to
bdwgc@lists.opendylan.org, gc-announce@linux.hpl.hp.com to
bdwgc-announce@lists.opendylan.org).
* configure.ac: Likewise.
* doc/gcdescr.html: Likewise.
* doc/overview.html: Likewise.
* doc/tree.html: Remove unnecessary external link.

Conflicts:

    AUTHORS
    README.QUICK
    configure.ac
    doc/README
    doc/overview.html

10 years agoFix or remove broken URLs in documentation
Ivan Maidanski [Sun, 23 Feb 2014 08:53:55 +0000 (12:53 +0400)]
Fix or remove broken URLs in documentation
(Apply commit e4559d3 from 'release-7_4' branch.)

* doc/README.cords: Remove broken link to reality.sgi.com.
* doc/README.environment: Fix link to HPL tech reports.
* doc/overview.html: Remove broken link to parcftp.xerox.com.
* doc/overview.html: Fix (or update) external links.

Conflicts:

    doc/overview.html

10 years agoFix typo in GC overview file
Ivan Maidanski [Sat, 22 Feb 2014 17:26:13 +0000 (21:26 +0400)]
Fix typo in GC overview file

* doc/overview.html: Fix a typo ("See").

10 years agoFix mark stack excessive growth during parallel mark
Andrew Horton [Sat, 21 Dec 2013 13:06:36 +0000 (13:06 +0000)]
Fix mark stack excessive growth during parallel mark
(The growth observed in applications that implement things like weak
hash tables and iterate over the members marking entries using the
supplied GC_MARK_AND_PUSH macro.)
(Apply commit 811b3eb from 'release-7_4' branch.)

When overflow is signaled, only set GC_mark_stack_too_small if we
are using the global mark stack.  In parallel mode, local mark stack
is used, so the global mark stack is grown by GC_return_mark_stack
mainly.

* mark.c (GC_signal_mark_stack_overflow): Do not set
GC_mark_stack_too_small if GC_parallel.

Conflicts:

    mark.c

10 years agoBump GC_collect_at_heapsize in GC_add_to_heap. In the normal case it is
Andrew Horton [Sun, 15 Dec 2013 15:55:04 +0000 (15:55 +0000)]
Bump GC_collect_at_heapsize in GC_add_to_heap. In the normal case it is
recalculated straight after. But in the case where it's called directly
from alloc_mark_stack, it isn't. If the mark stack gets very large,
this can cause GC_should_collect to always return true, and
GC_alloc_large to get stuck in a loop calling GC_collect_or_expand.
(Apply commit 5f8f104 from 'release-7_4' branch.)

Conflicts:

    alloc.c

10 years agoFix typo in GC_collect_or_expand comment
Ivan Maidanski [Tue, 17 Dec 2013 05:37:20 +0000 (09:37 +0400)]
Fix typo in GC_collect_or_expand comment

* alloc.c (GC_collect_or_expand): Fix a typo in comment ("setting").

10 years agoFix CMakeLists.txt: do not override CMAKE_OSX_ARCHITECTURES
Yusuke Suzuki [Mon, 2 Dec 2013 03:50:52 +0000 (12:50 +0900)]
Fix CMakeLists.txt: do not override CMAKE_OSX_ARCHITECTURES

* CMakeLists.txt: Since latest OSX compiler (clang) provided by Xcode is
not accept "-arch ppc"; So if CMAKE_OSX_ARCHITECTURES is defined by
client, CMakeLists.txt should not force "ppc;i386;x86_64".

10 years agoFix ADD_DEFINITION in CMakeLists.txt for kFreeBSD
Yusuke Suzuki [Mon, 2 Dec 2013 03:38:45 +0000 (12:38 +0900)]
Fix ADD_DEFINITION in CMakeLists.txt for kFreeBSD

* CMakeLists.txt: Fix broken ADD_DEFINITION for kFreeBSD.

11 years agoFix 'Bad signal in suspend_handler' abort on FreeBSD-9.2
Ivan Maidanski [Sat, 23 Nov 2013 20:16:38 +0000 (00:16 +0400)]
Fix 'Bad signal in suspend_handler' abort on FreeBSD-9.2
(Apply commit e741b45 from 'master' branch.)

* pthread_stop_world.c (GC_suspend_handler_inner): If signal number
is zero then silently return (instead of ABORT) if FREEBSD (to
workaround a bug in FreeBSD 9.2-RELEASE regarding signals processing,
bug is observed only if THREAD_LOCAL_ALLOC defined).

Conflicts:

    pthread_stop_world.c

11 years agoFix ABORT message in GC_restart_handler
Ivan Maidanski [Thu, 21 Nov 2013 22:12:25 +0000 (02:12 +0400)]
Fix ABORT message in GC_restart_handler
(Apply commit fe2535f from 'master' branch.)

* pthread_stop_world.c (GC_restart_handler): Fix ABORT message.

Conflicts:

    pthread_stop_world.c

11 years ago[7.2e] gc7_2e
Ivan Maidanski [Sun, 10 Nov 2013 08:56:03 +0000 (12:56 +0400)]
[7.2e]

Bump version to 7.2e in README; update ChangeLog

11 years agoUpdate ChangeLog
Ivan Maidanski [Mon, 16 Sep 2013 22:03:29 +0000 (02:03 +0400)]
Update ChangeLog

11 years agoFix race in GC_print_all_errors regarding GC_leaked
Ivan Maidanski [Mon, 16 Sep 2013 04:50:49 +0000 (08:50 +0400)]
Fix race in GC_print_all_errors regarding GC_leaked

* reclaim.c (GC_add_leaked): Remove FIXME.
* reclaim.c (GC_print_all_errors): Declare n_leaked, leaked[] local
variables initialized from GC_[n_]leaked while holding the allocation
lock (reset GC_n_leaked and GC_leaked[] as well); add GC_ASSERT for
n_leaked; use [n_]leaked while printing leaked objects
pointers.
* reclaim.c (GC_print_all_errors): Acquire lock to reset
printing_errors.

Conflicts:

    reclaim.c

11 years agoUpdate ChangeLog
Ivan Maidanski [Sun, 15 Sep 2013 15:29:40 +0000 (19:29 +0400)]
Update ChangeLog

11 years agoAdd weak attribute to avoid __data_start undefined messages (s390x)
Neale Ferguson [Thu, 9 May 2013 19:42:58 +0000 (15:42 -0400)]
Add weak attribute to avoid __data_start undefined messages (s390x)
(Apply commit 8d3e3ac from 'mono_libgc' branch.)

* include/private/gcconfig.h (__data_start, _end): Add "weak"
attribute for Linux/s390.

Conflicts:

    include/private/gcconfig.h

11 years agoUpdate ChangeLog
Ivan Maidanski [Sun, 15 Sep 2013 12:54:47 +0000 (16:54 +0400)]
Update ChangeLog

11 years agoAdjust 'pthread_[un]register_cancel undefined ref' workaround (Pthreads)
Ivan Maidanski [Sun, 15 Sep 2013 11:04:35 +0000 (15:04 +0400)]
Adjust 'pthread_[un]register_cancel undefined ref' workaround (Pthreads)

* misc.c (__pthread_register_cancel, __pthread_unregister_cancel):
Move prototypes to pthread_support.c.
* pthread_support.c (__pthread_unregister_cancel,
__pthread_unregister_cancel): Declare only if
PTHREAD_REGISTER_CANCEL_WEAK_STUBS defined.

11 years agoAdd weak stubs for pthread_cancel API.
Alex Rozenman [Sun, 2 Jun 2013 08:40:22 +0000 (11:40 +0300)]
Add weak stubs for pthread_cancel API.

11 years agoUpdate ChangeLog
Ivan Maidanski [Sat, 7 Sep 2013 20:43:05 +0000 (00:43 +0400)]
Update ChangeLog

11 years agoFix collection of objects referenced only from GC_mark_stack_X variables
Ivan Maidanski [Fri, 6 Sep 2013 19:36:39 +0000 (23:36 +0400)]
Fix collection of objects referenced only from GC_mark_stack_X variables

* include/private/gc_pmark.h (mse): Move to gc_priv.h (as used by
GC_mark_stack_limit, GC_mark_stack_top, GC_mark_stack).
* include/private/gc_pmark.h (GC_mark_stack_limit, GC_mark_stack_top,
GC_mark_stack): Remove variable declaration.
* include/private/gc_priv.h (_GC_arrays): Add _mark_stack,
_mark_stack_limit, _mark_stack_top fields.
* include/private/gc_priv.h (GC_mark_stack_limit, GC_mark_stack_top,
GC_mark_stack): Define macro (redirecting to the corresponding field
of GC_arrays).
* mark.c (GC_mark_stack, GC_mark_stack_limit, GC_mark_stack_top):
Remove variable; move comment to gc_priv.h.
* mark.c (GC_push_marked1, GC_push_marked2, GC_push_marked4): Undefine
GC_mark_stack_top and GC_mark_stack_limit macros (before redefining
them to local variables) at function start, redefine them back to the
corresponding field of GC_arrays at function exit.