Commit graph

66 commits

Author SHA1 Message Date
snj
d219b30088 This needs _XOPEN_SOURCE to build on Snow Leopard. 2010-01-21 01:54:59 +00:00
wiz
937e1d7ac7 Avoid duplicate symbol definition for GC_push_regs in
sparc_netbsd_mach_dep.s and mach_dep.c.

From PR 42634 by Bertrand Joel.

Bump PKGREVISION.
2010-01-20 10:01:19 +00:00
wiz
59a8534f35 Fix binary on NetBSD versions using binutils-2.19.
Patch from enami@

Bump PKGREVISION.
2009-11-10 18:35:13 +00:00
minskim
bea100784c Add an option to enable thread support in boehm-gc. 2009-08-11 18:04:48 +00:00
wiz
60f10e944e Remove patch-ad, which breaks self tests on NetBSD-4.99.63/amd64.
Replace first hunk of patch-af with CONFIGURE_ARGS.
Remove next two hunks of patch-af installing some private headers.
This shouldn't be necessary in the 7.x versions. If it is, the author
is willing to help fix the underlying problems.

patch-aa and -ab will be included in the next upstream release.

Bump PKGREVISION.
2008-05-22 11:45:25 +00:00
wiz
b59b927232 Update to 7.1. Extract from ChangeLog:
* doc/gcinterface.html: Improve C++ interface documentation.
* allchblk.c (GC_allochblk): Check for overflow during size
rounding.
* malloc.c: (free replacement) Fix caller address space check.
* finalize.c (GC_grow_table): Dereference table in null-check.
* allchblk.c (add_to_fl): disable assertions with USE_MUNMAP,
and refine assertions to handle huge unmergable blocks.
* allchblk.c (GC_enough_large_bytes_left): No longer take
parameters; return free list index bound.
(GC_merge_unmapped): Don't access nexthdr until after null test.
(Fixes bug in 1/29/08 check-in.)  (GC_allochblk): Calculate
when splitting is allowable only once here, not when considering each
block. (GC_allchblk_nth): Accept new may_split parameter.
Avoid some redundant tests for exact size matches.
* alloc.c (GC_should_collect): Cache min_bytes_allocd.
(GC_maybe_gc): Make locking assertion testable.
* mark_rts.c: Fix indentation.
* pthread_stop_world.c: Replace old GC_err_printf1 reference.
* misc.c (GC_init_inner): Assert !GC_need_to_lock only when
defined.  (GC_call_with_stack_base): Add GC_API.
* os_dep.c (GC_get_stack_base): Add GC_API.
* win32_threads.c: (GC_register_my_thread, GC_unregister_my_thread):
Add GC_API.
* include/gc.h: Add GC_API annotations.
* include/private/gc_locks.h: Define UNCOND_LOCK etc. also for
PCR.
* include/private/gc_priv.h, mark_rts.c, typd_mlc.c:
Add GC_push_typed_structures() to push GC_ext_descriptors.
* allchblk.c (GC_merge_unmapped, GC_freehblk): Refuse to create
blocks large enough that their size, when interpreted as a signed
value, would be negative.
* include/private/gc_priv.h: Update MAX_ROOT_SETS
and LOG_PHT_ENTRIES to handle larger heaps.
* allchblk.c, alloc.c, include/private/gc_priv.h:
Track GC_bytes_dropped and use in GC triggering decisions.
* alloc.c (min_bytes_allocd): Weight atomic blocks less.
* alloc.c (GC_add_to_heap): Call GC_install_header(p) AFTER
adjusting p.
* alloc.c: Define GC_version instead of in version.h.
* version.h: Remove.
* include/gc_version.h: Move most of version.h here.
* include/gc.h, doc/README.macros: Add GC_NO_THREAD_REDIRECTS,
GC_NO_THREAD_DECLS, don't test explicitly for GC_SOLARIS_THREADS.
* alloc.c: Deal correctly with address wrapping for
GC_greatest_plausible_heap_addr and GC_least_plausible_heap_addr.
* finalize.c, include/gc.h (GC_register_disappearing_link,
GC_register_finalizer_inner): Improve out-of-memory handling.
* 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).
* thread_local_alloc.c (GC_malloc_atomic, GC_gcj_malloc): Pass
granules, not bytes, to GC_FAST_MALLOC_GRANS.
* include/gc.h: Never include gc_local_alloc.h.
* malloc.c: Update GC_large_allocd_bytes on explicit deallocation.
* allchblk.c: Sanity check GC_max_large_allocd_bytes.
* include/extra/gc.h, include/extra/gc_cpp.h: New.
* include/include.am: Install gc.h and gc_cpp.h in $(prefix)/include
again.
* dbg_mlc.c: Use random() on all glibc systems.
* mach_dep.c (GC_with_callee_saves_pushed): Don't use getcontext() on
HURD.  Add comment.
* pthread_stop_world.c (GC_suspend_handler, GC_stop_init): Accomodate
systems without SA_SIGINFO.
* alloc.c, backgraph.c, headers.c, include/private/gc_priv.h:
Maintain GC_our_memory and GC_n_memory.
* dbg_mlc.c (GC_print_smashed_obj): Improve message.
(GC_print_all_smashed_proc): Pass client object address instead of
base.
* dyn_load.c (sort_heap_sects): New.  (GC_register_map_entries):
Register sections that are contiguous and merged with our heap.
* malloc.c, os_dep.c (GC_text_mapping): Check for just base name
of libraries.
* malloc.c (calloc): Check for special callers even with
USE_PROC_FOR_LIBRARIES. Move assertion.  Add rudimentary
malloc/free tracing.
* misc.c: No longer call GC_init_lib_bounds explicitly.
* thread_local_alloc.c (GC_malloc, GC_malloc_atomic): Always
initialize on demand.
* alloc.c (GC_stopped_mark): Call GC_add_current_malloc_heap()
while world is still running.
* os_dep.c (GC_is_heap_base): Don't call GC_add_current_malloc_heap()
with world stopped.
* include/gc.h (GC_INIT for cygwin): Always call GC_add_roots.
* misc.c (GC_init/GC_init_inner): Perform all work in
GC_init_inner.
2008-05-21 13:47:25 +00:00
tnn
c1b459ae35 Make it work on NetBSD/sparc64. Bump PKGREVISION.
From Jaap Boender in PR pkg/38146.
2008-03-03 16:27:41 +00:00
wiz
141eb08c3d Update to 7.0:
Changes relative to 6.8 include, in no particular order:

 - Change C code to require at least C89.  Clean up code in various
   other respects.
 - Win64 port.
 - Always count how much live data there is in the heap.  Add more
   robust heap expansion heuristic which relies on this.
 - Remove old-style Solaris threads support and some other obsolete
   platform support.
 - Restructure mark code, hopefully resulting in some performance
   improvements.
 - Change the GC code to traffic mostly in either bytes or allocation
   granules, not words, internally.
 - Provide for fast inline allocation that requires less frequent client
   recompilations.  (Needs more testing.)
 - Removed SILENT configuration macro and PRINTSTATS and GATHERSTATS
   macros.  Control is now via GC_PRINT_STATS and GC_PRINT_VERBOSE_STATS
   encironment variables.
 - Thread local allocation is now performed without needing to call
   special allocation functions.  The configuration macro
   THREAD_LOCAL_ALLOC
   continues to determine whether this is supported.
 - Thread local allocation is supported on more platforms.
 - Win32 threads code was rewritten and is hopefully more sane.
 - Allocation routines now decide whether to lock dynamically, based on
   whether a second thread has been created.
 - Mostly untested support for a compiler write barrier.
 - Use libatomic_ops for atomic operations.
 - Limited support for malloc redirection with Linux threads (& NPTL ).
 - Various bug fixes and some new platform support.
