Skip to content

Commit

Permalink
Merge pull request #224 from qykth-git/gc7.6.0-subtree
Browse files Browse the repository at this point in the history
Update to "bdwgc" 7.6.0
  • Loading branch information
shirok committed Aug 12, 2016
2 parents 4c5eb26 + b45c64b commit 1ac52f4
Show file tree
Hide file tree
Showing 74 changed files with 4,794 additions and 2,271 deletions.
22 changes: 20 additions & 2 deletions gc/AUTHORS
Expand Up @@ -21,11 +21,14 @@ Other contributors (my apologies for any omissions):
Adam Megacz <adam@megac.com>
Adnan Ali
Adrian Bunk <bunk@fs.tum.de>
Adrian Pop <adrian.pop@liu.se>
Akira Tagoh <tagoh@redhat.com>
Alain Novak <alain.novak@hermes.si>
Alan Dosser <dosser@src.dec.com>
Alan J. Demers <ademers@cs.cornell.edu>
Aleksey Demakov <ademakov@gmail.com>
Alessandro Bruni <alessandro.bruni@gmail.com>
Alex Ronne Petersen <alexrp@xamarin.com>
Alexander Belchenko <bialix@ukr.net>
Alexander Gavrilov <angavrilov@gmail.com>
Alexander Herz <alexander.herz@mytum.de>
Expand Down Expand Up @@ -87,6 +90,7 @@ Charles Fiterman <cef@geode.geodesic.com>
Charles Mills <boson@cyberspace.org>
Chris Dodd <chrisd@reservoir.com>
Chris Lingard <chris@highludworth.freeserve.co.uk>
Chris Metcalf <cmetcalf@mellanox.com>
Christian Joensson <christian.joensson@gmail.com>
Christian Limpach <chris@pin.lu>
Christian Thalinger <twisti@complang.tuwien.ac.at>
Expand Down Expand Up @@ -117,6 +121,7 @@ David Mossberger
David Peroutka <djp@volny.cz>
David Pickens <dsp@rci.rutgers.edu>
David Stes <stes@d5e02b1d.kabel.telenet.be>
David Terei <d@davidterei.com>
David Van Horn <dvanhorn@ccs.neu.edu>
Davide Angelocola <davide.angelocola@tiscali.it>
Dick Porter <dick@acm.org>
Expand All @@ -139,6 +144,7 @@ Franklin Chen <chen@adi.com>
Fred Gilham <gilham@csl.sri.com>
Fred Stearns
Friedrich Dominicus <friedrichdominicus@googlemail.com>
Gabor Drescher <gabor.drescher@cs.fau.de>
Gary Leavens <leavens@eecs.ucf.edu>
Geoff Norton <grompf@sublimeintervention.com>
George Talbot <Gtalbot@ansarisbio.com>
Expand All @@ -155,6 +161,7 @@ Henning Makholm <Henning@octoshape.com>
Henrik Theiling <theiling@absint.com>
Hironori Sakamoto <hsaka@mth.biglobe.ne.jp>
Hiroshi Kawashima <kei@arch.sony.co.jp>
Hiroshi Yokota <yokota@netlab.cs.tsukuba.ac.jp>
Hubert Garavel <Hubert.Garavel@imag.fr>
Iain Sandoe <developer@sandoe-acoustics.co.uk>
Ian Piumarta <piumarta@prof.inria.fr>
Expand Down Expand Up @@ -186,6 +193,7 @@ Ji-Yong Chung
Jie Liu <lj8175@gmail.com>
Jim Marshall <jim.marshall@wbemsolutions.com>
Jim Meyering <jim@meyering.net>
Joao Abecasis <joao@abecasis.name>
Joerg Sonnenberger <joerg@britannica.bec.de>
Johannes Schmidt <jschmidt@avtrex.com>
Johannes Totz <jtotz@ic.ac.uk>
Expand All @@ -195,19 +203,21 @@ John Ellis <ellis@xerox.parc.com>
John Merryweather Cooper <jmerry@mono-cvs.ximian.com>
Jon Moore <jonm@apache.org>
Jonathan Bachrach <jonathan@harlequin.com>
Jonathan Chambers <jonathan@unity3d.com>
Jonathan Clark
Jonathan Pryor <jpryor@novell.com>
Juan Jose Garcia-Ripoll <juanjose.garciaripoll@googlemail.com>
Kai Tietz <ktietz70@googlemail.com>
Kaz Kojima <kkojima@rr.iij4u.or.jp>
Kazu Hirata <kazu@codesourcery.com>
Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
Keith Seitz <keiths@redhat.com>
Kenjiro Taura <tau@eidos.ic.i.u-tokyo.ac.jp>
Kenneth Schalk <schalk@cadtls.hlo.dec.com>
Kevin Kenny <kenny@m.cs.uiuc.edu>
Kevin Tew <tewk@racket-lang.org>
Kevin Warne <kevinw@direct.ca>
Kjetil S. Matheussen <ksvalast@ifi.uio.no>
Kjetil Matheussen <k.s.matheussen@notam02.no>
Klaus Treichel <ktreichel@web.de>
Knut Tvedten <knuttv@ifi.uio.no>
Krister Walfridsson <cato@df.lth.se>
Expand All @@ -219,13 +229,16 @@ Laurent Morichetti <l_m@pacbell.net>
Linas Vepstas <linasvepstas@gmail.com>
Loren J. Rittle <rittle@latour.labs.mot.com>
Louis Zhuang <louis.zhuang@acm.org>
Lucas Meijer <lucas@unity3d.com>
Ludovic Courtes <ludo@gnu.org>
Maarten Thibaut <mthibaut@cisco.com>
Manuel A. Fernandez Montecelo <manuel.montezelo@gmail.com>
Manuel Serrano <serrano@cornas.inria.fr>
Marc Recht <recht@netbsd.org>
Marco Maggi <marco.maggi-ipsu@poste.it>
Marcos Dione <Marcos_David.Dione@sophia.inria.fr>
Marcus Herbert
Marek Vasut <marex@denx.de>
Margaret Fleck <mfleck@illinois.edu>
Mark Boulter <mboulter@vnet.ibm.com>
Mark Mitchell <mark@codesourcery.com>
Expand All @@ -241,10 +254,12 @@ Matthias Drochner <M.Drochner@fz-juelich.de>
Maurizio Vairani <maurizio.vairani@cloverinformatica.it>
Melissa O'Neill <oneill@cs.sfu.ca>
Michael Arnoldus <chime@proinf.dk>
Michael Fox <mfox@cavium.com>
Michael Smith <msmith@spinnakernet.com>
Michael Spertus <mps@geodesic.com>
Michel Schinz <schinz@alphanet.ch>
Miguel de Icaza <miguel@gnome.org>
Mike Frysinger <vapier@gentoo.org>
Mike Gran <spk121@yahoo.com>
Mike McGaughey <mmcg@cs.monash.edu.au>
Mike Stump <mrs@windriver.com>
Expand All @@ -265,6 +280,7 @@ Parag Patel <parag@netcom.com>
Patrick Bridges <bridges@cs.arizona.edu>
Patrick C. Beard <beard@netscape.com>
Patrick Doyle <doylep@eecg.toronto.edu>
Paul Bone <paul@bone.id.au>
Paul Brook <paul@codesourcery.com>
Paul Graham
Paul Nash <paulnash@wildseed.com>
Expand All @@ -276,7 +292,7 @@ Peter Housel <housel@acm.org>
Peter Monks <pmonks@iname.com>
Peter Ross <pro@missioncriticalit.com>
Peter Seebach <seebs@taniemarie.solon.com>
Peter Wang <wangp@students.cs.mu.oz.au>
Peter Wang <novalazy@gmail.com>
Petr Krajca <krajcap@inf.upol.cz>
Petr Salinger <Petr.Salinger@seznam.cz>
Petter Urkedal <paurkedal@gmail.com>
Expand All @@ -302,6 +318,7 @@ Richard Henderson <rth@redhat.com>
Richard Sandiford <rsandifo@nildram.co.uk>
Rob Haack <rhaack@polaris.unm.edu>
Robert Brazile <brazile@diamond.bbn.com>
Rodrigo Kumpera <kumpera@gmail.com>
Roger Sayle <roger@eyesopen.com>
Roland McGrath <roland@redhat.com>
Roman Hodek <Roman.Hodek@informatik.uni-erlangen.de>
Expand Down Expand Up @@ -329,6 +346,7 @@ Terrell Russell <terrellrussell@gmail.com>
Thiemo Seufer <ths@networkno.de>
Thomas Funke <thf@zelator.in-berlin.de>
Thomas Klausner <tk@giga.or.at>
Thomas Linder Puls <thomas_linder_puls@hotmail.com>
Thomas Maier <Thomas.Maier@uni-kassel.de>
Thomas Schwinge <thomas@codesourcery.com>
Thorsten Glaser <tg@debian.org>
Expand Down
1 change: 1 addition & 0 deletions gc/CMakeLists.txt
Expand Up @@ -203,6 +203,7 @@ ENDIF(CMAKE_USE_WIN32_THREADS_INIT)
OPTION(enable_gcj_support "Support for gcj" NO)
IF(enable_gcj_support)
ADD_DEFINITIONS("-DGC_GCJ_SUPPORT")
ADD_DEFINITIONS("-DGC_ENABLE_SUSPEND_THREAD")
ENDIF(enable_gcj_support)


