Commit 736f50b8 authored by Marius Gerbershagen's avatar Marius Gerbershagen

bdwgc: Update library to version 7.6.8.

    libatomic_ops is updated accordingly to version 7.6.6.
    Fixes build failures on android.
parent 089d3026
......@@ -51,6 +51,7 @@
passed empty environment is used
- compiler: when gcc fails ecl prints the failing command output
- ASDF has been updated to 3.1.8.8
- The Boehm-Demers-Weiser garbage collector has been updated to version 7.6.8
- package local nicknames has been implemented (after SBCL)
- hash table extensions are documented in newdoc
- various cleanups performed in the compiler
......
......@@ -2,6 +2,8 @@ This is an attempt to acknowledge contributions to the garbage collector.
Early contributions also mentioned (duplicated) in ChangeLog file; details of
later ones should be in "git log".
Currently maintained by Ivan Maidanski.
HISTORY -
Early versions of this collector were developed as a part of research
......@@ -21,11 +23,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>
......@@ -36,10 +41,11 @@ Alistair G. Crooks <agc@uts.amdahl.com>
Allan Hsu <allan@counterpop.net>
Andre Leiradella <andre@leiradella.com>
Andreas Jaeger <aj@suse.de>
Andreas Tobler <a.tobler@schweiz.org>
Andreas Tobler <andreastt@gmail.com>
Andrei Polushin <polushin@gmail.com>
Andrej Cedilnik <acedil1@csee.umbc.edu>
Andrew Begel <abegel@eecs.berkeley.edu>
Andrew Buss <abuss@ucsd.edu>
Andrew Gray <andrew.gray@anu.edu.au>
Andrew Haley <aph@redhat.com>
Andrew Horton <andrew.j.horton@gmail.com>
......@@ -47,6 +53,7 @@ Andrew McKinlay <mckinlay@axonsoft.com>
Andrew Pinski <pinskia@physics.uc.edu>
Andrew Stitcher <astitcher@redhat.com>
Andrew Stone <andrew@stone.com>
Andy Li <andy@onthewings.net>
Andy Wingo <wingo@pobox.com>
Anselm Baird-Smith <Anselm.BairdSmith@inria.fr>
Anthony Green <green@redhat.com>
......@@ -63,6 +70,7 @@ Ben Hutchings <ben@decadentplace.org.uk>
Ben Maurer <benm@mono-cvs.ximian.com>
Benjamin Lerman <Benjamin.Lerman@ambre.net>
Bernd Edlinger <bernd.edlinger@hotmail.de>
Bernd Kuhls <bernd.kuhls@t-online.de>
Bernie Solomon <bernard@mono-cvs.ximian.com>
Bill Janssen <janssen@parc.xerox.com>
Bo Thorsen <bo@berlioz.suse.de>
......@@ -80,11 +88,14 @@ Bruce Mitchener <bruce.mitchener@gmail.com>
Bruno Haible <bruno@clisp.org>
Bryce McKinlay <mckinlay@redhat.com>
Burkhard Linke <blinke@cebitec.uni-bielefeld.de>
Calvin Hill <calvin@hakobaito.co.uk>
Carlos J. Puga Medina <cpm@fbsd.es>
Cesar Eduardo Barros <cesarb@nitnet.com.br>
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>
......@@ -115,6 +126,8 @@ 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>
Dietmar Planitzer <dave.pl@ping.at>
......@@ -124,33 +137,39 @@ Djamel Magri <djamel.magri@googlemail.com>
Doug Kaufman <dkaufman@rahul.net>
Doug Moen <doug@moens.org>
Douglas Steel <doug@wg.icl.co.uk>
Eli Barzilay <eli@racket-lang.org>
Elijah Taylor <elijahtaylor@google.com>
Elvenlord Elrond <elrond@samba-tng.org>
Emmanual Stumpf
Eric Benson <eb@kaleida.com>
Eric Holk <eric.holk@gmail.com>
Erik M. Bray <erik.bray@lri.fr>
Fabian Thylman
Fergus Henderson <fjh@cs.mu.oz.au>
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>
Gerard A Allan
Glauco Masotti <glauco.masotti@libero.it>
Grzegorz Jakacki <jakacki@acm.org>
Gustavo Giraldez <ggiraldez@manas.com.ar>
Gustavo Rodriguez-Rivera <grr@cs.purdue.edu>
H.J. Lu <hjl.tools@gmail.com>
Hamayama <hamay1010@gmail.com>
Hannes Mehnert <hannes@mehnert.org>
Hanno Boeck <hanno@gentoo.org>
Hans Boehm <boehm@acm.org>
Hans-Peter Nilsson <hp@gcc.gnu.org>
Hans-Peter Nilsson <hp@axis.com>
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>
......@@ -167,6 +186,8 @@ James Dominy
Jan Alexander Steffens <jan.steffens@gmail.com>
Jan Wielemaker <J.Wielemaker@cs.vu.nl>
Jani Kajala <jani@sumea.com>
Jared McNeill <jmcneill@NetBSD.org>
Jay Krell <jaykrell@microsoft.com>
Jean-Baptiste Nivois
Jean-Claude Beaudoin <jean.claude.beaudoin@gmail.com>
Jean-Daniel Fekete <fekete@cs.umd.edu>
......@@ -182,6 +203,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>
......@@ -190,22 +212,27 @@ John Clements <clements@brinkerhoff.org>
John Ellis <ellis@xerox.parc.com>
John Merryweather Cooper <jmerry@mono-cvs.ximian.com>
Jon Moore <jonm@apache.org>
Jonas Echterhoff <jonas@unity3d.com>
Jonathan Bachrach <jonathan@harlequin.com>
Jonathan Chambers <jonathan@unity3d.com>
Jonathan Clark
Jonathan Pryor <jpryor@novell.com>
Josh Peterson <petersonjm1@gmail.com>
Joshua Richardson <jric@chegg.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>
Klemens Zwischenbrugger <ka7@la-evento.com>
Knut Tvedten <knuttv@ifi.uio.no>
Krister Walfridsson <cato@df.lth.se>
Kristian Kristensen <kk@cs.aau.dk>
......@@ -213,9 +240,11 @@ Kumar Srikantan
Kurt Miller <kurt@intricatesoftware.com>
Lars Farm <lars.farm@ite.mh.se>
Laurent Morichetti <l_m@pacbell.net>
Leonardo Taccari <iamleot@gmail.com>
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>
......@@ -224,6 +253,7 @@ 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>
......@@ -237,17 +267,23 @@ Matthew Flatt <mflatt@plt-scheme.org>
Matthias Andree <matthias.andree@gmx.de>
Matthias Drochner <M.Drochner@fz-juelich.de>
Maurizio Vairani <maurizio.vairani@cloverinformatica.it>
Max Mouratov <mmouratov@gmail.com>
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>
Mikael Djurfeldt <mikael@djurfeldt.com>
Mike Frysinger <vapier@gentoo.org>
Mike Gran <spk121@yahoo.com>
Mike McGaughey <mmcg@cs.monash.edu.au>
Mike Stump <mrs@windriver.com>
Mitch Harris <maharri@uiuc.edu>
Mohan Embar <gnustuff@thisiscool.com>
Naoyuki Sawa <sawa_naoyuki-1@yahoo.co.jp>
Natanael Copa <ncopa@alpinelinux.org>
Nathanael Nerode <neroden@twcny.rr.com>
Neale Ferguson <neale@mono-cvs.ximian.com>
Neil Sharman <neil@cs.mu.oz.au>
......@@ -263,6 +299,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>
......@@ -300,13 +337,17 @@ 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>
Romain Naour <romain.naour@gmail.com>
Romano Paolo Tenca <rotenca@telvia.it>
Rutger Ovidius <ovidr@users.sourceforge.net>
Ryan Gonzalez <rymg19@gmail.com>
Ryan Murray <rmurray@debian.org>
Salvador Eduardo Tropea <salvador@inti.gov.ar>
Samuel Martin <s.martin49@gmail.com>
Samuel Thibault <samuel.thibault@gnu.org>
Scott Ananian <cananian@lesser-magoo.lcs.mit.edu>
Scott Schwartz <schwartz@groucho.cse.psu.edu>
......@@ -323,10 +364,13 @@ Sven Hartrumpf <Sven.Hartrumpf@fernuni-hagen.de>
Sven Verdoolaege <skimo@kotnet.org>
Takis Psarogiannakopoulos <takis@xfree86.org>
Tatsuya Bizenn <bizenn@visha.org>
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>
Tilman Vogel <Tilman.Vogel@web.de>
Tim Bingham <tjb@zko.dec.com>
......@@ -354,6 +398,7 @@ Xi Wang <xi.wang@gmail.com>
Xiaokun Zhu <xiaokun@aero.gla.ac.uk>
Yann Dirson <dirson@debian.org>
Yannis Bres <Yannis@bres.name>
Yuki Okumura <mjt@cltn.org>
Yusuke Suzuki <utatane.tea@gmail.com>
Yvan Roux <yvan.roux@linaro.org>
Zach Saw <zach.saw@gmail.com>
......
# Makefile for Borland C++ 5.5 on NT
# If you have the Borland assembler, remove "-DUSE_GENERIC"
#
bc= c:\Borland\BCC55
bcbin= $(bc)\bin
bclib= $(bc)\lib
bcinclude= $(bc)\include
gcinclude1 = $(bc)\gc6.2\include
gcinclude2 = $(bc)\gc6.2\cord
gcinclude1 = .\include
cc= $(bcbin)\bcc32
rc= $(bcbin)\brc32
lib= $(bcbin)\tlib
link= $(bcbin)\ilink32
cflags= -O2 -R -v- -vi -H -H=gc.csm -I$(bcinclude);$(gcinclude1);$(gcinclude2) -L$(bclib) \
-w-pro -w-aus -w-par -w-ccc -w-rch -a4
defines= -DALL_INTERIOR_POINTERS -DUSE_GENERIC -DNO_GETENV -DJAVA_FINALIZATION -DGC_OPERATOR_NEW_ARRAY
cflags= -O2 -R -v- -vi -H -H=gc.csm -I$(bcinclude);$(gcinclude1) -L$(bclib) \
-w-pro -w-aus -w-par -w-ccc -w-inl -w-rch -a4
defines= -DALL_INTERIOR_POINTERS -DNO_GETENV -DJAVA_FINALIZATION -DGC_OPERATOR_NEW_ARRAY
.c.obj:
$(cc) @&&|
......@@ -28,7 +26,7 @@ defines= -DALL_INTERIOR_POINTERS -DUSE_GENERIC -DNO_GETENV -DJAVA_FINALIZATION -
|
.rc.res:
$(rc) -i$(bcinclude) -r -fo$* $*.rc
$(rc) -i$(bcinclude) -r -fo$* $*.rc
XXXOBJS= XXXalloc.obj XXXreclaim.obj XXXallchblk.obj XXXmisc.obj \
XXXmach_dep.obj XXXos_dep.obj XXXmark_rts.obj XXXheaders.obj XXXmark.obj \
......@@ -44,13 +42,13 @@ all: gctest.exe cord\de.exe test_cpp.exe
$(OBJS) test.obj: include\private\gc_priv.h include\private\gc_hdrs.h include\gc.h include\private\gcconfig.h MAKEFILE
gc.lib: $(OBJS)
del gc.lib
-del gc.lib
$(lib) $* @&&|
$(XXXOBJS:XXX=+)
|
gctest.exe: tests\test.obj gc.lib
$(cc) @&&|
$(cc) @&&|
$(cflags) -W -e$* tests\test.obj gc.lib
|
......@@ -63,25 +61,19 @@ cord\de.exe: cord\cordbscs.obj cord\cordxtra.obj cord\tests\de.obj \
$(cflags) -W -e$* cord\cordbscs.obj cord\cordxtra.obj \
cord\tests\de.obj cord\tests\de_win.obj gc.lib
|
$(rc) cord\tests\de_win.res cord\de.exe
gc_cpp.obj: include\gc_cpp.h include\gc.h
$(rc) cord\tests\de_win.res cord\de.exe
gc_cpp.cpp: gc_cpp.cc
copy gc_cpp.cc gc_cpp.cpp
gc_cpp.obj: gc_cpp.cc include\gc_cpp.h include\gc.h
test_cpp.cpp: tests\test_cpp.cc
copy tests\test_cpp.cc test_cpp.cpp
test_cpp.exe: test_cpp.obj include\gc_cpp.h include\gc.h gc.lib
$(cc) @&&|
$(cc) @&&|
$(cflags) -W -e$* test_cpp.obj gc.lib
|
scratch:
-del *.obj *.res *.exe *.csm cord\*.obj cord\*.res cord\*.exe cord\*.csm
clean:
del gc.lib
del *.obj
del tests\test.obj
-del *.obj *.res *.exe *.csm cord\*.obj cord\*.res cord\*.exe cord\*.csm
-del cord\*.tds cord\tests\*.obj cord\tests\*.res
-del *.log *.tds gc.lib tests\test.obj "gc.#0*"
......@@ -25,6 +25,8 @@ SET(CMAKE_LEGACY_CYGWIN_WIN32 0) # Remove when CMake >= 2.8.4 is required
PROJECT(gc)
INCLUDE(CTest)
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
ADD_DEFINITIONS("-D_CRT_SECURE_NO_DEPRECATE
......@@ -49,8 +51,7 @@ INCLUDE_DIRECTORIES(libatomic_ops/src)
SET(SRC alloc.c reclaim.c allchblk.c misc.c mach_dep.c os_dep.c
mark_rts.c headers.c mark.c obj_map.c blacklst.c finalize.c
new_hblk.c dbg_mlc.c malloc.c stubborn.c dyn_load.c
typd_mlc.c ptr_chck.c gc_cpp.cc mallocx.c checksums.c
thread_local_alloc.c)
typd_mlc.c ptr_chck.c mallocx.c gc_cpp.cc)
SET(LIBS)
OPTION(enable_threads "TODO" NO)
IF(enable_threads)
......@@ -69,6 +70,7 @@ OPTION(enable_parallel_mark "Parallelize marking and free list construction" NO)
#ENDIF(Threads_FOUND)
IF(enable_parallel_mark)
ADD_DEFINITIONS("-DPARALLEL_MARK")
ENDIF(enable_parallel_mark)
OPTION(enable_cplusplus "install C++ support" NO)
......@@ -82,66 +84,61 @@ MESSAGE("HOST = ${HOST}")
#TODO check cmake detection
IF(CMAKE_USE_PTHREADS_INIT)
SET(SRC ${SRC} pthread_start.c pthread_support.c pthread_stop_world.c)
IF( "HOST" MATCHES x86-.*-linux.*|ia64-.*-linux.*|i586-.*-linux.*|i686-.*-linux.*|x86_64-.*-linux.*|alpha-.*-linux.*|sparc.*-.*-linux.*)
IF( HOST MATCHES x86-.*-linux.*|ia64-.*-linux.*|i586-.*-linux.*|i686-.*-linux.*|x86_64-.*-linux.*|alpha-.*-linux.*|sparc.*-.*-linux.*)
ADD_DEFINITIONS("-DGC_LINUX_THREADS")
ADD_DEFINITIONS("-D_REENTRANT")
IF (${enable_parallel_mark})
ADD_DEFINITIONS("-DPARALLEL_MARK")
ENDIF()
ADD_DEFINITIONS("-DTHREAD_LOCAL_ALLOC")
SET(SRC ${SRC} thread_local_alloc.c)
MESSAGE("Explicit GC_INIT() calls may be required.")
ENDIF()
IF ( "HOST" MATCHES .*-.*-linux.*)
IF ( HOST MATCHES .*-.*-linux.*)
ADD_DEFINITIONS("-DGC_LINUX_THREADS")
ADD_DEFINITIONS("-D_REENTRANT")
ENDIF()
IF ( "HOST" MATCHES .*-.*-aix.*)
IF ( HOST MATCHES .*-.*-aix.*)
ADD_DEFINITIONS("-DGC_AIX_THREADS")
ADD_DEFINITIONS("-D_REENTRANT")
ENDIF()
IF ( "HOST" MATCHES .*-.*-hpux11.*)
IF ( HOST MATCHES .*-.*-hpux11.*)
MESSAGE("Only HP/UX 11 POSIX threads are supported.")
ADD_DEFINITIONS("-DGC_HPUX_THREADS")
ADD_DEFINITIONS("-D_POSIX_C_SOURCE=199506L") #TODO test -DVAR=value. Alternative is COMPILE_DEFINITIONS property
IF (${enable_parallel_mark})
ADD_DEFINITIONS("-DPARALLEL_MARK")
ENDIF()
MESSAGE("Explicit GC_INIT() calls may be required.")
ADD_DEFINITIONS("-D_REENTRANT") #TODO
ENDIF()
IF ( "HOST" MATCHES .*-.*-hpux10.*)
IF ( HOST MATCHES .*-.*-hpux10.*)
MESSAGE("Only HP/UX 11 POSIX threads are supported.")
ENDIF()
IF ( "HOST" MATCHES .*-.*-openbsd.*)
IF ( HOST MATCHES .*-.*-openbsd.*)
ADD_DEFINITIONS("-DGC_OPENBSD_THREADS")
ENDIF()
IF ( "HOST" MATCHES .*-.*-freebsd.*)
IF ( HOST MATCHES .*-.*-freebsd.*)
MESSAGE("FreeBSD does not yet fully support threads with Boehm GC.")
ADD_DEFINITIONS("-DGC_FREEBSD_THREADS")
ENDIF()
IF ( "HOST" MATCHES .*-.*-kfreebsd.*-gnu)
IF ( HOST MATCHES .*-.*-kfreebsd.*-gnu)
ADD_DEFINITIONS("-DGC_FREEBSD_THREADS")
ADD_DEFINITIONS("-D_REENTRANT")
IF (${enable_parallel_mark})
ADD_DEFINITIONS("-DPARALLEL_MARK")
ENDIF()
ADD_DEFINITIONS("-DTHREAD_LOCAL_ALLOC")
ADD_DEFINITIONS("-DUSE_COMPILER_TLS")
SET(SRC ${SRC} thread_local_alloc.c)
ENDIF()
IF ( "HOST" MATCHES .*-.*-gnu.*)
IF ( HOST MATCHES .*-.*-gnu.*)
ADD_DEFINITIONS("-DGC_GNU_THREADS")
ADD_DEFINITIONS("-D_REENTRANT")
ADD_DEFINITIONS("-DTHREAD_LOCAL_ALLOC")
SET(SRC ${SRC} thread_local_alloc.c)
ENDIF()
IF ( "HOST" MATCHES .*-.*-netbsd.*)
IF ( HOST MATCHES .*-.*-netbsd.*)
MESSAGE("Only on NetBSD 2.0 or later.")
ADD_DEFINITIONS("-DGC_NETBSD_THREADS")
ADD_DEFINITIONS("-D_REENTRANT")
ADD_DEFINITIONS("-D_PTHREADS")
ENDIF()
IF ( "HOST" MATCHES .*-.*-solaris.*)
IF ( HOST MATCHES .*-.*-solaris.*)
ADD_DEFINITIONS("-DGC_SOLARIS_THREADS")
ADD_DEFINITIONS("-DTHREAD_LOCAL_ALLOC")
SET(SRC ${SRC} thread_local_alloc.c)
#TODO
# if test "$GCC" != yes; then
# CFLAGS="$CFLAGS -O"
......@@ -149,41 +146,33 @@ IF(CMAKE_USE_PTHREADS_INIT)
# fi
ENDIF()
IF ( "HOST" MATCHES .*-.*-irix.*)
IF ( HOST MATCHES .*-.*-irix.*)
ADD_DEFINITIONS("-DGC_IRIX_THREADS")
ENDIF()
IF ( "HOST" MATCHES .*-.*-cygwin.*)
IF ( HOST MATCHES .*-.*-cygwin.*)
ADD_DEFINITIONS("-DGC_THREADS")
IF (${enable_parallel_mark})
ADD_DEFINITIONS("-DPARALLEL_MARK")
ENDIF()
ADD_DEFINITIONS("-DTHREAD_LOCAL_ALLOC")
#TODO
# win32_threads=true
SET(SRC ${SRC} thread_local_alloc.c win32_threads.c)
ENDIF()
IF ( "HOST" MATCHES .*-.*-darwin.*)
IF ( HOST MATCHES .*-.*-darwin.*)
ADD_DEFINITIONS("-DGC_DARWIN_THREADS")
ADD_DEFINITIONS("-DTHREAD_LOCAL_ALLOC")
MESSAGE("Explicit GC_INIT() calls may be required.")
SET(SRC ${SRC} darwin_stop_world.c)
IF (${enable_parallel_mark})
ADD_DEFINITIONS("-DPARALLEL_MARK")
ENDIF()
SET(SRC ${SRC} darwin_stop_world.c thread_local_alloc.c)
#TODO
#darwin_threads=true
ENDIF()
IF ( "HOST" MATCHES .*-.*-osf*)
IF ( HOST MATCHES .*-.*-osf.*)
ADD_DEFINITIONS("-DGC_OSF1_THREADS")
IF (${enable_parallel_mark})
ADD_DEFINITIONS("-DPARALLEL_MARK")
IF(enable_parallel_mark)
ADD_DEFINITIONS("-DTHREAD_LOCAL_ALLOC")
SET(SRC ${SRC} thread_local_alloc.c)
MESSAGE("Explicit GC_INIT() calls may be required.")
# May want to enable it in other cases, too.
# Measurements haven't yet been done.
ENDIF()
ENDIF()
IF ( "HOST" MATCHES .*-.*-linux.*)
IF ( HOST MATCHES .*-.*-linux.*)
ADD_DEFINITIONS("-DGC_LINUX_THREADS")
ADD_DEFINITIONS("-D_REENTRANT")
ENDIF()
......@@ -191,10 +180,9 @@ ENDIF(CMAKE_USE_PTHREADS_INIT)
IF(CMAKE_USE_WIN32_THREADS_INIT)
ADD_DEFINITIONS("-DGC_THREADS")
#win32_threads=true TODO
IF (${enable_parallel_mark})
ADD_DEFINITIONS("-DPARALLEL_MARK")
IF(enable_parallel_mark)
ADD_DEFINITIONS("-DTHREAD_LOCAL_ALLOC")
SET(SRC ${SRC} thread_local_alloc.c)
ENDIF()
ADD_DEFINITIONS("-DEMPTY_GETENV_RESULTS") #TODO test
SET(SRC ${SRC} win32_threads.c)
......@@ -203,6 +191,10 @@ ENDIF(CMAKE_USE_WIN32_THREADS_INIT)
OPTION(enable_gcj_support "Support for gcj" NO)
IF(enable_gcj_support)
ADD_DEFINITIONS("-DGC_GCJ_SUPPORT")
IF(enable_threads)
ADD_DEFINITIONS("-DGC_ENABLE_SUSPEND_THREAD")
ENDIF(enable_threads)
SET(SRC ${SRC} gcj_mlc.c)
ENDIF(enable_gcj_support)
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -11,6 +11,12 @@
## Process this file with automake to produce Makefile.in.
# Info (current:revision:age) for the Libtool versioning system.
# These numbers should be updated at most once just before the release,
# and, optionally, at most once during the development (after the release).
LIBGC_VER_INFO = 4:4:3
LIBGCCPP_VER_INFO = 4:2:3
## FIXME: `make distcheck' in this directory will not currently work.
## This is most likely to the explicit flags passed to submakes.
......@@ -18,7 +24,7 @@
# use the internal version. This is done since libatomic_ops doesn't
# use libtool, since it has no real use for it. But that seems to make
# it hard to use either the resulting object files or libraries.
# Thus there seems too be no real reason to recursively build in the
# Thus there seems to be no real reason to recursively build in the
# libatomic_ops directory.
# if USE_INTERNAL_LIBATOMICS_OPS
# SUBDIRS = @maybe_libatomic_ops@
......@@ -32,7 +38,7 @@ AM_CPPFLAGS = \
-I$(top_builddir)/include -I$(top_srcdir)/include \
$(ATOMIC_OPS_CFLAGS)
# Initialize variables so that we can declare files locally.
## Initialize variables so that we can declare files locally.
EXTRA_DIST =
lib_LTLIBRARIES =
include_HEADERS =
......@@ -49,25 +55,35 @@ pkgconfig_DATA = bdw-gc.pc
# ---------
lib_LTLIBRARIES += libgc.la
if SINGLE_GC_OBJ
libgc_la_SOURCES = extra/gc.c
if PTHREAD_START_STANDALONE
AM_CPPFLAGS += -DGC_PTHREAD_START_STANDALONE
libgc_la_SOURCES += pthread_start.c
endif
else
EXTRA_DIST += extra/gc.c
libgc_la_SOURCES = \
allchblk.c alloc.c blacklst.c checksums.c dbg_mlc.c \
dyn_load.c finalize.c gc_dlopen.c gcj_mlc.c headers.c \
mach_dep.c malloc.c mallocx.c mark.c mark_rts.c misc.c new_hblk.c \
obj_map.c os_dep.c pcr_interface.c ptr_chck.c real_malloc.c reclaim.c \
specific.c stubborn.c thread_local_alloc.c typd_mlc.c
specific.c stubborn.c typd_mlc.c
# C Library: Architecture Dependent
# ---------------------------------
if WIN32_THREADS
libgc_la_SOURCES += win32_threads.c
libgc_la_SOURCES += thread_local_alloc.c win32_threads.c
else
if PTHREADS
libgc_la_SOURCES += pthread_start.c pthread_support.c
# Not Cygwin or MinGW.
libgc_la_SOURCES += pthread_start.c pthread_support.c thread_local_alloc.c
if DARWIN_THREADS
libgc_la_SOURCES += darwin_stop_world.c
else
......@@ -84,6 +100,7 @@ if ENABLE_DISCLAIM
libgc_la_SOURCES += fnlz_mlc.c
endif
## End of !SINGLE_GC_OBJ
endif
if USE_INTERNAL_LIBATOMIC_OPS
......@@ -98,27 +115,26 @@ endif
# linuxthread semaphore functions get linked:
libgc_la_LIBADD = @addobjs@ $(THREADDLLIBS) $(UNWINDLIBS) $(ATOMIC_OPS_LIBS)
libgc_la_DEPENDENCIES = @addobjs@
libgc_la_LDFLAGS = $(extra_ldflags_libgc) -version-info 1:3:0 -no-undefined
libgc_la_LDFLAGS = $(extra_ldflags_libgc) -version-info $(LIBGC_VER_INFO) \
-no-undefined
EXTRA_libgc_la_SOURCES = ia64_save_regs_in_stack.s sparc_mach_dep.S \
sparc_netbsd_mach_dep.s sparc_sunos4_mach_dep.s
if CPLUSPLUS
# C++ Interface
# -------------
if CPLUSPLUS
lib_LTLIBRARIES += libgccpp.la
pkginclude_HEADERS += include/gc_cpp.h
include_HEADERS += include/extra/gc_cpp.h
libgccpp_la_SOURCES = gc_cpp.cc
libgccpp_la_LIBADD = ./libgc.la
libgccpp_la_LDFLAGS = -version-info 1:3:0 -no-undefined
libgccpp_la_LDFLAGS = -version-info $(LIBGCCPP_VER_INFO) -no-undefined
endif
# FIXME: If Visual C++ users use Makefile.am, this should go into
# pkginclude_HEADERS with proper AM_CONDITIONALization. Otherwise
# delete this comment.
## FIXME: If Visual C++ users use Makefile.am, this should go into
## pkginclude_HEADERS with proper AM_CONDITIONALization. Otherwise
## delete this comment.
EXTRA_DIST += gc_cpp.cpp
......@@ -126,7 +142,10 @@ EXTRA_DIST += gc_cpp.cpp
# ----
AM_CXXFLAGS = @GC_CFLAGS@
AM_CFLAGS = @GC_CFLAGS@
AM_CFLAGS = $(WERROR_CFLAGS) @GC_CFLAGS@
CFLAGS += $(CFLAGS_EXTRA)
CXXFLAGS += $(CFLAGS_EXTRA)
## FIXME: relies on internal code generated by automake.
## FIXME: ./configure --enable-dependency-tracking should be used
......@@ -165,15 +184,14 @@ CCASFLAGS += $(DEFS)
# documentation which is not installed
#
EXTRA_DIST += README.QUICK TODO
EXTRA_DIST += README.QUICK
# other makefiles
# :GOTCHA: deliberately we do not include 'Makefile'