2007-07-07 15:21:07 +00:00
joerg
605f49a154 DESTDIR support. 2006-11-05 17:49:33 +00:00
wiz
b625278562 Update to 6.8.
Changes since 6.7:
 - Added some support for Dragonfly BSD.  (Thanks to Joerg Sonnenberger and
   Thomas Klausner.)
 - Improvements to the HP/UX section of configure.in.
   (Thanks to Andreas Tobler.)
 - GC_unix_get_mem could neglect to release the malloc lock on Irix, under
   extremely unlikely circumstances.  Thanks to Jean-Baptiste Nivois for
   some careful code reading.
 - Added support for kFreeBSD + glibc (Thanks to Petr Salinger)
 - Fix more MacOS threads memory leaks (Thanks to Allan Hsu)
 - Added initial Solaris/X86-64 support (Thanks to Rainer Orth)
 - Applied a long-lost MINGW patch from Gerard Allan for malloc redirection
   with threads.  This one probably makes no sense for 7.0, and was not applied
   there.
 - The Solaris/SPARC definition of GC_INIT() in gc.h wasn't C++-compilable.
2006-07-17 17:08:16 +00:00
rillig
2ffd2a437d Fixed pkglint warnings. 2006-06-06 17:33:28 +00:00
heinz
5851e5bff0 Added appropriate TEST_TARGET. 2006-04-14 18:14:34 +00:00
wiz
866d8ac347 Update to 6.7:
Since 6.6:
 - Add "int" to Solaris "end" and "etext" declaration in gc.h.  Declared
   the symbols with underscores and as arrays, since that's what's actually
   used.  Perhaps this could all just be removed?  (Thanks to John Bowman.)
 - Fixed ARM GC_test_and_set code.  (Thanks to Kazu Hirata and Paul Brook.)
 - Added casts for assignments to hb_last_reclaimed, which truncate the
   value.  Added a cast to GC_adj_words_allocd.  Use GetModuleHandleA
   when retrieving a handle to kernel32.dll under win32.  (Thanks to the
   Visual Prolog developers.)
 - Added Tandem S-Series support.  (Thanks to Craig McDaniel.  A modified
   version of his patch was applied, and hence breakage is probably not
   his fault.)
 - Remove spurious gc:: qualifier for operator delete[] in gc_cpp.h.
   (Thanks to Hanno Boeck.)
 - Changed a test for LINUX in config_macros.h to one for __linux__.
 - Fix ppc 64 test_and_set code by removing it.  (Thanks to Christian
   Thalinger.)
 - Add prototypes for GC_finalizer_notifier and GC_thr_init.  (Thanks to
   David Ayers.)
 - Use ld instead of nonexistent ldz instruction in Darwin FindTopOfStack.
   (Thanks to Andreas Tobler.)
 - Add support for Darwin/X86.  (Thanks to Geoff Norton and the Mono
   developers.)
 - Merge in some recent gcc fixes.  Add ppc64 asm code.  (Thanks to Bryce
   McKinley and other gcj developers.)
 - Scan MEM_PRIVATE sections under Windows ME and predecessors.
 - Interior pointers with some largish offsets into large objects could
   be ignored, if GC_all_interior_pointers was set.  (Oddly this worked
   correctly for stack references if it was not set.  Otherwise it failed
   for both stack and heap references.)  Thanks to Andrew McKinlay for the
   critical test case.
 - Integrated Tatsuya Bizenn's NETBSD threads support, with some
   minimally tested changes.
 - Added GC_strdup and friends to make leak detection work correctly
   for strdup clients.  (Thanks to Jon Moore.)  Fixed the existing strdup
   with malloc redirection to handle a null malloc return correctly.
 - Fix Makefile.am, so it handles exe extensions under Cygwin correctly
   for gctest.