Expand Down
110 changes: 110 additions & 0 deletions gc/ChangeLog
@@ -1,4 +1,114 @@

== [7.6.0] 2016-08-02 ==

* ABORT_ARGn log details at INFO level (Android).
* Add 'pragma message' to gc.h to detect inconsistent WIN64/_WIN64 (MS VC).
* Add API function to calculate total memory in use by all GC blocks.
* Add API function to set/modify GC log file descriptor (Unix).
* Add alloc_size attribute to GC_generic_malloc.
* Add alt-stack registration support.
* Add assertion for GC_new_kind boolean arguments.
* Add assertion on lock status to GC_alloc_large and its callers.
* Add build scripts for VC 9 (Win32/64)
* Add build system plumbing for building with -Werror.
* Add incremental GC support for Darwin/arm64
* Add profiling callback events to indicate start/end of reclaim phase.
* Add support for enumerating the reachable objects in the heap.
* Add toggle-ref support (following Mono GC API).
* Added instructions to README.md for building from git.
* Adjust code indentation of malloc/calloc/str[n]dup.
* Allow fork() automatic handling on Android with API level 21+.
* Allow specific TLS attributes for GC_thread_key.
* Allow thread local allocations from within pthread TLS destructors.
* Allow to force GC_dump_regularly set on at compilation.
* Altera NIOS2 support.
* Change 'cord' no-argument functions declaration style to ANSI C.
* Check DATASTART is less than DATAEND even assertions off.
* Check for execinfo.h by configure.
* Code refactoring of GC_push_finalizer/thread/typed_structures.
* Code refactoring regarding 'data start' definition for FreeBSD.
* Consistently set type of DATASTART/END to ptr_t (code refactoring).
* Consistently use int[] type for '_end' symbol (code refactoring).
* Consistently use outermost parentheses for DATASTART/END, STACKBOTTOM.
* Define GC_LINUX_THREADS, NO_EXECUTE_PERMISSION in configure for NaCl.
* Define ROUNDUP_PAGESIZE, ROUNDUP_GRANULE_SIZE macros (code refactoring).
* Define public GC_GENERIC_OR_SPECIAL_MALLOC and GC_get_kind_and_size.
* Do no declare kernel_id field of GC_Thread_Rep for 64-bit Android.
* Do not allow SHORT_DBG_HDRS if KEEP_BACK_PTRS or MAKE_BACK_GRAPH.
* Do not warn of missing PT_GNU_RELRO segment when custom DSO filter used.
* Document GC_register_my_thread returned value.
* Dump the block information in CSV format.
* Eliminate redundant *flh check for null in GC_allocobj.
* Enable atomic-uncollectable in operator new in gc_cpp.h.
* Enable build with musl libc.
* Enable gc.h inclusion by client without implicit include windows.h (Win32).
* Enable huge_test for Win64 (and LLP64 target).
* Enable thread-local storage for Android Clang.
* Enable thread-local storage usage for GC_malloc/calloc_explicitly_typed.
* Export GC_push_all_eager, GC_push_finalizer_structures.
* Fix 'arg parameter might be clobbered by setjmp' compiler warning.
* Fix assertion in GC_mark_from for non-heap regions.
* Fix compilation for Android clang/arm with bfd linker.
* Fix integer shift undefined behavior in GC_init_explicit_typing.
* Fix missing new-line and redundant trailing dot in WARN messages.
* Fix STACKBOTTOM for Solaris 11/x86.
* Fix tag collision between ENABLE_DISCLAIM and KEEP_BACK_PTRS.
* Fix unchecked fork() result in gctest (Unix, Cygwin).
* Fix user-defined signals drop by marker threads.
* Fix various typos in comments and documentation.
* FreeBSD/arm support improvement.
* GC_make_descriptor code refactoring (eliminate two local variables).
* GC_malloc[_atomic] global and thread-local generalization with kind.
* GC_malloc_[atomic_]uncollectable generalization.
* GC_scratch_alloc code refactoring (and WARN message improvement).
* Group all compact fields of GC_arrays to fit in single page.
* Handle load_segs overflow in register_dynlib_callback gracefully.
* Harmonize OSX/iOS configuration; enable compiling for iPhone simulator.
* Implement event callbacks for profiling (following Mono GC API).
* Implement the finalization extension API.
* Implement thread suspend/resume API (Linux threads only).
* Improve documentation for disappearing links in gc.h.
* Make heap growth more conservative after GC_gcollect_and_unmap call.
* Mark fo_head, finalize_now with a single GC_push_all call (refactoring).
* Move MessageBox invocation code from GC_abort to a separate routine (Win32).
* NaCl/arm initial support; NaCl runtime fixes for other CPUs.
* New macro (GC_ALWAYS_MULTITHREADED) to set multi-threaded mode implicitly.
* New macro (NO_WINMAIN_ENTRY) to prefer main() instead of WinMain in test.
* New macro (REDIRECT_MALLOC_IN_HEADER) to enable source-level redirection.
* Process all PT_LOAD segments before PT_GNU_RELRO segments (Glibc).
* Re-implement GC_finalized_malloc using GC_malloc_kind.
* Refactoring of android_thread_kill/pthread_kill calls.
* Refactoring of GC_Xobjfreelist (use single array to keep free lists).
* Refactoring of thread-local *_freelists (use single array of free lists).
* Refine description in README how to build from source repository.
* Refine GC_free_space_divisor comment regarding its initial value.
* Reformat code of gc_cpp.cc/h.
* Remove 'opp' local variable in GC_malloc_X.
* Remove 'sig' argument of GC_suspend_handler_inner (code refactoring).
* Remove code commented out by 'ifdef UNDEFINED'.
* Remove hb_large_block field (use 1 extra bit of hb_flags instead).
* Remove obsolete BACKING_STORE_ALIGNMENT/DISPLACEMENT macros for Linux/IA64.
* Remove redundant casts in GC_generic_or_special_malloc and similar.
* Remove unsupported FreeBSD/ia64 case from gcconfig.h file.
* Remove unused GC_gcjdebugobjfreelist.
* Rename ATOMIC_UNCOLLECTABLE to GC_ATOMIC_UNCOLLECTABLE.
* Replace non-API occurrences of GC_word to word (code refactoring).
* Return GC_UNIMPLEMENTED instead of abort in GC_get_stack_base (OS/2).
* Show WoW64 warning message if running 32-bit on Win64 (enabled by macro).
* Standalone profiling callback for threads suspend/resume.
* Support (add machine description for) TILE-Gx and TILEPro targets.
* Support build for Android 64-bit (arm64, mips64, x86_64).
* Support FreeBSD/aarch64, FreeBSD/mips.
* Support iOS7 64-bit (AArch64) and iOS8+ 32/64-bit (Darwin).
* Support MinGW build in scripts.
* Turn off sigsetjmp workaround for Android/x86 starting from NDK r8e.
* Use magic header on objects to improve disclaim_test.
* Workaround 'sa_sigaction member missing' compiler error (Android/x32).
* Workaround 'unresolved __tls_get_addr' error for Android NDK Clang.
* Workaround a bug in winpthreads causing parallel marks deadlock (MinGW).
Also, includes 7.4.4 changes.


