c2238ab89f97cf67efa1bec09bda2e1fc3741924
[cacao.git] / src / mm / boehm-gc / ChangeLog
1 2008-05-03  Hans Boehm <Hans.Boehm@hp.com>
2
3         * doc/gcinterface.html: Improve C++ interface documentation.
4
5 2008-03-10  Hans Boehm <Hans.Boehm@hp.com>
6
7         * allchblk.c (GC_allochblk): Check for overflow during size
8         rounding.
9         * tests/huge_test.c: New.
10         * Makefile.direct, tests/tests.am: Add huge_test.c
11         * Makefile.in: Regenerate.
12
13 2008-02-29  Hans Boehm <Hans.Boehm@hp.com>
14
15         * pthread_support.c: Fix typo in comment.
16         * os_dep.c (GC_win32_get_mem): Add heap section only if
17         allocation succeeded.
18
19 2008-02-28  Hans Boehm <Hans.Boehm@hp.com>
20
21         * malloc.c: (free replacement) Fix caller address space check.
22
23 2008-02-25  Hans Boehm <Hans.Boehm@hp.com>
24
25         * finalize.c (GC_grow_table): Dereference table in null-check.
26
27 2008-02-24  Hans Boehm <Hans.Boehm@hp.com>
28
29         * win32_threads.c (GC_delete_gc_thread, GC_delete_thread):
30         Consistently call CloseHandle. (GC_suspend): Call
31         GC_delete_gc_thread.
32         * tests/test.c: Don't reference GC_print_stats if not exported.
33
34 2008-02-20  Hans Boehm <Hans.Boehm@hp.com>
35
36         * tests/test.c (run_one_test): Don't mention pthread_self().
37         * misc.c: Declare GC_thr_init().
38
39 2008-02-20  Hans Boehm <Hans.Boehm@hp.com>
40
41         * allchblk.c (add_to_fl): disable assertions with USE_MUNMAP,
42         and refine assertions to handle huge unmergable blocks.
43         (GC_allochblk_nth): Add comment.
44
45 2008-02-20  Hans Boehm <Hans.Boehm@hp.com>
46
47         * include/private/gcconfig.h: Add misssing FREEBSD macro
48         consistency test.
49
50 2008-02-20  Hans Boehm <Hans.Boehm@hp.com>
51
52         * allchblk.c (GC_enough_large_bytes_left): No longer take
53         parameters; return free list index bound.
54         (GC_merge_unmapped): Don't access nexthdr until after null test.
55         (Fixes bug in 1/29/08 check-in.)  (GC_allochblk): Calculate
56         when splitting is allowable only once here, not when considering each
57         block. (GC_allchblk_nth): Accept new may_split parameter.
58         Avoid some redundant tests for exact size matches.
59         * alloc.c (GC_should_collect): Cache min_bytes_allocd.
60         (GC_maybe_gc): Make locking assertion testable.
61         * mark_rts.c: Fix indentation.
62         * pthread_stop_world.c: Replace old GC_err_printf1 reference.
63         * tests/test.c: Remove (void) casts.  Optionally print some
64         timing information.
65
66 2008-02-15  Hans Boehm <Hans.Boehm@hp.com>
67
68         * windows-untested/gc.def: Remove CreateThread line.
69         * windows-untested/README: New file.
70         * win32_threads.c (GC_use_DllMain): Force collector initialization.
71         (GC_init_parallel): Reformat comment.
72         * include/gc.h (GC_use_DllMain): Clarify usage rules in comment.
73         * mark.c (GC_mark_from): Slightly simplify GC_DS_PER_OBJECT code.
74         * include/gc_cpp.h: Add matching placement delete overloads
75         everywhere.
76         * include/private/gc_locks.h (NO_THREAD): Add cast.
77         * include/private/gcconfig.h: Add test for __HP_aCC.
78         * configure.ac, tests/tests.am:  Avoid libgccpp on HP/UX.
79         * Makefile.in, configure: Regenerate.
80
81 2008-02-11  Hans Boehm <Hans.Boehm@hp.com> (partly David Leonard)
82
83         * doc/README.win32: Fix typo.
84         * configure.ac: Fix printing of enable-shared result.
85         * configure: Regenerate.
86
87 2008-02-08  Hans Boehm <Hans.Boehm@hp.com>
88
89         * misc.c (GC_init_inner): Assert !GC_need_to_lock only when
90         defined.  (GC_call_with_stack_base): Add GC_API.
91         * os_dep.c (GC_get_stack_base): Add GC_API.
92         * win32_threads.c: (GC_register_my_thread, GC_unregister_my_thread):
93         Add GC_API.
94         * include/gc.h: Add GC_API annotations.
95         * include/private/gc_locks.h: Define UNCOND_LOCK etc. also for
96         PCR.
97         * include/private/gc_pmark.h: Fix comments.
98
99 2008-02-06  Hans Boehm <Hans.Boehm@hp.com> (mostly from Henning Makholm)
100
101         * include/private/gc_priv.h, mark_rts.c, typd_mlc.c:
102         Add GC_push_typed_structures() to push GC_ext_descriptors.
103
104 2008-01-31  Hans Boehm <Hans.Boehm@hp.com> (mostly from Andreas Tobler)
105
106         * tests/test.c: Call GC_INIT for DARWIN; test system type using
107         gcconfig.h-defined macros.
108
109 2008-01-29  Hans Boehm <Hans.Boehm@hp.com>
110
111         * allchblk.c (GC_merge_unmapped, GC_freehblk): Refuse to create
112         blocks large enough that their size, when interpreted as a signed
113         value, would be negative.
114         * include/private/gc_priv.h: Comment hb_sz range limit.
115
116 2008-01-29  Hans Boehm <Hans.Boehm@hp.com>  (with help from Manuel Serrano)
117         
118         * mark.c (GC_push_next_marked): correct comment.
119         * Makefile.direct: document NO_PROC_STAT.
120         * include/private/gcconfig.h: Accomodate NO_PROC_STAT.
121
122 2008-01-10  Hans Boehm <Hans.Boehm@hp.com>
123         
124         * include/gc_version.h, configure.ac, doc/README:
125         Change to version 7.1alpha3.
126         * configure: Regenerate.
127
128 [7.1alpha2]
129
130 2008-01-10  Hans Boehm <Hans.Boehm@hp.com>
131         
132         * include/gc_version.h, configure.ac, doc/README:
133         Change to version 7.1alpha2.
134         * configure: Regenerate.
135
136 2008-01-10  Hans Boehm <Hans.Boehm@hp.com>
137         
138         * Makefile.am: Mention atomic_ops.c and atomic_ops_sysdeps.S
139         again.  Refer to build directory as ".".
140         * Makefile.in: Regenerate.
141         
142 2008-01-10  Hans Boehm <Hans.Boehm@hp.com>
143
144         * configure.ac: Ignore --enable-parallel-mark on Darwin for now.
145         * configure: Regenerate.
146         * darwin_stop_world.c: Add FIXME comment for parallel marker.
147
148 2008-01-09  Hans Boehm <Hans.Boehm@hp.com>
149
150         * include/private/gc_priv.h: Update MAX_ROOT_SETS
151         and LOG_PHT_ENTRIES to handle larger heaps.
152
153 2008-01-03  Hans Boehm <Hans.Boehm@hp.com>
154
155         * include/gc.h (GC_INIT,GC_init): Update comments.
156
157 2008-01-03  Hans Boehm <Hans.Boehm@hp.com> (based on a patch from
158         John Bowman, and an ancient patch from Fergus Henderson)
159
160         * allchblk.c, alloc.c, include/private/gc_priv.h:
161         Track GC_bytes_dropped and use in GC triggering decisions.
162         * alloc.c (min_bytes_allocd): Weight atomic blocks less.
163
164 2008-01-02  Hans Boehm <Hans.Boehm@hp.com>
165
166         * alloc.c (GC_add_to_heap): Call GC_install_header(p) AFTER
167         adjusting p.
168
169 2007-12-23  Hans Boehm <Hans.Boehm@hp.com>
170
171         * Makefile.am: Add NT_X64_THREADS_MAKEFILE.
172  
173 2007-12-23  Hans Boehm <Hans.Boehm@hp.com> (Really mostly Friedrich Dominicus)
174
175         * NT_X64_STATIC_THREADS_MAKEFILE: Clean up obsolete comment.
176         * alloc.c: Add declaration for GC_add_current_malloc_heap.
177         * win32_threads.c (GC_beginthreadex): Clean up error
178         return code.
179         * doc/README.win64, NT_X64_THREADS_MAKEFILE, Makefile.direct:
180         Add NT_X64_THREADS_MAKEFILE.
181
182 2007-12-21  Hans Boehm <Hans.Boehm@hp.com>
183
184         * alloc.c: Define GC_version instead of in version.h.
185         * version.h: Remove.
186         * include/gc_version.h: Move most of version.h here.
187         * include/gc.h: Include gc_version.h.
188         * gcname.c, add_gc_prefix.c: include gc.h instead of version.h.
189         * Makefile.direct, Makefile.dj, Makefile.am, include/include.am:
190         Adjust for version.h rename.
191         * Makefile.in: Regenerate.
192
193 2007-12-21  Hans Boehm <Hans.Boehm@hp.com> (Really mostly russ sludge dot net)
194
195         * configure.ac: Put libatomic_ops links in build directory.
196         * configure: Regenerate.
197         * Makefile.am: Dont mention atomic_ops.c and atomic_ops_sysdeps.S
198         as nodist sources.
199
200 2007-12-20  Hans Boehm <Hans.Boehm@hp.com>
201
202         * include/gc.h, doc/README.macros: Add GC_NO_THREAD_REDIRECTS,
203         GC_NO_THREAD_DECLS, don't test explicitly for GC_SOLARIS_THREADS.
204
205 2007-12-20  Hans Boehm <Hans.Boehm@hp.com>
206         
207         * alloc.c: Deal correctly with address wrapping for 
208         GC_greatest_plausible_heap_addr and GC_least_plausible_heap_addr.
209         * finalize.c, include/gc.h (GC_register_disappearing_link,
210         GC_register_finalizer_inner): Improve out-of-memory handling.
211         * include/private/gc_pmark.h: Fix comment spelling.
212
213 2007-12-18  Hans Boehm <Hans.Boehm@hp.com> (really mainly Peter Wang)
214
215         * include/gc_inline.h, include/gc_tiny_fl.h: cleanups to make usable
216         in other contexts.
217
218 2007-12-18  Hans Boehm <Hans.Boehm@hp.com> (really Radek Polak)
219
220         * include/gc.h: Don't define GC_HAVE_BUILTIN_BACKTRACE for uclibc.
221
222 2007-12-18  Hans Boehm <Hans.Boehm@hp.com>
223
224         * gc_cpp.cc: Don't include gc_cpp.h from local directory.
225
226 2007-12-18  Hans Boehm <Hans.Boehm@hp.com> (really Adam Megacz)
227
228         * allchblk.c, configure.ac (add --enable-munmap)
229         * configure: Regenerate.
230
231 2007-12-10  Andreas Tobler  <a.tobler@schweiz.org>
232
233         * dyn_load.c (GC_dyld_image_add): Remove ifdef clause and use the macro
234         GC_GETSECTBYNAME instead.
235         * include/private/gc_priv.h: Define GC_GETSECTBYNAME according to the
236         architecture (Darwin).
237
238 2007-10-24  Hans Boehm <Hans.Boehm@hp.com>
239
240         * reclaim.c (GC_bytes_found): Expand comment.
241         * thread_local_alloc.c (GC_malloc_atomic, GC_gcj_malloc): Pass
242         granules, not bytes, to GC_FAST_MALLOC_GRANS.
243         * include/gc.h: Never include gc_local_alloc.h.
244         * tests/test.c: Add size zero allocation tests.
245
246 2007-10-23  Hans Boehm <Hans.Boehm@hp.com>
247
248         * malloc.c: Update GC_large_allocd_bytes on explicit deallocation.
249         * allchblk.c: Sanity check GC_max_large_allocd_bytes.
250
251 2007-10-23  Hans Boehm <Hans.Boehm@hp.com> (Really Manuel Serrano)
252
253         * Makefile.direct: Invoke $(MAKE) instead of make.
254
255 2007-10-23  Hans Boehm <Hans.Boehm@hp.com>
256
257         * doc/scale.html: Reflect gc7 thread local allocation behavior.
258
259 2007-10-23  Hans Boehm <Hans.Boehm@hp.com> (really Petter Urkedal)
260
261         * include/extra/gc.h, include/extra/gc_cpp.h: New.
262         * include/include.am: Install gc.h and gc_cpp.h in $(prefix)/include
263         again.
264         * Makefile.in: Regenerate.
265
266 2007-08-15  Hans Boehm <Hans.Boehm@hp.com> (really Samuel Thibault)
267         
268         * pthread_support.c (GC_thr_init): Use sysconf(_SC_NPROCESSORS_ONLN)
269         for HURD.
270
271 2007-08-14  Hans Boehm <Hans.Boehm@hp.com> (really David Daney)
272
273         * include/private/gcconfig.h: Add Linux/mips-64 support.
274
275 2007-08-14  Hans Boehm <Hans.Boehm@hp.com> (really mostly Samuel Thibault)
276
277         * dbg_mlc.c: Use random() on all glibc systems.
278         * mach_dep.c (GC_with_callee_saves_pushed): Don't use getcontext() on
279         HURD.  Add comment.
280         * pthread_stop_world.c (GC_suspend_handler, GC_stop_init): Accomodate
281         systems without SA_SIGINFO.
282
283 2007-08-14  Hans Boehm <Hans.Boehm@hp.com> (partly really Henrik Theiling)
284
285         * include/gc.h (GC_PTR_STORE): Fix non-DEBUG parentheses.
286         * tests/test.c (run_one_test): Add GC_PTR_STORE test.
287         No longer test for RS6000.
288
289 2007-08-03  Hans Boehm <Hans.Boehm@hp.com>
290         
291         * alloc.c, backgraph.c, headers.c, include/private/gc_priv.h:
292         Maintain GC_our_memory and GC_n_memory.
293         * dbg_mlc.c (GC_print_smashed_obj): Improve message.
294         (GC_print_all_smashed_proc): Pass client object address instead of
295         base.
296         * dyn_load.c (sort_heap_sects): New.  (GC_register_map_entries):
297         Register sections that are contiguous and merged with our heap.
298         * malloc.c, os_dep.c (GC_text_mapping): Check for just base name
299         of libraries.
300         * malloc.c (calloc): Check for special callers even with
301         USE_PROC_FOR_LIBRARIES. Move assertion.  Add rudimentary
302         malloc/free tracing.
303         * misc.c: No longer call GC_init_lib_bounds explicitly.
304         * thread_local_alloc.c (GC_malloc, GC_malloc_atomic): Always
305         initialize on demand.
306         * tests/test.c: Call GC_INIT only when required.
307
308 2007-08-03  Hans Boehm <Hans.Boehm@hp.com>
309
310         * Makefile.direct: Remove comment fragment.
311         * tests/tests.am: Add smashtest.
312         * Makefile.in: Regenerate.
313         * configure.ac: Define GC_USE_DLOPEN_WRAP with redirect-malloc.
314         * configure: Regenerate.
315         * pthread_support.c: Fix comment spelling.
316         * include/private/gcconfig.h: Define USE_PROC_FOR_LIBRARIES with
317         GC_LINUX_THREADS and REDIRECT_MALLOC.
318         * tests/smash_test.c: Initial check-in.
319         * obj_map.c: Print log entry to correct file.
320         * include/private/thread_local_alloc.h: Add TlsAlloc error check.
321
322 2007-07-23  Hans Boehm <Hans.Boehm@hp.com>
323
324         * alloc.c (GC_stopped_mark): Call GC_add_current_malloc_heap()
325         while world is still running.
326         * os_dep.c (GC_is_heap_base): Don't call GC_add_current_malloc_heap()
327         with world stopped.
328         * include/gc.h (GC_INIT for cygwin): Always call GC_add_roots.
329         * misc.c (GC_init/GC_init_inner): Perform all work in
330         GC_init_inner.
331         * Makefile.direct: Expand -DUSE_MUNMAP comment.
332
333 2007-07-23  Hans Boehm <Hans.Boehm@hp.com> (really Jim Marshall)
334
335         * include/gc.h: Define uintptr_t explicitly for VC++6.
336         * msvc_dbg.c (GetModuleBase): Revert to strcat if strcat_s doesn't
337         exist.
338
339 2007-07-02  Hans Boehm <Hans.Boehm@hp.com>
340         
341         * version.h, configure.ac, doc/README: Change to version 7.1alpha1.
342         * configure: Regenerate.
343
344 2007-07-02  Hans Boehm <Hans.Boehm@hp.com>
345         
346         * version.h, configure.ac, doc/README: Change to version 7.0.
347         * configure: Regenerate.
348
349 2007-07-02  Hans Boehm <Hans.Boehm@hp.com>
350
351         * include/gc_config_macros.h: Also check for IA64 when setting
352         GC_HPUX_THREADS.
353         * mallocx.c: Change my_bytes_allocd to signed_word.
354         * include/gc_pthread_redirects.h: Remove obsolete Solaris threads
355         (as opposed to pthreads) support.
356
357 2007-07-02  Hans Boehm <Hans.Boehm@hp.com>
358
359         * mach_dep.c (GC_with_callee_saves_pushed): Don't use getcontext()
360         on ARM/Linux.  Check getcontext() return value.
361
362 2007-06-29  Hans Boehm <Hans.Boehm@hp.com>
363
364         * backgraph.c (per_object_func): Make argument types consistent.
365         (GC_traverse_back_graph): Mark GC_deepest_obj.
366         
367 2007-06-29  Hans Boehm <Hans.Boehm@hp.com>
368
369         * finalize.c (GC_finalize): Change dl_size and fo_size to size_t.
370         * os_dep.c (GC_win32_get_mem): Add GC_mem_top_down option.
371
372 2007-06-28  Hans Boehm <Hans.Boehm@hp.com>
373
374         * doc/README.win32, doc/README, README.QUICK: Fix some of the worst
375         anachronisms.
376         * dyn_load.c: Partially support cygwin, but don't enable it yet.
377
378 2007-06-28  Hans Boehm <Hans.Boehm@hp.com>
379
380         * Makefile.am: Use -no-undefined for libgc.
381         * Makefile.in: Regenerate.
382         * Makefile.direct: Document USE_PROC_FOR_LIBRARIES.
383         * dyn_load.c (GC_register_map_entries): Rename prot_buf to prot
384         consistently.
385         * misc.c: Fix some WARN calls.  Move GC_is_initialized setting and
386         GC_thr_init() call.
387         * os_dep.c: Consistently use WARN where appropriate.
388         * thread_local_alloc.c: Revert change to GC_WIN32_THREADS test.  Instead
389         remove inappropriate pthread.h include.
390         * doc/README.linux: Remove some anachronisms.
391
392 2007-06-23  Hans Boehm <Hans.Boehm@hp.com>
393
394         * alloc.c: Also use GC_check_tls on non-Linux systems.
395         * mallocx.c (GC_reclaim_generic): Remove bogus declaration.
396         * include/private/gc_priv.h (GC_reclaim_generic): Declare correctly
397         with prototype.
398
399 2007-06-19  Hans Boehm <Hans.Boehm@hp.com>
400
401         * alloc.c (GC_adj_bytes_allocd): Avoid (long) casts, fix comment.
402         (GC_print_heap_sects): Use size_t instead of unsigned long.
403         * thread_local_alloc.c (GC_lookup_thread): Define in the correct
404         context.
405         * win32_threads.c, include/gc_config_macros.h: The last of Romano
406         Paolo Tenca's patch.  Move stdint.h include to gc_config_macros.h.
407         * include/gc_inline.h: Avoid gc_priv.h dependencies.
408         * tests/test.c (check_heap_stats): Replace unsigned long with size_t.
409
410 2007-06-12  Hans Boehm <Hans.Boehm@hp.com>
411
412         * aclocal.m4: Regenerate to update date.
413
414 2007-06-10  Hans Boehm <Hans.Boehm@hp.com>
415
416         * NT_X64_STATIC_THREADS_MAKEFILE: Replace obsolete -debugtype:cv.
417         * mark_rts.c (GC_push_roots): Fix kind type.
418
419 2007-06-06  Hans Boehm <Hans.Boehm@hp.com>
420
421         * doc/README.win64: New file.
422         * doc/doc.am, Makefile.direct: Add README.win64.
423         * Makefile.in: Regenerate.
424
425 2007-06-06  Hans Boehm <Hans.Boehm@hp.com>
426
427         * Makefile.am, Makefile.direct: Add NT_X64_STATIC_THREADS_MAKEFILE.
428         * Makefile.in: Regenerate.
429         * NT_X64_STATIC_THREADS_MAKEFILE: Fix warning flags.
430         * allochblk.c, alloc.c, blacklst.c, dbg_malc.c, dyn_load.c,
431         finalize.c, headers.c, mach_dep.c, malloc.c, mark.c, misc.c,
432         obj_map.c, os_dep.c, ptr_chck.c, reclaim.c, typd_mlc.c,
433         win32_threads.c, cord/de_win.c, include/gc_mark.h,
434         include/private/gc_hdrs.h, include/private/gc_pmark.h,
435         include/private/gc_priv.h, tests/test_cpp.cc:
436         Replace old style function declarations.  Clean up integral types.
437         Remove register declarations.  The change in malloc.c and the
438         "int descr" declaration in mark.c are the most likely to have
439         been real bugs outside of win64.
440         * msvc_dbg.c: Disable on win64.
441         * win32_threads.c: Add AMD64 support.
442         * include/gc.h: no backtrace on AMD64 for now.
443
444 2007-06-06  Hans Boehm <Hans.Boehm@hp.com>
445
446         * msvc_dbg.c(GetModuleBase): Replace strcat with strcat_s.
447
448 2007-06-06  Hans Boehm <Hans.Boehm@hp.com>
449         
450         * include/gc.h: (GC_word, GC_signed_word): Fix win64 definitions.
451         Don't include windows.h in an extern "C" context.
452         * include/private/gcconfig.h: Fix win64/X86_64 configuration.
453         * tests/test.c: Eliminate more old style function definitions.
454         Cleanup pointer and integer casts for win64.
455         * tests/test_cpp.cc: Don't include gc_priv.h.
456         * NT_STATIC_THREADS_MAKEFILE: Restrict suffixes for VC++ 2005.
457         * NT_X64_STATIC_THREADS_MAKEFILE: New.
458
459 2007-06-06  Hans Boehm <Hans.Boehm@hp.com> (Really mostly Romano Paolo Tenca)
460
461         * win32_threads.c: Separate out DEBUG_WIN32_PTHREADS_STACK.  Ignore
462         FINISHED threads for suspension.  (GC_pthread_join): Add
463         pthread_self() cast.  (GC_pthread_start_inner): Execute cleanup
464         handler when popping it.
465         * include/private/gc_locks.h: Inline THREAD_EQUAL for
466         GC_WIN32_PTHREADS.  Define USE_PTHREAD_LOCKS only if we have
467         pthreads.
468
469 2007-05-23  Hans Boehm <Hans.Boehm@hp.com> (Really mostly Romano Paolo Tenca)
470
471         * gc_dlopen.c, thread_local_alloc.c, threadlibs.c, win32_threads.c,
472         tests/test.c: Accomodate GC_WIN32_PTHREADS.
473         * include/gc.h: Don't include windows.h for GC_WIN32_PTHREADS.
474         * include/gc_config_macros.h: Define both PTHREADS and
475         GC_WIN32_THREADS.
476         * include/private/gc_locks.h: Nonstandard definitions of
477         NUMERIC_THREAD_ID for GC_WIN32_PTHREADS.
478         * doc/README.win32, Makefile.direct: Include documentation
479         for GC_WIN32_PTHREADS.
480         * Makefile.direct: Remove some anachronisms in the documentation.
481
482 2007-05-23  Hans Boehm <Hans.Boehm@hp.com>
483
484         * Makefile.am: Move includes to bottom.  Add better library
485         dependencies.  Increment library version.  Remove "SUBDIRS += .".
486         * cord/cord.am, tests/tests.am: Add better library dependencies.
487         Remove now unnecessary dependencies.
488         * Makefile.in: Regenerate.
489         * include/gc.h (GC_begin_thread_ex, GC_endthreadex, GC_ExitThread):
490         Move to define on all Windows platforms.  (_beginthread): define
491         to generate error if used.
492
493 2007-05-22  Hans Boehm <Hans.Boehm@hp.com>
494
495         * include/private/gc_locks.h: Format to 80 columns.
496
497 2007-05-22  Hans Boehm <Hans.Boehm@hp.com>
498         
499         * malloc.c(GC_free): Ignore bad frees on MSWIN32 with REDIRECT_MALLOC.
500         * NT_MAKEFILE: msvc_dbg.h is in include/private.  Don't use cvars
501         rc.
502         * misc.c (WIN32 GC_write): Define GC_need_to_lock in single-threaded
503         case.
504         * win32_threads.c: Test for __MINGW32__ in addition to _MINGW_VER.
505         (GC_CreateThread, GC_beginthreadex): Deallocate args even if we fail.
506         * include/gc.h: Add GC_reachable_here().  (GC_WinMain): Add GC_API.
507         (GC_beginthreadex, GC_endthreadex, GC_ExitThread): Declare.
508         * tests/test.c: Add GC_reachable_here() call.
509
510 2007-05-21  Hans Boehm <Hans.Boehm@hp.com>
511
512         * alloc.c (GC_try_to_collect): Call GC_init if necessary.
513         * tests/thread_leak_test.c: Don't unconditionally define
514         GC_LINUX_THREADS.
515
516 2007-05-21  Andreas Tobler  <a.tobler@schweiz.org>
517
518         * Makefile.am: Remove extra_ldflags_libgc definition.
519         * Makefile.in: Regenerate.
520
521 2007-05-17  Hans Boehm <Hans.Boehm@hp.com>
522
523         * include/private/gc_priv.h: Define AO_REQUIRE_CAS.
524
525 2007-05-16  Hans Boehm <Hans.Boehm@hp.com>
526
527         * finalize.c (GC_unreachable_finalize_mark_proc): Don't return void
528         value.
529
530 2007-05-15  Hans Boehm <Hans.Boehm@hp.com>
531
532         * configure.ac, version.h, doc/README: Change version to 7.0alpha10.
533         * configure: Regenerate.
534
535 [7.0alpha9 release]
536
537 2007-05-15  Hans Boehm <Hans.Boehm@hp.com>
538
539         * configure.ac, version.h, doc/README: Change version to 7.0alpha9.
540         * configure: Regenerate.
541
542 2007-05-15  Hans Boehm <Hans.Boehm@hp.com>
543
544         * Makefile.am: Include NT_STSTIC_THREADS_MAKEFILE in dist.
545         * Makefile.in: Regenerate.
546         * include/private/gc_locks.h: GC_compare_and_exchange, GC_atomic_add:
547         remove. NUMERIC_THREAD_ID, THREAD_EQUAL: New.  GC_lock_holder: now
548         unsigned long.  I_DONT_HOLD_LOCK, I_HOLD_LOCK: Update.
549         * pthread_stop_world.c, pthread_support.c, win32_threads.c: Use
550         NUMERIC_THREAD_ID, THREAD_EQUAL.
551         * include/private/gcconfig.h: GENERIC_COMPARE_AND_SWAP: Remove.
552         * include/private/thread_local_alloc.h: Don't USE_COMPILER_TLS on
553         ARM.
554
555 2007-05-11  Hans Boehm <Hans.Boehm@hp.com>
556
557         * dbg_mlc.c, include/gc.h, finalize.c: Merge Alexandre Oliva's
558         GC_debug_register_finalizer_unreachable() patch from gcc tree.
559         * thread_local_alloc.c (GC_malloc, GC_malloc_atomic): Add assertions
560         to check GC has been initialized.
561
562 2007-05-10  Hans Boehm <Hans.Boehm@hp.com>
563
564         * include/gc_cpp.h: Documentation updates.
565         * include/gc_config_macros.h: Don't check for __ppc__ to set
566         DARWIN_THREADS.
567         * Makefile.am: Include configure_atomic_ops.sh in dist.
568         * Makefile.in: Regenerate.
569
570 2007-05-08  Hans Boehm <Hans.Boehm@hp.com>
571
572         * Makefile.am: Dont distribute copied atomic_ops files.  Include
573         libatomic_ops with "make dist".
574         * Makefile.in: Regenerate.
575         * configure: Regenerate.
576         * configure.ac: Enable THREAD_LOCAL_ALLOC for Cygwin with threads.
577         * win32_threads.c: Report error for Cygwin + GC_DLL.
578
579 2007-05-08  Hans Boehm <Hans.Boehm@hp.com>
580
581         * Makefile.direct: Update THREAD_LOCAL_ALLOC documentation.
582         * cord/de_win.c: Rename and move AboutBox.  Call GC_INIT.  Remove
583         MakeProcInstance anachronism.
584         * doc/README.macros: Officially remove elif prohibition.
585         Remove documentation for defunct SRC_M3 support.
586         * include/gc.h: Remove more SRC_M3 references.
587         * include/private/gcconfig.h: Remove still more SRC_M3 references.
588         GC_SOLARIS_THREADS no longer needs to be checked separately.
589         
590 2007-05-08  Hans Boehm <Hans.Boehm@hp.com>
591
592         * thread_local_alloc.c, include/private/thread_local_alloc.h:
593         Spell __declspec correctly.
594         * NT_STATIC_THREADS_MAKEFILE: Enable thread-local allocation.
595
596 2007-05-07  Hans Boehm <Hans.Boehm@hp.com>
597
598         * doc/README.win32: Adjust GC_win32_dll_threads rules again.
599
600 2007-05-07  Hans Boehm <Hans.Boehm@hp.com>
601
602         * mark.c (GC_mark_some wrapper): Restructure for readability, handle
603         GC_started_thread_while_stopped.
604         * misc.c (Win32 GC_write): Lock GC_write_cs only if needed.
605         * win32_threads.c: (client_has_run): remove,
606         GC_started_thread_while_stopped, GC_attached_thread: add.
607         (GC_push_all_stacks): Add verbose output.
608         (DllMain): Avoid initializing collector or the like.
609         Never update both thread tables.
610         * doc/README.win32: Adjust GC_win32_dll_threads rules.
611
612 2007-05-07  Hans Boehm <Hans.Boehm@hp.com>
613
614         * pthread_stop_world.c (GC_push_all_stacks): Print thread count with
615         GC_PRINT_VERBOSE_STATS.
616
617 2007-05-01  Hans Boehm <Hans.Boehm@hp.com>
618                 (and Manuel Serrano, Craig McDaniel)
619
620         * configure.ac: Comment out redundant
621           AC_DEFINE(NO_EXECUTE_PERMISSION).
622         * configure: Regenerate.
623         * sparc_mach_dep.S: Remove single quote in comment.
624         * include/private/gcconfig.h: Fix DATAEND for NONSTOP.
625         * win32_threads.c: Include stdint.h for Mingw.  Add GC_API for DllMain.
626         (GC_use_DllMain): Fix assertion.
627
628 2007-02-14  Andreas Tobler  <a.tobler@schweiz.org>
629
630         * configure.ac: Introduce extra_ldflags_libgc. Use it for Darwin.
631         * configure: Regenerate.
632         * Makefile.am (libgc_la_LDFLAGS): Use extra_ldflags_libgc.
633         * Makefile.in: Regenerate.
634         * include/private/gcconfig.h: Enable MPROTECT_VDB for all Darwin
635         targets. Remove comments.
636         Prepare ppc64 support for Darwin.
637
638 2007-01-29  Andreas Tobler  <a.tobler@schweiz.org>
639
640         * darwin_stop_world.c: Clean up and reformat code.
641
642 2007-01-28  Andreas Tobler  <a.tobler@schweiz.org>
643
644         * darwin_stop_world.c (GC_push_all_stacks): Fix compiler warnings.
645         Make i unsigned.
646         (GC_stop_world): Likewise. Remove unused GC_thread p.
647         (GC_start_world): Likewise.
648
649         * os_dep.c: Define GC_darwin_register_mach_handler_thread extern.
650         Remove double SIG_HNDLR_PTR definition.
651         (GC_forward_exception): Fix compiler warnings, make i unsigned.
652         Initialize thread_state to NULL.
653         (catch_exception_raise): Fix compiler warnings, make i unsigned.
654
655 2007-01-25  Petr Salinger and Hans Boehm <Hans.Boehm@hp.com>
656
657         * include/private/gc_priv.h (NEED_FIND_LIMIT, FREEBSD variant):
658         also define for X86_64.
659         * configure.ac: Move generic gnu (Hurd) case to below kfreebsd case.
660         * configure: Regenerate.
661         * README.changes: Point to ChangeLog.
662
663 2007-01-25  Andreas Tobler  <a.tobler@schweiz.org>
664
665         * darwin_stop_world.c: Move THREAD_FLD defines to ...
666         * include/private/gc_priv.h: ... here.
667         Fix THREAD_STATE definitions for ppc64.
668         * os_dep.c (catch_exception_raise): Use THREAD_FLD for exc_state member
669         access.
670
671 2007-01-18  Andreas Tobler  <a.tobler@schweiz.org>
672
673         * os_dep.c (if defined(MPROTECT_VDB) && defined(DARWIN)): Clean up and
674         reformat code.
675         Correct email reference.
676
677 2007-01-11  Andreas Tobler  <a.tobler@schweiz.org>
678
679         * configure.ac (i?86*-*-darwin*): Replaced HAS_I386_THREAD_STATE_* with
680         HAS_X86_THREAD_STATE32_*.
681         (x86_64-*-darwin*): Extended the above check for x86_64-*-darwin* with
682         HAS_X86_THREAD_STATE64_*.
683         Added value 1 in the above AC_DEFINE's. Important for the upcoming
684         Leopard.
685         * configure: Regenerated.
686         * include/private/gcconfig.h: Modified X86_64 define for Darwin.
687         Removed __x86_64__ check in POWERPC section. Added base definitions
688         for the X86_64 Darwin port.
689         * include/private/gc_priv.h: Added GC_MACH_HEADER and GC_MACH_SECTION
690         to distinguish between 32 and 64-bit applications. Added definitions
691         for X86_64 Darwin.
692         * darwin_stop_world.c: Added HAS_X86_THREAD_STATE64___RAX. And
693         replaced HAS_I386_THREAD_STATE___EAX with HAS_X86_THREAD_STATE32___EAX.
694         (GC_push_all_stacks): Added code for X86_64 Darwin. Even for the
695         !DARWIN_DONT_PARSE_STACK. Maybe obsolete.
696         * dyn_load.c (GC_dyld_name_for_hdr): Use GC_MACH_HEADER.
697         (GC_dyld_image_add): Use GC_MACH_HEADER and GC_MACH_SECTION.
698         Distinguish between getsectbynamefromheader_64 and
699         getsectbynamefromheader.
700         * os_dep.c (catch_exception_raise): Introduce exception definition for
701         X86_64 Darwin. Replaced old i386_EXCEPTION_STATE_* definition with
702         x86_EXCEPTION_STATE32_*. Add X86_64 for exc_state.faultvaddr.
703
704 2007-01-09  Andreas Tobler  <a.tobler@schweiz.org>
705
706         * libtool.m4: Update to version from libtool-1.5.22.
707         * ltmain.sh: Likewise.
708         * ChangeLog: Created.
709
710 See doc/README.changes for earlier changes.
711