2006-03-07 02:52:40 +00:00
joerg
5911def816 Recursive revision bump / recommended bump for gettext ABI change. 2006-02-05 23:08:03 +00:00
reed
6f8d146005 Use PKGMANDIR instead of "man". 2006-01-03 22:15:22 +00:00
rillig
b71a1d488b Fixed pkglint warnings. The warnings are mostly quoting issues, for
example MAKE_ENV+=FOO=${BAR} is changed to MAKE_ENV+=FOO=${BAR:Q}. Some
other changes are outlined in

    http://mail-index.netbsd.org/tech-pkg/2005/12/02/0034.html
2005-12-05 20:49:47 +00:00
wiz
a39908ba00 Update to 6.6:
Since 6.5
 - Fix CPU count detection for Irix and FreeBSD. (Thanks to Dan Bonachea.)
 - Integrate Dan Bonachea's patch for the IBM XLC compiler on Darwin.
 - Integrated Andreas Tobler's FreeBSD/PowerPC patch.
 - Don't access the GC thread structure from the restart handler.  It's
   unsafe, since the handler may run too late.  (Thanks to Ben Maurer for
   tracking this down.)
 - Applied Christian Thalinger's patch to change comment syntax in
   alpha_mach_dep.S.
 - Added test for GC_no_dls in GC_dyld_image_add for DARWIN. (Thanks to
   Juan Jose Garcia Ripoli).
 - Use LINUX_STACKBOTTOM for Linux/SH and LINUX/ARM. (Thanks to Sugioka
   Toshinobu and Christian Thalinger.)
 - Rewrote GC_parse_map_entry.  This assumed a fixed column layout of
   /proc/self/maps on Linux.  This ceased to be true about 2 years ago.
   The old code is probably quite problemetic with -DREDIRECT_MALLOC.  It
   is also used by default for IA64, though I haven't seen actual failures
   there.
 - More consistently define HBLKSIZE to 4096 on 64 bit architectures with
   4K pages.  (Thanks to Andrew Haley.)
 - With win32 threads, GC_stop_world needs to acquire GC_write_cs.  (Thanks
   to Ben Hutchings for the observation and patch.)
 - Move up struct callinfo declaration to make gcc 4.0.2. happy.
2005-10-04 16:44:13 +00:00
wiz
e5fb8731c8 Update to 0.6.5: minor bugfixes. 2005-07-02 12:55:40 +00:00
jlam
585534220c Remove USE_GNU_TOOLS and replace with the correct USE_TOOLS definitions:
USE_GNU_TOOLS	-> USE_TOOLS
	awk		-> gawk
	m4		-> gm4
	make		-> gmake
	sed		-> gsed
	yacc		-> bison