== [7.4.4] 2016-05-25 ==

* Allow GC_FAST_MALLOC_GRANS() multiple use in a function.
Expand Down
33 changes: 12 additions & 21 deletions gc/EMX_MAKEFILE
Expand Up @@ -4,8 +4,6 @@
# You need GNU Make 3.71, gcc 2.5.7, emx 0.8h and GNU fileutils 3.9
# or similar tools. C++ interface and de.exe weren't tested.
#
# Rename this file "Makefile".
#

# Primary targets:
# gc.a - builds basic library
Expand All @@ -18,10 +16,11 @@ CC= gcc
CXX=g++
# Needed only for "make c++", which adds the c++ interface

CFLAGS= -O -DALL_INTERIOR_POINTERS
CFLAGS= -O -DALL_INTERIOR_POINTERS -I$(srcdir)/include
# Setjmp_test may yield overly optimistic results when compiled
# without optimization.

CXXFLAGS= $(CFLAGS)
AR= ar
RANLIB= ar s

Expand All @@ -34,26 +33,22 @@ OBJS= alloc.o reclaim.o allchblk.o misc.o mach_dep.o os_dep.o mark_rts.o headers

CORD_OBJS= cord/cordbscs.o cord/cordxtra.o cord/cordprnt.o

CORD_INCLUDE_FILES= $(srcdir)/gc.h $(srcdir)/cord/cord.h $(srcdir)/cord/ec.h \
$(srcdir)/cord/cord_pos.h
CORD_INCLUDE_FILES= $(srcdir)/include/gc.h $(srcdir)/include/cord.h \
$(srcdir)/include/ec.h $(srcdir)/include/cord_pos.h

# Libraries needed for curses applications. Only needed for de.
CURSES= -lcurses -ltermlib

# The following is irrelevant on most systems. But a few
# versions of make otherwise fork the shell specified in
# the SHELL environment variable.
SHELL= bash

SPECIALCFLAGS =
SPECIALCFLAGS = -I$(srcdir)/include
# Alternative flags to the C compiler for mach_dep.c.
# Mach_dep.c often doesn't like optimization, and it's
# not time-critical anyway.

all: gc.a gctest.exe

$(OBJS) test.o: $(srcdir)/gc_priv.h $(srcdir)/gc_hdrs.h $(srcdir)/gc.h \
$(srcdir)/gcconfig.h $(srcdir)/gc_typed.h
$(OBJS) test.o: $(srcdir)/include/private/gc_priv.h \
$(srcdir)/include/private/gc_hdrs.h $(srcdir)/include/gc.h \
$(srcdir)/include/private/gcconfig.h $(srcdir)/include/gc_typed.h
# The dependency on Makefile is needed. Changing
# options affects the size of GC_arrays,
# invalidating all .o files that rely on gc_priv.h
Expand All @@ -67,17 +62,13 @@ gc.a: $(OBJS)
cords: $(CORD_OBJS) cord/cordtest.exe
$(AR) ru gc.a $(CORD_OBJS)
$(RANLIB) gc.a
cp $(srcdir)/cord/cord.h include/cord.h
cp $(srcdir)/cord/ec.h include/ec.h
cp $(srcdir)/cord/cord_pos.h include/cord_pos.h