2005-05-22 20:07:36 +00:00
jlam
2338cbae27 Change the EXTRACT_USING_PAX defined/undefined option into a EXTRACT_USING
which can take multiple values -- "pax" or "gtar".  The default value
of EXTRACT_USING is "pax", which more closely matches reality since
before, we were using bootstrap "tar" for ${GTAR} and it was actually
pax-as-tar.  Also, stop pretending pax-as-tar from the bootstrap kit
or on NetBSD is GNU tar.  Lastly, in bsd.pkg.extract.mk, note whether
we need "pax" or "gtar" depending on what we need to extract the
distfiles.
2005-05-16 03:04:44 +00:00
tv
f816d81489 Remove USE_BUILDLINK3 and NO_BUILDLINK; these are no longer used. 2005-04-11 21:44:48 +00:00
wiz
6e59114362 Update to 6.4:
- Merge gcconfig.h changes from gcc tree.
 - Unconditionally include gc_priv.h in solaris_pthreads.c, win32_threads.h,
   aix_irix_threads.c, and solaris_threads.c to get thread definitions.
 - Start marker threads in GC_thr_init, so that they get started even
   if no other threads are ever started.  (Oddly enough, the parallel
   collector worked correctly, though not well, with no helper threads.)
 - Go ahead and split large blocks in GC_allochblk_nth if GC_dont_gc
   is set.  (Thanks to Alexander Petrossian.)
 - GC_PRINT_BACK_HEIGHT would deadlock with thread support.
 - Let in_progress_space in backgraph.s grow dynamically.
 - Fix README.solaris2.  The GC_thr_init() hack doesn't work anymore.
 - Convert GC_finalizer_mem_freed to bytes in allchblk.c.
 - Add missing declaration for GC_generic_malloc_words_small_inner.
   Without it, s390x breaks.  (Thanks to Ulrich Weigand.)
 - Applied several MacOSX patches to support older tool chains.
   (Thanks to Stefan Ring.)
 - Bug fix for NetBSD/amd64.  (Thanks to Marc Recht.)  Add NetBSD/sh3
   support.  (Thanks to Uchiyama Yasushi.)
 - Fixed an uninitialized variable in cordprnt.c.  (Thanks to gcc for
   providing the warning.)
 - Eliminated some, but not all, gcc -Wall warnings.
 - Changed some old style casts to reinterpret_cast in new_gc_alloc.h.
   (Thanks to Dan Grayson.)
 - GC_extend_size_map shouldn't adjust for GC_all_interior_pointers if
   GC_DONT_ADD_BYTE_AT_END is set.
 - Changed some (long) casts to (word) in preparation for win64.
   (Thanks to Peter Colson.)
 - Changed "int stack_size" declaration in pthread_support.c to use
   size_t.  (Only mattered with GC_ASSERTIONS enabled.)
 - Added CRIS (etrax) support.  (Thanks to Simon Posnjak and
   Hans-Peter Nilsson.)
 - Removed GC_IGNORE_FB frame buffer recognition, and replaced
   it with a check that the mapping type is MEM_IMAGE.
   In theory, this should work much better, but it is a high
   risk change for win32.  (Thanks to Ashley Bone for the crucial
   experimental data behind this, and to Rutger Ovidus for
   some further experiments.)
 - Fixed print_block_list to print the correct kind number for
   STUBBORN.  (Thanks to Rutger Ovidus.)
 - GC_allochblk_nth incremented GC_words_wasted by bytes rather than
   words.
 - Consider GC_words_wasted in GC_adj_words_allocd only if it is within
   reason.  (A hack to avoid some extremely unlikely scenarios in which
   we manage to allocate only "wasted" space.  7.0 has a better fix.)
 - Changed PowerPC GC_clear implementation to use lwsync instead of
   eieio, since the documentation recommends against eieio, and
   it seems to be incorrect if the preceding memory op is a load.
 - Fixed print_block_list to print the correct kind number for
   STUBBORN.  (Thanks to Rutger Ovidus.)
 - GC_allochblk_nth incremented GC_words_wasted by bytes rather than
   words.
 - Have configure.in generate an error if it is asked to support
   pthreads, but doesn't know how to.
 - Added Kazuhiro Inaoka's patch for Renesas M32R support.
 - Have the GNU build mechanism link with -ldl.  Rename THREADLIBS
   to THREADDLLIBS to reflect this.  (Thanks to Sven Verdoolaege.)
 - Added Hannes Mehnert's patch for FreeBSD/SPARC support.
 - Merged some FreeBSD specific patches to threadlibs.c and dyn_load.c.
   (Thanks tp John Merryweather Cooper.)
 - Define MPROTECT_VDB on MACOSX only if threads are being used, since the
   dirty page tracking mechanism uses threads.  (This avoids an undefined
   reference to _GC_darwin_register_mach_handler_thread.)
 - By popular demand, use __libc symbols only if we are built with
   USE_LIBC_PRIVATES, which is off by default, and not otherwise documented.
 - Ignore GC_enable_incremental() requests when KEEP_BACK_PTRS is set.
   The GC itself will dirty lots of pages in this cases, probably making
   it counterproductive on all platforms.  And the DARWIN port crashes.
2005-02-19 21:19:50 +00:00
adam
4929432f49 Fixed Darwin build PR#26588 2004-12-06 23:00:23 +00:00
snj
c9237f59a5 Make pkglint a bit happier. 2004-11-10 19:13:10 +00:00
tv
c487cb967a Libtool fix for PR pkg/26633, and other issues. Update libtool to 1.5.10
in the process.  (More information on tech-pkg.)

Bump PKGREVISION and BUILDLINK_DEPENDS of all packages using libtool and
installing .la files.

Bump PKGREVISION (only) of all packages depending directly on the above
via a buildlink3 include.
2004-10-03 00:12:51 +00:00
recht
762ef6ce87 update boehm-gc to 6.3b1
changes:
- Add a patch provided by UCHIYAMA Yasushi in PR 26180 to support NetBSD/sh3.
- Correctly define ELFSIZE for NetBSD. Fixes PR 26252 by Kouichirou Hiratsuka.

Bump BUILDLINK_DEPNDS to 6.3nb1 for the ELFSIZE fix.
2004-07-13 14:22:27 +00:00
recht
f278361648 update to 6.3
This is mostly a bug fix release.

Selection of changes:
- most pkgsrc patches have been integrated
- amd64 support for NetBSD/OpenBSD (thanks to drochner@)
- enhanced Darwin support

For a complete list see:
http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/recent_changes
2004-07-09 00:18:54 +00:00
toshii
1feba07590 Make this buildable on NetBSD/amd64.
Changes are quite mechanical, but "gctest" appears to work...
2004-06-28 15:45:18 +00:00
hubertf
a5b6c49dd3 Fix building on m68k (tested: amiga), OK'd by Hans Boehm (hans.boehm hp com)
Bump to 6.2nb3
2004-04-03 10:26:14 +00:00
recht
47d900630b boehm-gc doesn't build on amd64/x86_64 (and thus mono's internal gc), so
add NOT_FOR_PLATFORM accordingly
2004-02-28 23:41:32 +00:00
jlam
ec993afa1a LIBTOOL_OVERRIDE and SHLIBTOOL_OVERRIDE are now lists of shell globs
relative to ${WRKSRC}.  Remove redundant LIBTOOL_OVERRIDE settings that
are automatically handled by the default setting in bsd.pkg.mk.
2004-02-14 17:21:32 +00:00
grant
f49bdea710 replace deprecated USE_GMAKE with USE_GNU_TOOLS+=make. 2004-01-22 08:24:28 +00:00
jlam
9cd2322a03 bl3ify 2004-01-05 23:20:29 +00:00
recht
c65f30767e Add a patch from Christian Limpach wrt to signal handling.
bump PKGREVISION
2003-12-03 00:14:16 +00:00
recht
44917e36b8 Use my NetBSD.org email address. 2003-09-14 18:13:48 +00:00
kei
4d96eca469 install private header files as well. an application (latest version of
lang/gauche, actually) needs them.  there are some comments in
doc/README.changes about this issue.
2003-08-17 05:01:58 +00:00
uebayasi
16eb45b413 Add a test target. One appropriate ${MAKE_PROGRAM}. 2003-06-29 06:51:45 +00:00
jmmv
5c3777d4cc Update to 6.2:
Since 6.2alpha5:
 - There was extra underscore in the name of GC_save_registers_in_stack
   for NetBSD/SPARC.  (Thanks to Jaap Boender for the patch.)
 - Integrated Brian Alliet's patch for Darwin.  This restructured the
   linuxthreads/pthreads support to separate generic pthreads support
   from more the system-dependent thread-stopping code.  I believe this
   should make it easier to eliminate the code duplication between
   pthreads platforms in the future.  The patch included some other
   code cleanups.
 - Integrated Dan Bonachea's patch to support AIX threads.  This required
   substantial manual integration, mostly due to conflicts with other
   recent threads changes.  It may take another iteration to
   get it to work.
 - Removed HPUX/PA-RISC support from aix_irix_threads.c.  It wasn't used
   anyway and it cluttered up the code.  And anything we can do to migrate
   towards generic pthreads support is a good thing.
 - Added a more explicit test for tracing of function arguments to test.c.
   (Thanks to Dan Grayson.)
 - Added Akira Tagoh's PowerPC64 patch.
 - Fixed some bit rot in the Cygwin port.  (Thanks to Dan Bonachea for
   pointing it out.)  Gc.h now includes just windows.h, not winbase.h.
 - Declared GC_save_regs_in_stack() in gc_priv.h.  Remove other declarations.
 - Changed --enable-cplusplus to use automake consitionals.  The old way
   confused libtool.  "Make install" didn't work correctly for the old version.
   Previously --enable-cplusplus was broken on cygwin.
 - Changed the C version of GC_push_regs to fail at compile time if it is
   generated with an empty body.  This seems to have been the cause of one
   or two subtle failures on unusual platforms.  Those failures should
   now occur at build time and be easily fixable.