gc_cpp.o: $(srcdir)/gc_cpp.cc $(srcdir)/gc_cpp.h
$(CXX) -c -O $(srcdir)/gc_cpp.cc
gc_cpp.o: $(srcdir)/gc_cpp.cc $(srcdir)/include/gc_cpp.h
$(CXX) -c $(CXXFLAGS) $(srcdir)/gc_cpp.cc

c++: gc_cpp.o $(srcdir)/gc_cpp.h
c++: gc_cpp.o $(srcdir)/include/gc_cpp.h
$(AR) ru gc.a gc_cpp.o
$(RANLIB) gc.a
cp $(srcdir)/gc_cpp.h include/gc_cpp.h

mach_dep.o: $(srcdir)/mach_dep.c
$(CC) -o mach_dep.o -c $(SPECIALCFLAGS) $(srcdir)/mach_dep.c
Expand Down Expand Up @@ -112,7 +103,7 @@ gctest.exe: tests/test.o gc.a
# If an optimized setjmp_test generates a segmentation fault,
# odds are your compiler is broken. Gctest may still work.
# Try compiling setjmp_t.c unoptimized.
setjmp_test.exe: $(srcdir)/tools/setjmp_t.c $(srcdir)/gc.h
setjmp_test.exe: $(srcdir)/tools/setjmp_t.c $(srcdir)/include/gc.h
$(CC) $(CFLAGS) -o setjmp_test.exe $(srcdir)/tools/setjmp_t.c

test: setjmp_test.exe gctest.exe
Expand Down
5 changes: 2 additions & 3 deletions gc/Makefile.am
Expand Up @@ -126,7 +126,7 @@ EXTRA_DIST += gc_cpp.cpp
# ----

AM_CXXFLAGS = @GC_CFLAGS@
AM_CFLAGS = @GC_CFLAGS@
AM_CFLAGS = $(WERROR_CFLAGS) @GC_CFLAGS@

## FIXME: relies on internal code generated by automake.
## FIXME: ./configure --enable-dependency-tracking should be used
Expand Down Expand Up @@ -171,8 +171,7 @@ EXTRA_DIST += README.QUICK
# :GOTCHA: deliberately we do not include 'Makefile'
EXTRA_DIST += BCC_MAKEFILE NT_MAKEFILE \
OS2_MAKEFILE PCR-Makefile digimars.mak EMX_MAKEFILE \
Makefile.direct Makefile.dj SMakefile.amiga \
WCC_MAKEFILE autogen.sh build_atomic_ops.sh build_atomic_ops.sh.cygwin \
Makefile.direct SMakefile.amiga WCC_MAKEFILE autogen.sh \
NT_STATIC_THREADS_MAKEFILE NT_X64_STATIC_THREADS_MAKEFILE \
NT_X64_THREADS_MAKEFILE CMakeLists.txt tests/CMakeLists.txt

Expand Down

0 comments on commit 1ac52f4

Please sign in to comment.