Since 6.2alpha6:
 - Integrated a second round of Irix/AIX patches from Dan Bonachea.
   Renamed mips_sgi_mach_dep.S back to mips_sgi_mach_dep.s, since it requires
   the Irix assembler to do the C preprocessing; gcc -E doesn't work.
 - Fixed Makefile.direct for DARWIN.  (Thanks to Manuel Serrano.)
 - There was a race between GC_pthread_detach and thread exit that could
   result in a thread structure being deallocated by GC_pthread_detach
   eventhough it was still needed by the thread exit code.  (Thanks to
   Dick Porter for the small test case that allowed this to be debugged.)
 - Fixed version parsing for non-alpha versions in acinclude.m4 and
   version checking in version.h.
2003-06-27 10:49:42 +00:00
jmmv
466195406a Update to 6.2alpha5:
- GC_invoke_finalizers could, under rare conditions, set
   GC_finalizer_mem_freed to an essentially random value.  This could
   possibly cause unbounded heap growth for long-running applications
   under some conditions.  (The bug was introduced in 6.1alpha5, and
   is not in gcc3.3.  Thanks to Ben Hutchings for finding it.)
 - Attempted to sanitize the various DLL macros.  GC_USE_DLL disappeared.
   GC_DLL is used instead.  All internal tests are now on GC_DLL.
   README.macros is now more precise about the intended meaning.
 - Include DllMain in the multithreaded win32 version only if the
   collector is actually built as a dll.  (Thanks to Mohan Embar for
   a version of the patch.)
 - Hide the cygwin threadAttach/Detach functions.  They were violating our
   namespace rules.
 - Fixed an assertion in GC_check_heap_proc.  Added GC_STATIC_ASSERT.
   (Thanks again to Ben Hutchings.)
 - Removed some obsolete definitions for Linux/PowerPC in gcconfig.h.
 - CORD_cat was not rebalancing unbalanced trees in some cases, violating
   a CORD invariant.  Also tweaked the rebalancing rule for
   CORD_cat_char_star.  (Thanks to Alexandr Petrosian for the bug report
   and patch.)
 - Added hand-coded structured exception handling support to mark.c.
   This should enable support of dynamic libraries under win32 with
   gcc-compiled code.  (Thanks to Ranjit Mathew for the patch.)
   Turned on dynamic library scanning for win32/gcc.
 - Removed some remnants of read wrapping.  (Thanks to Kenneth Schalk.)
   GC_USE_LD_WRAP ws probably broken in recent versions.
 - The build could fail on some platforms since gcconfig.h could include
   declarations mentioning ptr_t, which was not defined, e.g. when if_mach
   was built.  (Thanks to Yann Dirson for pointing this out.)  Also
   cleaned up tests for GC_PRIVATE_H in gcconfig.h a bit.
 - The GC_LOOP_ON_ABORT environment variable interfered with incremental
   collection, since the write fault handler was erroneously overridden.
   Handlers are now set up in the correct order.
 - It used to be possible to call GC_mark_thread_local_free_lists() while
   the world was not stopped during an incremental GC.  This was not safe.
   Fortunately, it was also unnecessary.  Added GC_world_stopped flag
   to avoid it.  (This caused occasional crashes in GC_set_fl_marks
   with thread local allocation and incremental GC.  This probably happened
   primarily on old, slow multiprocessors.)
 - Allowed overriding of MAX_THREADS in win32_threads.c from the build
   command line.  (Patch from Yannis Bres.)
 - Taught the IA64/linux code to determine the register backing store base from
   /proc/self/maps after checking the __libc symbol, but before guessing.
   (__libc symbols are on the endangered list, and the guess is likely to not
   always be right for 2.6 kernels.)  Restructured the code to read and parse
   /proc/self/maps so it only exists in one place (all platforms).
 - The -DUSE_PROC_FOR_LIBRARIES code was broken on Linux.  It claimed that it
   also registered the main data segment, but didn't actually do so.  (I don't
   think anyone actually uses this configuration, but ...)
 - Made another attempt to get --enablecplusplus to do the right thing.
   Since there are unavoidable problems with C programs linking against a
   dynamic library that includes C++ code, I separated out the c++ code into
   libgccpp.

Based on patch provided in PR pkg/21569 by Marc Recht.
2003-05-22 16:46:48 +00:00
jmmv
1a1fbdeba7 Package tools support the "alpha" suffix properly to compare versions, so
set boehm-gc's version to 6.2alpha4 instead of 6.1.994.  Thanks, agc@.
2003-05-09 14:17:46 +00:00
jmmv
ef2fc0f967 Update to 6.2alpha4. The package version is set to 6.1.994 so that future
version checking will be correct when 6.2 final is out.

Changes since 6.1:
 - Guard the test for GC_DUMP_REGULARLY in misc.c with
   "#ifndef NO_DEBUGGING".  Otherwise it fails to build with NO_DEBUGGING
   defined.  (Thanks to Manuel Serrano.)
 - Message about retrying suspend signals was incorrectly generated even when
   flag was not set.
 - Cleaned up MACOSX/NEXT root registration code.  There was apparently a
   separate ifdef case in GC_register_data_segments() for no reason.
 - Removed MPROTECT_VDB for MACOSX port, based on one negative report.
 - Arrange for gc.h and friends to be correctly installed with GNU-style
   "make install".
 - Enable the GNU-style build facility include C++ support in the library
   with --enable-cplusplus. (Thanks to Thomas Maier for some of the patch.)
 - Mark from GC_thread_key in linux_threads.c, in case that's allocated
   from the garbage collected heap, as it is with our own thread-specific
   storage implementation.  (Thanks to Jeff Sturm.)
 - Mark all free list header blocks if they are heap allocated.  This avoids
   some unnecessary tracing.  And it remains correct if we clear the
   root set. (Thanks to Jeff Sturm for identifying the bug.)
 - Improved S390/Linux support.  Add S390/Linux 64-bit support.  (Thanks
   to Ulrich Weigand.)
 - Corrected the spelling of GC_{M,C}ALLOC_EXPLICTLY_TYPED to
   GC_{M,C}ALLOC_EXPLICITLY_TYPED in gc_typed.h.  This is technically
   an interface change.  Based on the fact that nobody reported this,
   I suspect/hope there were no clients.
 - Cleaned up gc_typed.h so that (1) it adds an extern "C" declaration
   when appropriate, (2) doesn't generate references to undefined internal
   macros, and (3) allows easier manual construction of descriptors.
 - Close the file descriptor used by GC_print_address_map().
 - Set the "close-on-exec" bit for various file descriptors maintained
   for the collector's internal use.
 - Added a hack to find memory segments owned by the system allocator
   under win32.  Based on my tests, this tends to eventually find all
   segments, though it may take a while.  There appear to be cleaner,
   but slower solutions under NT/XP.  But they rely on an API that's
   unsupported under 9X.
 - Changed Linux PowerPC stack finding to LINUX_STACKBOTTOM.  (Thanks
   to Akira Tagoh for pointing out that HEURISTIC1 doesn't work on
   64-bit kernels.)
 - Added GC_set_free_space_divisor to avoid some Windows dll issues.
 - Added FIXUP_POINTER, POINTER_SHIFT, POINTER_MASK to allow preprocessing
   of candidate pointers for tagging, etc.
 - Always lock around GC_notify_full_gc().  Simplified code for
   invoking GC_notify_full_gc().
 - Changed the way DATASTART is defined on FreeBSD to be robust against
   an unmapped page after etext.  (Thanks to Hironori Sakamoto for
   tracking down the intermittent failure.)
 - Made GC_enable() and GC_disable() official.  Deprecated direct update
   of GC_dont_gc.  Changed GC_gcollect to be a noop when garbage collection
   is disabled.
 - Call GC_register_dynamic_libraries before stopping the world on Linux,
   in order to avoid a potential deadlock due to the dl_iterate_phdr lock.
 - Introduced a more general mechanism for platform-dependent code to
   decide whether the main data segment should be handled separately
   from dynamic libraries, or registered by GC_register_dynamic_libraries.
   The latter is more reliable and easier on Linux with dl_iterate_phdr.

Changes since 6.2alpha1:
 - Fixed the completely broken FreeBSD code in 6.2alpha1.  (Thanks to
   Hironori Sakamoto for the patch.)
 - Changed IRIX reference in dbg_mlc.c to IRIX5. (Thanks to Marcus Herbert.)
 - Attempted to work around the problems with .S filenames and the SGI
   compiler.  (Reported by several people. Untested.)
 - Worked around an HP/UX make issue with the GNU-style build process.
 - Fixed the --enable-cplusplus build machinery to allow builds without
   a C++ compiler.  (That was always the intent ...)
 - Changed the debugging allocation macros to explicitly pass the return
   address for Linux and XXXBSD on hardware for which we can't get stack
   traces.  Use __builtin_return_address(0) to generate it when possible.
   Some of the configuration work was cleaned up (good) and moved to gc.h
   (bad, but necessary).  This should make leak detection more useful
   on a number of platforms.  (Thanks to Fabian Thylman for the suggestion.)
 - Fixed compilation problems in dbg_mlc.c with GC_ADD_CALLER.
 - Bumped revision number for dynamic library.

Changes since 6.2alpha2:
 - Don't include execinfo.h in os_dep.c when it's not needed, and may not exist.

Changes since 6.2alpha3:
 - Use LINUX_STACKBOTTOM for >= glibc2.2 on Linux/MIPS.  (See Debian bug
   # 177204)
 - Integrated Jeff Sturm and Jesse Rosenstock's MACOSX threads patches.
 - Integrated Grzegorz Jakacki's substantial GNU build patch.  "Make dist"
   should now work for the GNU build process.  Documentation files
   are installed under share/gc.
 - Tweaked gc_cpp.h to again support the Borland compiler.  (Thanks to
   Rene Girard for pointing out the problems.)
 - Updated BCC_MAKEFILE (thanks to Rene Girard).
 - Added GC_ASSERT check for minimum thread stack size.
 - Added --enable-gc-assertions.
 - Added some web documentation to the distribution.  Updated it in the
   process.
 - Separate gc_conf_macros.h from gc.h.
 - Added generic GC_THREADS client-defined macro to set the appropriate
   GC_XXX_THREADS internal macro.  (gc_config_macros.h.)
 - Add debugging versions of _ignore_off_page allocation primitves.
 - Moved declarations of GC_make_closure and GC_debug_invoke_finalizer
   from gc.h to gc_priv.h.
 - Reset GC_fail_count even if only a small allocation succeeds.
 - Integrated Brian Alliet's patch for dynamic library support on Darwin.
 - gc_cpp.h's gc_cleanup destructor called GC_REGISTER_FINALIZER_IGNORE_SELF
   when it should have called the lower case version, since it was
   explicitly computing a base pointer.
2003-05-09 12:53:26 +00:00
kei
9506ea7bd2 added m68k ELF support to boehm-gc. stolen from the diff for sparc.
bump PKGREVISION to 2.
2003-02-17 12:32:04 +00:00
wiz
c5ade8fb8a Update to 6.1nb1, from Marc Recht in PR 20008: Install shared libs. 2003-02-14 18:50:50 +00:00
wiz
1256280570 Update to 6.1, provided by Julio Merino in PR 18240.
Changes: lots of bugfixes and improvements.
2002-09-25 18:18:51 +00:00
jlam
e2afa97f51 Merge changes in packages from the buildlink2 branch that have
buildlink2.mk files back into the main trunk.  This provides sufficient
buildlink2 infrastructure to start merging other packages from the
buildlink2 branch that have already been converted to use the buildlink2
framework.
2002-08-25 18:38:05 +00:00
jlam
afdd4d67e1 Trivially mark as USE_BUILDLINK_ONLY. 2001-11-19 20:11:00 +00:00
kei
3573eb268b updated to boehm-gc 6.0 (gc6.0) which incorporated most of our patch.
On i386 aout/ELF, saprc ELF and macppc, 'cd ${WRKSRC}; make test' got
success and www/w3m package which depends on this runs.
2001-09-08 00:36:09 +00:00
jlam
db2bbbf859 Deal with "unix no longer predefined" warning. Modify Makefile so we don't
need to pass in various variables through MAKE_ENV, and honor CFLAGS
passed in from environment during build.
2001-05-04 01:28:14 +00:00
wiz
94dc65fbec Update to new COMMENT style: COMMENT var in Makefile instead of pkg/COMMENT. 2001-02-16 14:38:16 +00:00
abs
c29e3b957d Update to 5.3. Minimally tested with w3m on i386, sparc, and arm32.
Changelog:

Since 5.0alpha7:
 - Fixed threadlibs.c for linux threads.  -DUSE_LD_WRAP was broken and
   -ldl was omitted.  Fixed Linux stack finding code to handle
   -DUSE_LD_WRAP correctly.
 - Added MSWIN32 exception handler around marker, so that the collector
   can recover from root segments that are unmapped during the collection.
   This caused occasional failures under Windows 98, and may also be
   an issue under Windows NT/2000.

Since 5.0
 - Fixed a gc.h header bug which showed up under Irix.  (Thanks to
   Dan Sullivan.)
 - Fixed a typo in GC_double_descr in typd_mlc.c not getting traced correctly.
   This probably could result in objects described by array descriptors not
   getting traced correctly.  (Thanks to Ben Hutchings for pointing this out.)
 - The block nearly full tests in reclaim.c were not correct for 64 bit
   environments.  This could result in unnecessary heap growth under unlikely
   conditions.
 - Removed use of CLEAR_DOUBLE from generic reclaim code, since odd sizes
   could occur.

Since 5.1
 - dyn_load.c declared GC_scratch_last_end_ptr as an extern even if it
   was defined as a macro.  This prevented the collector from building on
   Irix.
 - We quietly assumed that indirect mark descriptors were never 0.
   Our own typed allocation interface violated that.  This could result
   in segmentation faults in the marker with typed allocation.
 - Fixed a _DUSE_MUNMAP bug in the heap block allocation code.
   (Thanks to Ben Hutchings for the patch.)
 - Taught the collector about VC++ handling array operator new.
   (Thanks again to Ben Hutchings for the patch.)
 - The two copies of gc_hdrs.h had diverged.  Made one a link to the other
   again.

Since 5.2
 - Fixed _end declaration for OSF1.
 - There were lots of spurious leak reports in leak detection mode, caused
   by the fact that some pages were not being swept, and hence unmarked
   objects weren't making it onto free lists.  (This bug dated back to 5.0.)
 - Fixed a typo in the liblinuxgc.so Makefile rule.
 - Added the GetExitCodeThread to Win32 GC_stop_world to (mostly) work
   around a Windows 95 GetOpenFileName problem.  (Thanks to Jacob Navia.)
2000-11-16 11:16:02 +00:00