Imported Upstream version 6.10.0.49

Former-commit-id: 1d6753294b2993e1fbf92de9366bb9544db4189b
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2020-01-16 16:38:04 +00:00
parent d94e79959b
commit 468663ddbb
48518 changed files with 2789335 additions and 61176 deletions

View File

@@ -1 +1 @@
23a53f6a657256c50759b9c4f4b3f27827d21a79
586a8b02db3563e731cf6bd35e0e53dc6e02ddc9

View File

@@ -1 +1 @@
68d28c31b98019e06fa4ba81b96365aad2004da1
7019bfc0f94b1969fa940d66cb7b001a76c2c488

View File

@@ -1 +1 @@
3d86cbc178ecc58c1640325d9c50613a8db0a299
5dee3ce882d163a417a62dd0cc3d9ebbd90a1ae9

View File

@@ -1 +1 @@
d4965059d547194b07315ea2eccdd9324bcfbf8c
c42adf6e6802d361572e6d7afa50c414cb728a0d

View File

@@ -1 +1 @@
8de7e7ee3c96235193778fc69c3f4186a58a69d6
971ec0433e2549af734d0be493c45056564c2b41

View File

@@ -1 +1 @@
422a5ed0cc55c2bd8c7a4e5ab98f378ce5d8aded
4e2fa50c936b19362e4e4cd8e7ed1c5ac42ca49e

18
external/bdwgc/.gitattributes vendored Normal file
View File

@@ -0,0 +1,18 @@
# Git repo attributes.
# need LF enforced to make cygwin work
*.sh text eol=lf
*.ac text eol=lf
*.am text eol=lf
*.m4 text eol=lf
# Ensure all text files have normalized (LF) line endings in the repository.
* text=auto
# These files should use CR/LF line ending:
/BCC_MAKEFILE -text
/digimars.mak -text
# Note: "core.eol" configuration variable controls which line endings to use
# for the normalized files in the working directory (the default is native).

172
external/bdwgc/.gitignore vendored Normal file
View File

@@ -0,0 +1,172 @@
# Ignored files in bdwgc Git repo.
# Binary files (in root dir, cord, tests):
*.dll
*.exe
*.gcda
*.gch
*.gcno
*.la
*.lib
*.lo
*.o
*.obj
*.gc.log
.dirstamp
/*_bench.log
/*_bench.trs
/*test.log
/*test.trs
/.libs/
/Makefile
/add_gc_prefix
/base_lib
/bdw-gc.pc
/bsd-libgc.a
/bsd-libleak.a
/c++
/config.cache
/config.log
/config.status
/cord/cordtest
/cord/de
/cord/de_win.rbj
/cord/de_win.res
/cord/tests/de_win.rbj
/cord/tests/de_win.res
/cords
/cordtest
/core
/de
/disclaim_bench
/disclaim_test
/dont_ar_1
/dont_ar_3
/dont_ar_4
/gc-*
/gc.a
/gc.log
/gcname
/gctest
/gctest_dyn_link
/gctest_irix_dyn_link
/hugetest
/if_mach
/if_not_there
/initsecondarythread_test
/leaktest
/libalphagc.so
/libgc.so
/libirixgc.so
/liblinuxgc.so
/libtool
/middletest
/realloc_test
/setjmp_test
/smashtest
/staticrootstest
/subthreadcreate_test
/sunos5gc.so
/test-suite.log
/test_atomic_ops
/test_atomic_ops.log
/test_atomic_ops.trs
/test_cpp
/test_cpp.cpp
/test_cpp.log
/test_cpp.trs
/threadkey_test
/threadleaktest
/threadlibs
/tracetest
# Config, dependency and stamp files generated by configure:
.deps/
/include/config.h
config.h.in~
stamp-h1
# External library (without trailing slash to allow symlinks):
/libatomic_ops*
/pthreads-w32*
# These files are generated by autoreconf:
/Makefile.in
/aclocal.m4
/autom4te.cache/
/compile
/config.guess
/config.sub
/configure
/depcomp
/include/config.h.in
/install-sh
/ltmain.sh
/m4/libtool.m4
/m4/ltoptions.m4
/m4/ltsugar.m4
/m4/ltversion.m4
/m4/lt~obsolete.m4
/missing
/mkinstalldirs
/test-driver
# These files are generated by CMake:
*.tlog
/*.vcxproj
/*.vcxproj.filters
/CMakeCache.txt
/CMakeFiles/
/CTestTestfile.cmake
/DartConfiguration.tcl
/Testing/Temporary/
/cmake_install.cmake
/gc.sln
/libgc*-dll.so
/libgc*-lib.a
/tests/*.vcxproj
/tests/*.vcxproj.filters
/tests/*test
/tests/CMakeFiles/
/tests/CTestTestfile.cmake
/tests/Makefile
/tests/cmake_install.cmake
/tests/test_cpp
# Rarely generated files (mostly by some Win/DOS compilers):
/*.copied.c
/*.csm
/*.err
/*.i
/*.lb1
/*.lnk
/*.map
/*.out
/*.rbj
/*.res
/*.stackdump
/*.sym
/*.tmp
*.bsc
*.dll.manifest
*.exp
*.idb
*.ilk
*.pdb
*.sbr
# Stuff from VS build system and IDE
*.vcproj.*.user
# Code analysis tools:
*.c.gcov
*.cc.gcov
*.h.gcov
*.sancov
/.sv*-dir
/cov-int
/coverage.info
/pvs-project.log
/pvs-project.tasks
/strace_out

4
external/bdwgc/.gitmodules vendored Normal file
View File

@@ -0,0 +1,4 @@
[submodule "libatomic_ops"]
path = libatomic_ops
url = git://github.com/Unity-Technologies/libatomic_ops.git
branch = unity-release-7_4

620
external/bdwgc/.travis.yml vendored Normal file

File diff suppressed because it is too large Load Diff

406
external/bdwgc/AUTHORS vendored Normal file
View File

@@ -0,0 +1,406 @@
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".
HISTORY -
Early versions of this collector were developed as a part of research
projects supported in part by the National Science Foundation
and the Defense Advance Research Projects Agency.
The garbage collector originated as part of the run-time system for
the Russell programming language implementation. The first version of the
garbage collector was written primarily by Alan Demers. It was then refined
and mostly rewritten, primarily by Hans-J. Boehm, at Cornell U.,
the University of Washington, Rice University (where it was first used for
C and assembly code), Xerox PARC, SGI, and HP Labs. However, significant
contributions have also been made by many others.
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>
Alexandr Petrosian <paf@design.ru>
Alexandr Shadchin <ShadchinAV@mail.ru>
Alexandre Oliva <aoliva@redhat.com>
Alexis Laferriere <alexis.laf@xymus.net>
Alistair G. Crooks <agc@uts.amdahl.com>
Allan Hsu <allan@counterpop.net>
Andre Leiradella <andre@leiradella.com>
Andreas Jaeger <aj@suse.de>
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>
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>
Antoine de Maricourt
Ari Huttunen <Ari.Huttunen@hut.fi>
Arrigo Triulzi <arrigo@ic.ac.uk>
Ashley Bone <ashley.bone@nvl.army.mil>
Assar Westerlund <assar@sics.se>
Aurelien Larcher <aurelien.larcher@gmail.com>
Barry DeFreese <bdefreese@debian.org>
Baruch Siach <baruch@tkos.co.il>
Ben A. Mesander <ben@piglet.cr.usgs.gov>
Ben Cottrell <tamino@wolfhut.org>
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>
Bradley D. LaRonde <brad@ltc.com>
Bradley Smith <brad@brad-smith.co.uk>
Brent Benson <brent@jade.ssd.csd.harris.com>
Brian Alliet <brian@brianweb.net>
Brian Beuning <bbeuning@corecard.com>
Brian Burton <bburton@users.sourceforge.net>
Brian D. Carlstrom <bdc@clark.lcs.mit.edu>
Brian F. Dennis <xjam@cork.cs.berkeley.edu>
Brian Lewis <btlewis@eng.sun.com>
Bruce Hoult <bruce@hoult.org>
Bruce Mitchener <bruce.mitchener@gmail.com>
Bruno Haible <bruno@clisp.org>
Bryce McKinlay <mckinlay@redhat.com>
Burkhard Linke <blinke@cebitec.uni-bielefeld.de>
Calvin Buckley <calvin@openmailbox.org>
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>
Christoffe Raffali <christophe.raffalli@univ-savoie.fr>
Clay Spence <cds@peanut.sarnoff.com>
Colin LeMahieu <clemahieu@gmail.com>
Craig McDaniel <kreg7@bellsouth.net>
Dai Sato <satodai@dog.intcul.tohoku.ac.jp>
Dan Bonachea <bonachea@cs.berkeley.edu>
Dan Fandrich <dan@coneharvesters.com>
Dan Sullivan <sullivan@epa.gov>
Daniel R. Grayson <dan@math.uiuc.edu>
Danny Smith <danny_r_smith_2001@yahoo.co.nz>
Darrell Schiebel <drs@nrao.edu>
Dave Barrett <barrett@asgard.cs.colorado.edu>
Dave Detlefs <detlefs@src.dec.com>
Dave Korn <dave.korn.cygwin@googlemail.com>
Dave Love <d.love@dl.ac.uk>
David Ayers <d.ayers@inode.at>
David Brownlee <abs@absd.org>
David Butenhof <david.butenhof@hp.com>
David Chase <dr2chase@mac.com>
David Daney <ddaney@avtrex.com>
David Grove <groved@us.ibm.com>
David Leonard <leonard@users.sourceforge.net>
David Miller <davem@davemloft.net>
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>
Dimitris Vyzovitis <vyzo@media.mit.edu>
Dimitry Andric <dim@freebsd.org>
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@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>
Ian Searle <ians@eskimo.com>
Igor Khavkine <i_khavki@alcor.concordia.ca>
Ivan Demakov <ivan@tgrad.nsk.su>
Ivan Maidanski <ivmai@mail.ru>
Jaap Boender <jaapb@netbsd.org>
Jack Andrews <effbiae@gmail.com>
Jacob Navia <jacob.navia@jacob.remcomp.fr>
Jakub Jelinek <jakub@redhat.com>
James Clark <jjc@jclark.com>
James Dominy
Jan Alexander Steffens <jan.steffens@gmail.com>
Jan Wielemaker <J.Wielemaker@cs.vu.nl>
Jani Kajala <jani@sumea.com>
Jay Krell <jaykrell@microsoft.com>
Jean-Baptiste Nivois
Jean-Claude Beaudoin <jean.claude.beaudoin@gmail.com>
Jean-Daniel Fekete <fekete@cs.umd.edu>
Jeff Sturm <jsturm@one-point.com>
Jeffrey Hsu <hsu@soda.berkeley.edu>
Jeffrey Mark Siskind
Jeremy Fitzhardinge <jeremy@goop.org>
Jesper Peterson <jep@mtiame.mtia.oz.au>
Jesse Hull
Jesse Jones <jesjones@mindspring.com>
Jesse Rosenstock <jmr@ugcs.caltech.edu>
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>
John Bowman <bowman@ualberta.ca>
John Clements <clements@brinkerhoff.org>
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>
Joshua Richardson <jric@chegg.com>
Juan Jose Garcia-Ripoll <juanjose.garciaripoll@googlemail.com>
Jukka Jylanki <jujjyl@gmail.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>
Kimura Wataru <kimuraw@i.nifty.jp>
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>
Kumar Srikantan
Kurt Miller <kurt@intricatesoftware.com>
Lars Farm <lars.farm@ite.mh.se>
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>
Mark Reichert <markr@sirs.com>
Mark Sibly
Mark Weiser <weiser@ubiq.com>
Martin Hirzel <hirzel@cs.colorado.edu>
Martin Tauchmann <martintauchmann@bigfoot.com>
Matt Austern <austern@google.com>
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>
Nathanael Nerode <neroden@twcny.rr.com>
Neale Ferguson <neale@mono-cvs.ximian.com>
Neil Sharman <neil@cs.mu.oz.au>
Nicolas Cannasse <ncannasse@motion-twin.com>
Niibe Yutaka <gniibe@fsij.org>
Niklas Therning <niklas@therning.org>
Noah Lavine <noah.b.lavine@gmail.com>
Nobuyuki Hikichi <hikichi@sra.co.jp>
Oliver Kurth <oliver.kurth@innominate.com>
Ondrej Bilka <neleai@seznam.cz>
Paolo Molaro <lupus@ximian.com>
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>
Per Bothner <per@bothner.com>
Peter Bigot <bigotp@acm.org>
Peter Chubb <peterc@sour.sw.oz.au>
Peter Colson <pcolson@connexus.net.au>
Peter Housel <housel@acm.org>
Peter Monks <pmonks@iname.com>
Peter Ross <pro@missioncriticalit.com>
Peter Seebach <seebs@taniemarie.solon.com>
Peter Wang <novalazy@gmail.com>
Petr Krajca <krajcap@inf.upol.cz>
Petr Salinger <Petr.Salinger@seznam.cz>
Petter Urkedal <paurkedal@gmail.com>
Philip Brown <phil@opencsw.org>
Philipp Tomsich <phil@complang.tuwien.ac.at>
Philippe Queinnec <queinnec@enseeiht.fr>
Phillip Musumeci <p.musumeci@ieee.org>
Phong Vo <kpv@research.att.com>
Pierre de Rop
Pontus Rydin <P.Rydin@astea.se>
Radek Polak <psonek2@seznam.cz>
Rainer Orth <ro@cebitec.uni-bielefeld.de>
Ranjit Mathew <rmathew@gcc.gnu.org>
Rauli Ruohonen <rruohone@cc.hut.fi>
Regis Cridlig <Regis.Cridlig@cl.cam.ac.uk>
Reimer Behrends <behrends@gmail.com>
Renaud Blanch <renaud.blanch@lri.fr>
Rene Girard
Rex Dieter <rdieter@math.unl.edu>
Reza Shahidi
Richard Earnshaw <rearnsha@arm.com>
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>
Shawn Wagner <shawnw@speakeasy.org>
Shea Levy <shea@shealevy.com>
Shiro Kawai <shiro@lava.net>
Simon Gornall <simon@gornall.net>
Simon Posnjak <simon.posnjak@siol.net>
Slava Sysoltsev <Viatcheslav.Sysoltsev@h-d-gmbh.de>
Stefan Ring <stefanrin@gmail.com>
Stefano Rivera <stefano@rivera.za.net>
Sugioka Toshinobu <sugioka@itonet.co.jp>
Suzuki Toshiya <mpsuzuki@hiroshima-u.ac.jp>
Sven Hartrumpf <Sven.Hartrumpf@fernuni-hagen.de>
Sven Verdoolaege <skimo@kotnet.org>
Takis Psarogiannakopoulos <takis@xfree86.org>
Tatsuya Bizenn <bizenn@visha.org>
Tautvydas Zilys <tautvydas.zilys@gmail.com>
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>
Timothy N. Newsham <newsham@wiliki.eng.hawaii.edu>
Tom Tromey <tromey@cygnus.com>
Tommaso Tagliapietra <tommaso.tagliapietra@enel.it>
Toralf Foerster <toralf.foerster@gmx.de>
Toshio Endo <endo@is.titech.ac.jp>
Tsugutomo Enami <tsugutomo.enami@jp.sony.com>
Tum Nguyen <tum@veridicus.com>
Tyson Dowd <trd@cs.mu.oz.au>
Uchiyama Yasushi <uch@netbsd.org>
Ulrich Drepper <drepper@redhat.com>
Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
Uros Bizjak <ubizjak@gmail.com>
Vernon Lee <scorpion@rice.edu>
Victor Ivrii <ivrii@math.toronto.edu>
Vitaly Magerya <vmagerya@gmail.com>
Vladimir Tsichevski <wowa@jet.msk.su>
Walter Bright <walter@walterbright.com>
Walter Underwood <wunder@hp-ses.sde.hp.com>
Wilson Ho <how@ivy.ucdavis.edu>
Wink Saville <wink@saville.com>
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>
Zhiying Chen
Zhong Shao <zhong.shao@yale.edu>
Zoltan Varga <vargaz@gmail.com>

86
external/bdwgc/BCC_MAKEFILE vendored Normal file
View File

@@ -0,0 +1,86 @@
# Makefile for Borland C++ 5.5 on NT
#
bc= c:\Borland\BCC55
bcbin= $(bc)\bin
bclib= $(bc)\lib
bcinclude= $(bc)\include
gcinclude1 = $(bc)\gc6.2\include
gcinclude2 = $(bc)\gc6.2\cord
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 -DNO_GETENV -DJAVA_FINALIZATION -DENABLE_DISCLAIM -DGC_OPERATOR_NEW_ARRAY
.c.obj:
$(cc) @&&|
$(cdebug) $(cflags) $(cvars) $(defines) -o$* -c $*.c
|
.cpp.obj:
$(cc) @&&|
$(cdebug) $(cflags) $(cvars) $(defines) -o$* -c $*.cpp
|
.rc.res:
$(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 \
XXXobj_map.obj XXXblacklst.obj XXXfinalize.obj XXXnew_hblk.obj \
XXXdbg_mlc.obj XXXmalloc.obj XXXdyn_load.obj \
XXXtypd_mlc.obj XXXptr_chck.obj XXXgc_cpp.obj XXXmallocx.obj \
XXXfnlz_mlc.obj
OBJS= $(XXXOBJS:XXX=)
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
$(lib) $* @&&|
$(XXXOBJS:XXX=+)
|
gctest.exe: tests\test.obj gc.lib
$(cc) @&&|
$(cflags) -W -e$* tests\test.obj gc.lib
|
cord\tests\de.obj cord\tests\de_win.obj: include\cord.h \
include\cord_pos.h cord\tests\de_win.h cord\tests\de_cmds.h
cord\de.exe: cord\cordbscs.obj cord\cordxtra.obj cord\tests\de.obj \
cord\tests\de_win.obj cord\tests\de_win.res gc.lib
$(cc) @&&|
$(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
gc_cpp.cpp: gc_cpp.cc
copy gc_cpp.cc gc_cpp.cpp
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) @&&|
$(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

240
external/bdwgc/CMakeLists.txt vendored Normal file
View File

@@ -0,0 +1,240 @@
#
# Copyright (c) 1994 by Xerox Corporation. All rights reserved.
# Copyright (c) 1996 by Silicon Graphics. All rights reserved.
# Copyright (c) 1998 by Fergus Henderson. All rights reserved.
# Copyright (c) 2000-2010 by Hewlett-Packard Company. All rights reserved.
##
# THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
# OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
##
# Permission is hereby granted to use or copy this program
# for any purpose, provided the above notices are retained on all copies.
# Permission to modify the code and to distribute modified code is granted,
# provided the above notices are retained, and a notice that the code was
# modified is included with the above copyright notice.
##
#
# get cmake and run:
# cmake -G "Visual Studio 8 2005"
# in the same dir as this file
# this will generate gc.sln
#
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
-DALL_INTERIOR_POINTERS -DNO_EXECUTE_PERMISSION")
IF(APPLE)
IF("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "")
SET(CMAKE_OSX_ARCHITECTURES "ppc;i386;x86_64" CACHE STRING "Build architectures for Mac OS X" FORCE)
ENDIF()
ENDIF(APPLE)
#LIBATOMIC #TODO
#ADD_LIBRARY(atomic_ops STATIC )
#SET_TARGET_PROPERTIES(atomic_ops PROPERTIES COMPILE_FLAGS -DNO_DEBUGGING)
#LIBGC
INCLUDE_DIRECTORIES(include)
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 dyn_load.c typd_mlc.c ptr_chck.c
mallocx.c)
SET(LIBS)
OPTION(enable_threads "TODO" NO)
IF(enable_threads)
FIND_PACKAGE(Threads REQUIRED)
MESSAGE("Thread Model: ${CMAKE_THREAD_LIBS_INIT}" )
INCLUDE_DIRECTORIES(${Threads_INCLUDE_DIR})
SET(LIBS ${LIBS} ${Threads_LIBRARIES})
ENDIF(enable_threads)
OPTION(enable_handle_fork "Attempt to ensure a usable collector after fork()" ON)
OPTION(enable_thread_local_alloc "Turn on thread-local allocation optimization" ON)
OPTION(enable_parallel_mark "Parallelize marking and free list construction" ON)
#IF(Threads_FOUND)
# ADD_DEFINITIONS("")
#ELSE
# MESSAGE("Parallel mark requires enable_threads ON" )
#ENDIF(Threads_FOUND)
#OPTION(enable_cplusplus "install C++ support" ON)
SET(SRC ${SRC} gc_cpp.cc)
SET(_HOST ${CMAKE_HOST_SYSTEM_PROCESSOR}--${CMAKE_SYSTEM}) #FIXME missing the vendor field.
STRING(TOLOWER ${_HOST} HOST)
MESSAGE("HOST = ${HOST}")
#Thread Detection. Relying on cmake for lib an includes.
#TODO check cmake detection
IF(CMAKE_USE_PTHREADS_INIT)
SET(SRC ${SRC} pthread_start.c pthread_support.c pthread_stop_world.c)
# Common defines for most POSIX platforms.
IF( HOST MATCHES .*-.*-aix.*|.*-.*-android.*|.*-.*-cygwin.*|.*-.*-darwin.*|.*-.*-.*freebsd.*|.*-.*-haiku.*|.*-.*-gnu.*|.*-.*-hpux11.*|.*-.*-irix.*|.*-.*-.*linux.*|.*-.*-nacl.*|.*-.*-netbsd.*|.*-.*-openbsd.*|.*-.*-osf.*|.*-.*-solaris.*)
ADD_DEFINITIONS("-DGC_THREADS -D_REENTRANT")
IF(enable_parallel_mark)
ADD_DEFINITIONS("-DPARALLEL_MARK")
ENDIF(enable_parallel_mark)
IF(enable_thread_local_alloc)
ADD_DEFINITIONS("-DTHREAD_LOCAL_ALLOC")
SET(SRC ${SRC} thread_local_alloc.c)
ENDIF(enable_thread_local_alloc)
MESSAGE("Explicit GC_INIT() calls may be required.")
ENDIF()
IF ( HOST MATCHES .*-.*-hpux11.*)
MESSAGE("Only HP/UX 11 POSIX threads are supported.")
ADD_DEFINITIONS("-D_POSIX_C_SOURCE=199506L") #TODO test -DVAR=value. Alternative is COMPILE_DEFINITIONS property
ENDIF()
IF ( HOST MATCHES .*-.*-hpux10.*)
MESSAGE("HP/UX 10 POSIX threads are not supported.")
ENDIF()
IF ( HOST MATCHES .*-.*-netbsd.*)
MESSAGE("Only on NetBSD 2.0 or later.")
ADD_DEFINITIONS("-D_PTHREADS")
ENDIF()
IF( HOST MATCHES .*-.*-aix.*|.*-.*-cygwin.*|.*-.*-freebsd.*|.*-.*-haiku.*|.*-.*-hpux11.*|.*-.*-irix.*|.*-.*-kfreebsd.*-gnu|.*-.*-.*linux.*|.*-.*-netbsd.*|.*-.*-openbsd.*|.*-.*-osf.*|.*-.*-solaris.*)
IF(enable_handle_fork)
ADD_DEFINITIONS("-DHANDLE_FORK")
ENDIF(enable_handle_fork)
ENDIF()
IF ( HOST MATCHES .*-.*-cygwin.*)
SET(SRC ${SRC} win32_threads.c)
ENDIF()
IF ( HOST MATCHES .*-.*-darwin.*)
IF(enable_handle_fork)
# The incremental mode conflicts with fork handling.
IF(enable_parallel_mark)
ADD_DEFINITIONS("-DHANDLE_FORK")
ENDIF(enable_parallel_mark)
ENDIF(enable_handle_fork)
SET(SRC ${SRC} darwin_stop_world.c)
#TODO
#darwin_threads=true
ENDIF()
ENDIF(CMAKE_USE_PTHREADS_INIT)
IF(CMAKE_USE_WIN32_THREADS_INIT)
ADD_DEFINITIONS("-DGC_THREADS")
IF(enable_parallel_mark)
ADD_DEFINITIONS("-DPARALLEL_MARK")
IF(enable_thread_local_alloc)
ADD_DEFINITIONS("-DTHREAD_LOCAL_ALLOC")
SET(SRC ${SRC} thread_local_alloc.c)
ENDIF(enable_thread_local_alloc)
ENDIF()
ADD_DEFINITIONS("-DEMPTY_GETENV_RESULTS") #TODO test
SET(SRC ${SRC} win32_threads.c)
ENDIF(CMAKE_USE_WIN32_THREADS_INIT)
OPTION(enable_gcj_support "Support for gcj" ON)
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)
OPTION(enable_disclaim "Support alternative finalization interface" ON)
IF(enable_disclaim)
ADD_DEFINITIONS("-DENABLE_DISCLAIM")
SET(SRC ${SRC} fnlz_mlc.c)
ENDIF(enable_disclaim)
OPTION(enable_java_finalization "Support for java finalization" ON)
IF(enable_java_finalization)
ADD_DEFINITIONS("-DJAVA_FINALIZATION")
ENDIF(enable_java_finalization)
OPTION(enable_atomic_uncollectable "Support for atomic uncollectible allocation" ON)
IF(enable_atomic_uncollectable)
ADD_DEFINITIONS("-DGC_ATOMIC_UNCOLLECTABLE")
ENDIF(enable_atomic_uncollectable)
OPTION(enable_gc_debug "Support for pointer back-tracing" NO)
IF(enable_gc_debug)
ADD_DEFINITIONS("-DDBG_HDRS_ALL -DKEEP_BACK_PTRS")
IF (HOST MATCHES ia64-.*-linux.*|i586-.*-linux.*|i686-.*-linux.*|x86-.*-linux.*|x86_64-.*-linux.*)
ADD_DEFINITIONS("-DMAKE_BACK_GRAPH")
ADD_DEFINITIONS("-DSAVE_CALL_COUNT=8")
SET(SRC ${SRC} backgraph.c)
ENDIF()
IF (HOST MATCHES i.86-.*-dgux.*)
ADD_DEFINITIONS("-DMAKE_BACK_GRAPH")
SET(SRC ${SRC} backgraph.c)
ENDIF()
ENDIF(enable_gc_debug)
OPTION(enable_redirect_malloc "Redirect malloc and friends to GC routines" NO)
IF(enable_redirect_malloc)
IF(enable_gc_debug)
ADD_DEFINITIONS("-DREDIRECT_MALLOC=GC_debug_malloc_replacement")
ADD_DEFINITIONS("-DREDIRECT_REALLOC=GC_debug_realloc_replacement")
ADD_DEFINITIONS("-DREDIRECT_FREE=GC_debug_free")
ELSE(enable_gc_debug)
ADD_DEFINITIONS("-DREDIRECT_MALLOC=GC_malloc")
ENDIF(enable_gc_debug)
ADD_DEFINITIONS("-DGC_USE_DLOPEN_WRAP")
ENDIF(enable_redirect_malloc)
OPTION(enable_munmap "Return page to the OS if empty for N collections" ON)
IF(enable_munmap)
ADD_DEFINITIONS("-DUSE_MMAP -DUSE_MUNMAP")
ENDIF(enable_munmap)
OPTION(enable_large_config "Optimize for large heap or root set" NO)
IF(enable_large_config)
ADD_DEFINITIONS("-DLARGE_CONFIG")
ENDIF(enable_large_config)
OPTION(enable_gc_assertions "Enable collector-internal assertion checking" NO)
IF(enable_gc_assertions)
ADD_DEFINITIONS("-DGC_ASSERTIONS")
ENDIF(enable_gc_assertions)
OPTION(enable_checksums "Report erroneously cleared dirty bits" NO)
IF(enable_checksums)
IF(enable_munmap OR enable_threads)
MESSAGE("CHECKSUMS not compatible with USE_MUNMAP or threads")
ENDIF(enable_threads)
ADD_DEFINITIONS("-DCHECKSUMS")
SET(SRC ${SRC} checksums.c)
ENDIF(enable_checksums)
ADD_LIBRARY( gc-lib STATIC ${SRC})
SET_TARGET_PROPERTIES(gc-lib PROPERTIES
COMPILE_DEFINITIONS GC_NOT_DLL)
#TODO TARGET_LINK_LIBRARIES(... ... ${LIBS})
ADD_LIBRARY( gcmt-lib STATIC ${SRC})
SET_TARGET_PROPERTIES(gcmt-lib PROPERTIES
COMPILE_DEFINITIONS GC_NOT_DLL)
ADD_LIBRARY( gcmt-dll SHARED ${SRC})
IF(WIN32)
ADD_EXECUTABLE(cord cord/cordbscs.c cord/cordxtra.c
cord/tests/de.c cord/tests/de_win.c)
SET_TARGET_PROPERTIES(cord PROPERTIES WIN32_EXECUTABLE TRUE)
SET_TARGET_PROPERTIES(cord PROPERTIES
COMPILE_DEFINITIONS GC_NOT_DLL)
TARGET_LINK_LIBRARIES(cord gc-lib)
TARGET_LINK_LIBRARIES(cord gdi32)
ENDIF(WIN32)
ADD_SUBDIRECTORY(tests)

View File

@@ -0,0 +1 @@
579e32a39ae8281dec28a8c6e7eaf77278f69927

2588
external/bdwgc/Makefile vendored Normal file

File diff suppressed because it is too large Load Diff

242
external/bdwgc/Makefile.am vendored Normal file
View File

@@ -0,0 +1,242 @@
# Copyright (c) 1999-2001 by Red Hat, Inc. All rights reserved.
#
# THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
# OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
#
# Permission is hereby granted to use or copy this program
# for any purpose, provided the above notices are retained on all copies.
# Permission to modify the code and to distribute modified code is granted,
# provided the above notices are retained, and a notice that the code was
# modified is included with the above copyright notice.
## 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 = 5:0:4
LIBGCCPP_VER_INFO = 4:0:3
## FIXME: `make distcheck' in this directory will not currently work.
## This is most likely to the explicit flags passed to submakes.
# We currently use the source files directly from libatomic_ops, if we
# 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 to be no real reason to recursively build in the
# libatomic_ops directory.
# if USE_INTERNAL_LIBATOMICS_OPS
# SUBDIRS = @maybe_libatomic_ops@
# else
# SUBDIRS =
# endif
SUBDIRS =
ACLOCAL_AMFLAGS = -I m4
AM_CPPFLAGS = \
-I$(top_builddir)/include -I$(top_srcdir)/include \
$(ATOMIC_OPS_CFLAGS)
# Initialize variables so that we can declare files locally.
EXTRA_DIST =
noinst_LTLIBRARIES =
include_HEADERS =
pkginclude_HEADERS =
dist_noinst_HEADERS =
check_PROGRAMS =
check_LTLIBRARIES =
TESTS =
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = bdw-gc.pc
# C Library
# ---------
noinst_LTLIBRARIES += libgc.la
noinst_LTLIBRARIES += libgc-static.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 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 ptr_chck.c reclaim.c specific.c typd_mlc.c
# C Library: Architecture Dependent
# ---------------------------------
if WIN32_THREADS
libgc_la_SOURCES += win32_threads.c
else
if PTHREADS
# Not Cygwin or MinGW.
libgc_la_SOURCES += pthread_start.c pthread_support.c
if DARWIN_THREADS
libgc_la_SOURCES += darwin_stop_world.c
else
libgc_la_SOURCES += pthread_stop_world.c
endif
endif
endif
if THREAD_LOCAL_ALLOC
libgc_la_SOURCES += thread_local_alloc.c
endif
if MAKE_BACK_GRAPH
libgc_la_SOURCES += backgraph.c
endif
if CHECKSUMS
libgc_la_SOURCES += checksums.c
endif
if ENABLE_DISCLAIM
libgc_la_SOURCES += fnlz_mlc.c
endif
# End of !SINGLE_GC_OBJ
endif
libgc_static_la_SOURCES = $(libgc_la_SOURCES)
if USE_INTERNAL_LIBATOMIC_OPS
nodist_libgc_la_SOURCES = libatomic_ops/src/atomic_ops.c
endif
if NEED_ATOMIC_OPS_ASM
nodist_libgc_la_SOURCES = libatomic_ops/src/atomic_ops_sysdeps.S
endif
nodist_libgc_static_la_SOURCES = $(nodist_libgc_la_SOURCES)
# Include THREADDLLIBS here to ensure that the correct versions of
# 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 $(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
libgc_static_la_LIBADD = $(libgc_la_LIBADD)
libgc_static_la_DEPENDENCIES = $(libgc_la_DEPENDENCIES)
libgc_static_la_LDFLAGS = -static
EXTRA_libgc_static_la_SOURCES = $(EXTRA_libgc_la_SOURCES)
# C++ Interface
# -------------
if CPLUSPLUS
noinst_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 $(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.
EXTRA_DIST += gc_cpp.cpp
# Misc
# ----
AM_CXXFLAGS = @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
#all_objs = @addobjs@ $(libgc_la_OBJECTS)
#$(all_objs) : include/private/gcconfig.h include/private/gc_priv.h \
#include/private/gc_hdrs.h include/gc.h include/gc_gcj.h \
#include/gc_pthread_redirects.h include/gc_config_macros.h \
#include/private/thread_local_alloc.h include/private_support.h \
#include/private/pthread_stop_world.h \
#include/gc_mark.h @addincludes@
## FIXME: we shouldn't have to do this, but automake forces us to.
## We use -Wp,-P to strip #line directives. Irix `as' chokes on
## these.
if ASM_WITH_CPP_UNSUPPORTED
ASM_CPP_OPTIONS =
else
ASM_CPP_OPTIONS = -Wp,-P -x assembler-with-cpp
endif
.s.lo:
$(LTCOMPILE) $(ASM_CPP_OPTIONS) -c $<
.S.lo:
$(LTCOMPILE) $(ASM_CPP_OPTIONS) -c $<
## We need to add DEFS to assembler flags
## :FIXME: what if assembler does not accept -D... ?
## (use Autoconf to prepare ASDEFS?)
CCASFLAGS += $(DEFS)
# headers which are not installed
# (see include/include.am for more)
#
# documentation which is not installed
#
EXTRA_DIST += README.QUICK
# other makefiles
# :GOTCHA: deliberately we do not include 'Makefile'
EXTRA_DIST += BCC_MAKEFILE NT_MAKEFILE \
OS2_MAKEFILE PCR-Makefile digimars.mak \
Makefile.direct SMakefile.amiga WCC_MAKEFILE autogen.sh \
CMakeLists.txt tests/CMakeLists.txt
# files used by makefiles other than Makefile.am
#
EXTRA_DIST += tools/if_mach.c tools/if_not_there.c tools/setjmp_t.c \
tools/threadlibs.c gc.mak extra/MacOS.c extra/AmigaOS.c \
extra/symbian/global_end.cpp extra/symbian/global_start.cpp \
extra/symbian/init_global_static_roots.cpp extra/symbian.cpp \
extra/pcr_interface.c extra/real_malloc.c \
build/s60v3/bld.inf build/s60v3/libgc.mmp \
extra/Mac_files/datastart.c extra/Mac_files/dataend.c \
extra/Mac_files/MacOS_config.h \
include/private/msvc_dbg.h extra/msvc_dbg.c tools/callprocs.sh
#
# :GOTCHA: GNU make rule for making .s out of .S is flawed,
# it will not remove dest if building fails
.S.s:
if $(CPP) $< >$@ ; then :; else rm -f $@; fi
include include/include.am
include cord/cord.am
include tests/tests.am
include doc/doc.am
# Putting these at the top causes cord to be built first, and not find libgc.a
# on HP/UX. There may be a better fix.
# dummy target for mono build
test-bundle:

417
external/bdwgc/Makefile.direct vendored Normal file
View File

@@ -0,0 +1,417 @@
# This is the original manually generated Makefile. It may still be used
# to build the collector.
#
# Primary targets:
# gc.a - builds basic library
# c++ - adds C++ interface to library
# cords - adds cords (heavyweight strings) to library
# check - prints porting information, then builds basic version of gc.a,
# and runs some tests of collector and cords. Does not add cords or
# c++ interface to gc.a
# check-cpp - runs C++ test without adding C++ (and cords) interface to gc.a
# cord/de - builds dumb editor based on cords.
ABI_FLAG=
# ABI_FLAG should be the cc flag that specifies the ABI. On most
# platforms this will be the empty string. Possible values:
# +DD64 for 64-bit executable on HP/UX.
# -n32, -n64, -o32 for SGI/MIPS ABIs.
AS_ABI_FLAG=$(ABI_FLAG)
# ABI flag for assembler. On HP/UX this is +A64 for 64 bit
# executables.
CC=cc $(ABI_FLAG)
# Compiler executable name. For EMX, replace to "gcc".
CXX=g++ $(ABI_FLAG)
# Needed only for "make c++", which adds the c++ interface.
AS=as $(AS_ABI_FLAG)
# The above doesn't work with gas, which doesn't run cpp.
# Define AS as `gcc -c -x assembler-with-cpp' instead.
# Under Irix 6, you have to specify the ABI (-o32, -n32, or -64)
# if you use something other than the default ABI on your machine.
LD=ld
# Redefining srcdir allows object code for the nonPCR version of the collector
# to be generated in different directories.
srcdir= .
VPATH= $(srcdir)
# Path to atomic_ops source.
AO_SRC_DIR=$(srcdir)/libatomic_ops
CFLAGS_EXTRA=
# We need CFLAGS_FOR_PIC because we might be building a shared library.
CFLAGS= -O -I$(srcdir)/include -I$(AO_SRC_DIR)/src \
-DGC_ATOMIC_UNCOLLECTABLE -DNO_EXECUTE_PERMISSION -DALL_INTERIOR_POINTERS \
-DENABLE_DISCLAIM $(CFLAGS_FOR_PIC) $(CFLAGS_EXTRA)
# To build the collector with threads support, add to the above:
# -DGC_THREADS -DPARALLEL_MARK -DTHREAD_LOCAL_ALLOC
#
# To build the preload library that intercepts malloc, add:
# -DGC_USE_DLOPEN_WRAP -DREDIRECT_MALLOC=GC_malloc -fpic
# HOSTCC and HOSTCFLAGS are used to build executables that will be run as
# part of the build process, i.e. on the build machine. These will usually
# be the same as CC and CFLAGS, except in a cross-compilation environment.
# Note that HOSTCFLAGS should include any -D flags that affect thread support.
HOSTCC=$(CC)
HOSTCFLAGS=$(CFLAGS)
# For dynamic library builds, it may be necessary to add flags to generate
# PIC code, e.g. -fPIC on Linux.
# Setjmp_test may yield overly optimistic results when compiled
# without optimization.
# Look into doc/README.macros for the description of the "define arguments"
# influencing the collector configuration.
CXXFLAGS= $(CFLAGS)
AR= ar
RANLIB= ranlib
# For EMX, replace "ranlib" with "ar s".
OBJS= alloc.o reclaim.o allchblk.o misc.o mach_dep.o os_dep.o mark_rts.o \
headers.o mark.o obj_map.o blacklst.o finalize.o new_hblk.o dbg_mlc.o \
malloc.o checksums.o pthread_support.o pthread_stop_world.o \
darwin_stop_world.o typd_mlc.o ptr_chck.o mallocx.o gcj_mlc.o specific.o \
gc_dlopen.o backgraph.o win32_threads.o pthread_start.o \
thread_local_alloc.o fnlz_mlc.o atomic_ops.o atomic_ops_sysdeps.o
CSRCS= reclaim.c allchblk.c misc.c alloc.c mach_dep.c os_dep.c mark_rts.c \
headers.c mark.c obj_map.c blacklst.c finalize.c \
new_hblk.c dyn_load.c dbg_mlc.c malloc.c \
checksums.c pthread_support.c pthread_stop_world.c darwin_stop_world.c \
typd_mlc.c ptr_chck.c mallocx.c gcj_mlc.c specific.c gc_dlopen.c \
backgraph.c win32_threads.c pthread_start.c thread_local_alloc.c fnlz_mlc.c
CORD_SRCS= cord/cordbscs.c cord/cordxtra.c cord/cordprnt.c cord/tests/de.c \
cord/tests/cordtest.c include/cord.h include/ec.h \
include/cord_pos.h cord/tests/de_win.c cord/tests/de_win.h \
cord/tests/de_cmds.h cord/tests/de_win.rc
CORD_OBJS= cord/cordbscs.o cord/cordxtra.o cord/cordprnt.o
SRCS= $(CSRCS) \
include/gc.h include/gc_typed.h include/gc_tiny_fl.h \
include/gc_version.h include/private/gc_hdrs.h include/private/gc_priv.h \
include/private/gcconfig.h include/private/gc_pmark.h \
include/gc_inline.h include/gc_mark.h include/gc_disclaim.h \
tools/threadlibs.c tools/if_mach.c tools/if_not_there.c gc_cpp.cc \
include/gc_cpp.h include/weakpointer.h include/private/gc_locks.h \
include/new_gc_alloc.h include/gc_alloc_ptrs.h include/gc_allocator.h \
include/javaxfc.h \
include/gc_backptr.h include/gc_gcj.h include/private/dbg_mlc.h \
include/private/specific.h include/leak_detector.h \
include/gc_pthread_redirects.h include/private/gc_atomic_ops.h \
include/gc_config_macros.h include/private/pthread_support.h \
include/private/pthread_stop_world.h include/private/darwin_semaphore.h \
include/private/darwin_stop_world.h include/private/thread_local_alloc.h \
ia64_save_regs_in_stack.s sparc_mach_dep.S \
sparc_netbsd_mach_dep.s sparc_sunos4_mach_dep.s $(CORD_SRCS)
CORD_INCLUDE_FILES= $(srcdir)/include/gc.h $(srcdir)/include/cord.h \
$(srcdir)/include/ec.h $(srcdir)/include/cord_pos.h
# Executable file name extension. For EMX, specify ".exe".
EXEEXT=
UTILS= if_mach$(EXEEXT) if_not_there$(EXEEXT) threadlibs$(EXEEXT)
# Libraries needed for curses applications. Only needed for de.
# It might also require -ltermlib on some targets.
CURSES= -lcurses
# The following is irrelevant on most systems. But a few
# versions of make otherwise fork the shell specified in
# the SHELL environment variable.
SHELL= /bin/sh
SPECIALCFLAGS= -I$(srcdir)/include -I$(AO_SRC_DIR)/src $(CFLAGS_FOR_PIC)
# 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.
# Set SPECIALCFLAGS to -q nodirect_code on Encore.
all: base_lib gctest$(EXEEXT)
atomic_ops.o: $(AO_SRC_DIR)/src/atomic_ops.c
$(CC) $(CFLAGS) -c -o $@ $(AO_SRC_DIR)/src/atomic_ops.c
# For some reason, Solaris make does not handle "$<" properly.
atomic_ops_sysdeps.o: $(AO_SRC_DIR)/src/atomic_ops_sysdeps.S
$(CC) $(CFLAGS) -c -o $@ $(AO_SRC_DIR)/src/atomic_ops_sysdeps.S
LEAKFLAGS= $(CFLAGS) -DFIND_LEAK
BSD-pkg-all: bsd-libgc.a bsd-libleak.a
bsd-libgc.a:
$(MAKE) -f Makefile.direct CFLAGS="$(CFLAGS)" clean c++-t
mv gc.a bsd-libgc.a
bsd-libleak.a:
$(MAKE) -f Makefile.direct CFLAGS="$(LEAKFLAGS)" clean c++-nt
mv gc.a bsd-libleak.a
BSD-pkg-install: BSD-pkg-all
${CP} bsd-libgc.a libgc.a
${INSTALL_DATA} libgc.a ${PREFIX}/lib
${INSTALL_DATA} gc.h gc_cpp.h ${PREFIX}/include
${INSTALL_MAN} doc/gc.man ${PREFIX}/man/man3/gc.3
pcr: PCR-Makefile include/private/gc_private.h include/private/gc_hdrs.h \
include/private/gc_locks.h include/gc.h include/private/gcconfig.h \
mach_dep.o $(SRCS)
$(MAKE) -f PCR-Makefile depend
$(MAKE) -f PCR-Makefile
$(OBJS) tests/test.o dyn_load.o dyn_load_sunos53.o: \
$(srcdir)/include/private/gc_priv.h \
$(srcdir)/include/private/gc_hdrs.h $(srcdir)/include/private/gc_locks.h \
$(srcdir)/include/gc.h $(srcdir)/include/gc_pthread_redirects.h \
$(srcdir)/include/private/gcconfig.h $(srcdir)/include/gc_typed.h \
$(srcdir)/include/gc_config_macros.h
mark.o typd_mlc.o finalize.o ptr_chck.o: $(srcdir)/include/gc_mark.h \
$(srcdir)/include/private/gc_pmark.h
specific.o pthread_support.o thread_local_alloc.o win32_threads.o: \
$(srcdir)/include/private/specific.h $(srcdir)/include/gc_inline.h \
$(srcdir)/include/private/thread_local_alloc.h
dbg_mlc.o gcj_mlc.o: $(srcdir)/include/private/dbg_mlc.h
tests/test.o: tests $(srcdir)/tests/test.c
$(CC) $(CFLAGS) -c $(srcdir)/tests/test.c
mv test.o tests/test.o
tests:
mkdir tests
base_lib gc.a: $(OBJS) dyn_load.o $(UTILS)
rm -f dont_ar_1
./if_mach SPARC SOLARIS touch dont_ar_1
./if_mach SPARC SOLARIS $(AR) rus gc.a $(OBJS) dyn_load.o
./if_mach M68K AMIGA touch dont_ar_1
./if_mach M68K AMIGA $(AR) -vrus gc.a $(OBJS) dyn_load.o
./if_not_there dont_ar_1 || $(AR) ru gc.a $(OBJS) dyn_load.o
./if_not_there dont_ar_1 || $(RANLIB) gc.a || cat /dev/null
echo > base_lib
# Ignore ranlib failure; that usually means it doesn't exist, and
# isn't needed.
cords: $(CORD_OBJS) $(UTILS) base_lib
rm -f dont_ar_3
./if_mach SPARC SOLARIS touch dont_ar_3
./if_mach SPARC SOLARIS $(AR) rus gc.a $(CORD_OBJS)
./if_mach M68K AMIGA touch dont_ar_3
./if_mach M68K AMIGA $(AR) -vrus gc.a $(CORD_OBJS)
./if_not_there dont_ar_3 || $(AR) ru gc.a $(CORD_OBJS)
./if_not_there dont_ar_3 || $(RANLIB) gc.a || cat /dev/null
echo > cords
gc_cpp.o: $(srcdir)/gc_cpp.cc $(srcdir)/include/gc_cpp.h $(srcdir)/include/gc.h
$(CXX) -c $(CXXFLAGS) $(srcdir)/gc_cpp.cc
test_cpp$(EXEEXT): $(srcdir)/tests/test_cpp.cc $(srcdir)/include/gc_cpp.h \
$(srcdir)/include/gc.h gc_cpp.o base_lib $(UTILS)
rm -f test_cpp$(EXEEXT)
./if_mach HP_PA HPUX $(CXX) $(CXXFLAGS) -o test_cpp $(srcdir)/tests/test_cpp.cc gc_cpp.o gc.a -ldld `./threadlibs`
./if_not_there test_cpp$(EXEEXT) || $(CXX) $(CXXFLAGS) -o test_cpp$(EXEEXT) $(srcdir)/tests/test_cpp.cc gc_cpp.o gc.a `./threadlibs`
check-cpp: test_cpp$(EXEEXT)
./test_cpp
c++-t: c++ test_cpp$(EXEEXT)
./test_cpp 1
c++-nt: c++
@echo "Use ./test_cpp 1 to test the leak library"
c++: gc_cpp.o $(srcdir)/include/gc_cpp.h base_lib $(UTILS)
rm -f dont_ar_4
./if_mach SPARC SOLARIS touch dont_ar_4
./if_mach SPARC SOLARIS $(AR) rus gc.a gc_cpp.o
./if_mach M68K AMIGA touch dont_ar_4
./if_mach M68K AMIGA $(AR) -vrus gc.a gc_cpp.o
./if_not_there dont_ar_4 || $(AR) ru gc.a gc_cpp.o
./if_not_there dont_ar_4 || $(RANLIB) gc.a || cat /dev/null
echo > c++
dyn_load_sunos53.o: dyn_load.c
$(CC) $(CFLAGS) -DSUNOS53_SHARED_LIB -c $(srcdir)/dyn_load.c -o $@
# SunOS5 shared library version of the collector
sunos5gc.so: $(OBJS) dyn_load_sunos53.o
$(CC) -G -o sunos5gc.so $(OBJS) dyn_load_sunos53.o -ldl
ln sunos5gc.so libgc.so
# Alpha/OSF shared library version of the collector
libalphagc.so: $(OBJS)
$(LD) -shared -o libalphagc.so $(OBJS) dyn_load.o -lc
ln libalphagc.so libgc.so
# IRIX shared library version of the collector
libirixgc.so: $(OBJS) dyn_load.o
$(LD) -shared $(ABI_FLAG) -o libirixgc.so $(OBJS) dyn_load.o -lc
ln libirixgc.so libgc.so
# Linux shared library version of the collector
liblinuxgc.so: $(OBJS) dyn_load.o
gcc -shared -o liblinuxgc.so $(OBJS) dyn_load.o
ln liblinuxgc.so libgc.so
# Build gctest with dynamic library
dyn_test:
$(CC) $(CFLAGS) -o gctest$(EXEEXT) tests/test.c libgc.so `./threadlibs`
./gctest
# Alternative Linux rule. This is preferable, but is likely to break the
# Makefile for some non-linux platforms.
# LIBOBJS= $(patsubst %.o, %.lo, $(OBJS))
#
#.SUFFIXES: .lo $(SUFFIXES)
#
#.c.lo:
# $(CC) $(CFLAGS) $(CPPFLAGS) -fPIC -c $< -o $@
#
# liblinuxgc.so: $(LIBOBJS) dyn_load.lo
# gcc -shared -Wl,-soname=libgc.so.0 -o libgc.so.0 $(LIBOBJS) dyn_load.lo
# touch liblinuxgc.so
mach_dep.o: $(srcdir)/mach_dep.c $(srcdir)/sparc_mach_dep.S \
$(srcdir)/sparc_sunos4_mach_dep.s \
$(srcdir)/ia64_save_regs_in_stack.s \
$(srcdir)/sparc_netbsd_mach_dep.s $(UTILS)
rm -f mach_dep.o
./if_mach SPARC SOLARIS $(CC) -c -o mach_dep2.o $(srcdir)/sparc_mach_dep.S
./if_mach SPARC OPENBSD $(AS) -o mach_dep2.o $(srcdir)/sparc_sunos4_mach_dep.s
./if_mach SPARC NETBSD $(AS) -o mach_dep2.o $(srcdir)/sparc_netbsd_mach_dep.s
./if_mach SPARC "" $(CC) -c -o mach_dep1.o $(SPECIALCFLAGS) $(srcdir)/mach_dep.c
./if_mach SPARC "" $(LD) -r -o mach_dep.o mach_dep1.o mach_dep2.o
./if_mach IA64 "" $(AS) -o ia64_save_regs_in_stack.o $(srcdir)/ia64_save_regs_in_stack.s
./if_mach IA64 "" $(CC) -c -o mach_dep1.o $(SPECIALCFLAGS) $(srcdir)/mach_dep.c
./if_mach IA64 "" $(LD) -r -o mach_dep.o mach_dep1.o ia64_save_regs_in_stack.o
-./if_not_there mach_dep.o || $(CC) -c $(SPECIALCFLAGS) $(srcdir)/mach_dep.c
-./if_not_there mach_dep.o || `cygpath -w /bin/sh` $(CC) -c $(SPECIALCFLAGS) $(srcdir)/mach_dep.c
-./if_not_there mach_dep.o || /bin/sh $(CC) -c $(SPECIALCFLAGS) $(srcdir)/mach_dep.c
mark_rts.o: $(srcdir)/mark_rts.c $(UTILS)
rm -f mark_rts.o
-./if_mach ALPHA OSF1 $(CC) -c $(CFLAGS) -Wo,-notail $(srcdir)/mark_rts.c
-./if_not_there mark_rts.o || $(CC) -c $(CFLAGS) $(srcdir)/mark_rts.c
-./if_not_there mark_rts.o || `cygpath -w /bin/sh` $(CC) -c $(CFLAGS) $(srcdir)/mark_rts.c
-./if_not_there mark_rts.o || /bin/sh $(CC) -c $(CFLAGS) $(srcdir)/mark_rts.c
# Work-around for DEC optimizer tail recursion elimination bug.
# The ALPHA-specific line should be removed if gcc is used.
alloc.o: include/gc_version.h
cord/cordbscs.o: $(srcdir)/cord/cordbscs.c $(CORD_INCLUDE_FILES)
$(CC) $(CFLAGS) -c -I$(srcdir) $(srcdir)/cord/cordbscs.c
mkdir cord || cat /dev/null
mv cordbscs.o cord/cordbscs.o
# not all compilers understand -o filename
cord/cordxtra.o: $(srcdir)/cord/cordxtra.c $(CORD_INCLUDE_FILES)
$(CC) $(CFLAGS) -c -I$(srcdir) $(srcdir)/cord/cordxtra.c
mkdir cord || cat /dev/null
mv cordxtra.o cord/cordxtra.o
cord/cordprnt.o: $(srcdir)/cord/cordprnt.c $(CORD_INCLUDE_FILES)
$(CC) $(CFLAGS) -c -I$(srcdir) $(srcdir)/cord/cordprnt.c
mkdir cord || cat /dev/null
mv cordprnt.o cord/cordprnt.o
cord/cordtest$(EXEEXT): $(srcdir)/cord/tests/cordtest.c $(CORD_OBJS) \
base_lib $(UTILS)
rm -f cord/cordtest$(EXEEXT)
./if_mach SPARC DRSNX $(CC) $(CFLAGS) -o cord/cordtest $(srcdir)/cord/tests/cordtest.c $(CORD_OBJS) gc.a -lucb
./if_mach HP_PA HPUX $(CC) $(CFLAGS) -o cord/cordtest $(srcdir)/cord/tests/cordtest.c $(CORD_OBJS) gc.a -ldld `./threadlibs`
./if_mach M68K AMIGA $(CC) $(CFLAGS) -UGC_AMIGA_MAKINGLIB -o cord/cordtest $(srcdir)/cord/tests/cordtest.c $(CORD_OBJS) gc.a `./threadlibs`
./if_not_there cord/cordtest$(EXEEXT) || $(CC) $(CFLAGS) -o cord/cordtest$(EXEEXT) $(srcdir)/cord/tests/cordtest.c $(CORD_OBJS) gc.a `./threadlibs`
cord/de: $(srcdir)/cord/tests/de.c cord/cordbscs.o cord/cordxtra.o base_lib \
$(UTILS)
rm -f cord/de
./if_mach SPARC DRSNX $(CC) $(CFLAGS) -o cord/de $(srcdir)/cord/tests/de.c cord/cordbscs.o cord/cordxtra.o gc.a -lcurses -ltermlib -lucb `./threadlibs`
./if_mach HP_PA HPUX $(CC) $(CFLAGS) -o cord/de $(srcdir)/cord/tests/de.c cord/cordbscs.o cord/cordxtra.o gc.a -lcurses -ltermlib -ldld `./threadlibs`
./if_mach POWERPC AIX $(CC) $(CFLAGS) -o cord/de $(srcdir)/cord/tests/de.c cord/cordbscs.o cord/cordxtra.o gc.a -lcurses
./if_mach POWERPC DARWIN $(CC) $(CFLAGS) -o cord/de $(srcdir)/cord/tests/de.c cord/cordbscs.o cord/cordxtra.o gc.a
./if_mach I386 LINUX $(CC) $(CFLAGS) -o cord/de $(srcdir)/cord/tests/de.c cord/cordbscs.o cord/cordxtra.o gc.a -lcurses `./threadlibs`
./if_mach ALPHA LINUX $(CC) $(CFLAGS) -o cord/de $(srcdir)/cord/tests/de.c cord/cordbscs.o cord/cordxtra.o gc.a -lcurses `./threadlibs`
./if_mach IA64 LINUX $(CC) $(CFLAGS) -o cord/de $(srcdir)/cord/tests/de.c cord/cordbscs.o cord/cordxtra.o gc.a -lcurses `./threadlibs`
./if_mach M68K AMIGA $(CC) $(CFLAGS) -UGC_AMIGA_MAKINGLIB -o cord/de $(srcdir)/cord/tests/de.c cord/cordbscs.o cord/cordxtra.o gc.a -lcurses
./if_not_there cord/de$(EXEEXT) || $(CC) $(CFLAGS) -o cord/de$(EXEEXT) $(srcdir)/cord/tests/de.c cord/cordbscs.o cord/cordxtra.o gc.a $(CURSES) `./threadlibs`
if_mach$(EXEEXT): $(srcdir)/tools/if_mach.c \
$(srcdir)/include/private/gcconfig.h
$(HOSTCC) $(HOSTCFLAGS) -o if_mach$(EXEEXT) $(srcdir)/tools/if_mach.c
threadlibs$(EXEEXT): $(srcdir)/tools/threadlibs.c \
$(srcdir)/include/private/gcconfig.h
$(HOSTCC) $(HOSTCFLAGS) -o threadlibs$(EXEEXT) $(srcdir)/tools/threadlibs.c
if_not_there$(EXEEXT): $(srcdir)/tools/if_not_there.c
$(HOSTCC) $(HOSTCFLAGS) -o if_not_there$(EXEEXT) $(srcdir)/tools/if_not_there.c
clean:
rm -f gc.a *.i *.o *.exe tests/*.o gctest gctest_dyn_link test_cpp \
setjmp_test mon.out gmon.out a.out core if_not_there if_mach \
base_lib c++ $(CORD_OBJS) cord/cordtest cord/de cords \
dont_ar_* threadlibs
-rm -f *~
gctest$(EXEEXT): tests/test.o base_lib $(UTILS)
rm -f gctest$(EXEEXT)
./if_mach SPARC DRSNX $(CC) $(CFLAGS) -o gctest tests/test.o gc.a -lucb
./if_mach HP_PA HPUX $(CC) $(CFLAGS) -o gctest tests/test.o gc.a -ldld `./threadlibs`
./if_mach M68K AMIGA $(CC) $(CFLAGS) -UGC_AMIGA_MAKINGLIB -o gctest tests/test.o gc.a `./threadlibs`
./if_not_there gctest$(EXEEXT) || $(CC) $(CFLAGS) -o gctest$(EXEEXT) tests/test.o gc.a `./threadlibs`
# 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$(EXEEXT): $(srcdir)/tools/setjmp_t.c $(srcdir)/include/gc.h \
$(UTILS)
$(CC) $(CFLAGS) -o setjmp_test$(EXEEXT) $(srcdir)/tools/setjmp_t.c
check: cord/cordtest$(EXEEXT) gctest$(EXEEXT) setjmp_test$(EXEEXT)
./setjmp_test
./gctest
cord/cordtest
# A synonym to "check" (for compatibility with older GC versions).
test: check
# BTL: added to test shared library version of collector.
# Currently works only under SunOS5. Requires GC_INIT call from statically
# loaded client code.
ABSDIR= `pwd`
gctest_dyn_link: tests/test.o libgc.so
$(CC) -L$(ABSDIR) -R$(ABSDIR) -o gctest_dyn_link tests/test.o -lgc -ldl -lthread
gctest_irix_dyn_link: tests/test.o libirixgc.so
$(CC) -L$(ABSDIR) -o gctest_irix_dyn_link tests/test.o -lirixgc
SYM_PREFIX-libgc=GC
reserved_namespace: $(SRCS)
for file in $(SRCS) tests/test.c tests/test_cpp.cc; do \
sed s/GC_/_GC_/g < $$file > tmp; \
cp tmp $$file; \
done
user_namespace: $(SRCS)
for file in $(SRCS) tests/test.c tests/test_cpp.cc; do \
sed s/_GC_/GC_/g < $$file > tmp; \
cp tmp $$file; \
done

View File

@@ -0,0 +1 @@
cad435e8eb70b051dc58c924236a9a3ef5b0a1a1

106
external/bdwgc/NT_MAKEFILE vendored Normal file
View File

@@ -0,0 +1,106 @@
# Makefile for Windows NT. Assumes Microsoft compiler.
# Use "nmake -f NT_MAKEFILE nodebug=1 all" for optimized versions of library,
# gctest and editor. Please adjust/uncomment CPU, CVTRES_CPU, GC_DLL, GC_LIB,
# CFLAGS_SPECIFIC, LINK_GC variables below for the desired configuration.
# For building x86 (32-bit) library:
CPU=i386
CVTRES_CPU=X86
#
# For building x64 (amd64) library:
#CPU=AMD64
#CVTRES_CPU=X64
!include <ntwin32.mak>
# For a static single-threaded collector library:
#CFLAGS_SPECIFIC=$(cvars) -DGC_NOT_DLL
#GC_DLL=
#GC_LIB=gc.lib
#LINK_GC=lib /out:$(GC_LIB)
#
# For a static multi-threaded collector library:
#CFLAGS_SPECIFIC=$(cvarsmt) -DGC_NOT_DLL -DGC_THREADS -DTHREAD_LOCAL_ALLOC -DPARALLEL_MARK
#GC_DLL=
#GC_LIB=gc.lib
#LINK_GC=lib /out:$(GC_LIB)
#
# For a dynamic 32-bit multi-threaded collector library:
CFLAGS_SPECIFIC=$(cvarsmt) -DGC_DLL -DGC_THREADS -DTHREAD_LOCAL_ALLOC -DPARALLEL_MARK
GC_DLL=gc.dll
GC_LIB=gc_dll.lib
#
# For a dynamic 64-bit multi-threaded collector library:
#CFLAGS_SPECIFIC=$(cvarsmt) -DGC_DLL -DGC_THREADS -DTHREAD_LOCAL_ALLOC -DPARALLEL_MARK
#GC_DLL=gc64.dll
#GC_LIB=gc64_dll.lib
LINK_DLL_FLAGS=kernel32.lib user32.lib \
/nologo /subsystem:windows /dll /incremental:no /pdb:"gc.pdb" \
/out:$(GC_DLL) /implib:$(GC_LIB)
# For a dynamic 32- or 64-bit multi-threaded collector library:
LINK_GC=link $(ldebug) $(LINK_DLL_FLAGS)
# Make sure that .cc is not viewed as a suffix. It is for VC++2005, but
# not earlier versions. We can deal with either, but not inconsistency.
.SUFFIXES:
.SUFFIXES: .obj .cpp .c
# Atomic_ops installation directory. For win32, the source directory
# should do, since we only need the headers.
# We assume this was manually unpacked.
AO_SRC_DIR=libatomic_ops/src
AO_INCLUDE_DIR=$(AO_SRC_DIR)
OBJS= alloc.obj reclaim.obj allchblk.obj misc.obj mach_dep.obj os_dep.obj mark_rts.obj headers.obj mark.obj obj_map.obj blacklst.obj finalize.obj new_hblk.obj dbg_mlc.obj fnlz_mlc.obj malloc.obj dyn_load.obj typd_mlc.obj ptr_chck.obj gc_cpp.obj mallocx.obj win32_threads.obj extra\msvc_dbg.obj thread_local_alloc.obj
all: gctest.exe cord\de.exe test_cpp.exe
.c.obj:
$(cc) $(cdebug) $(cflags) $(CFLAGS_SPECIFIC) -Iinclude -I$(AO_INCLUDE_DIR) -DALL_INTERIOR_POINTERS -DENABLE_DISCLAIM -DCORD_NOT_DLL -D_CRT_SECURE_NO_DEPRECATE $*.c /Fo$*.obj /wd4100 /wd4127 /wd4701
# Disable crt security warnings, since unfortunately they warn about all sorts
# of safe uses of strncpy. It would be nice to leave the rest enabled.
.cpp.obj:
$(cc) $(cdebug) $(cflags) $(CFLAGS_SPECIFIC) -Iinclude -I$(AO_INCLUDE_DIR) -DALL_INTERIOR_POINTERS -D_CRT_SECURE_NO_DEPRECATE $*.cpp /Fo$*.obj
$(OBJS) tests\test.obj: include\private\gc_priv.h include\private\gc_hdrs.h include\gc.h include\private\gcconfig.h include\private\gc_locks.h include\private\gc_pmark.h include\gc_mark.h include\gc_disclaim.h include\private\msvc_dbg.h
$(GC_LIB): $(OBJS)
$(LINK_GC) /MACHINE:$(CPU) $(OBJS)
gctest.exe: tests\test.obj $(GC_LIB)
$(link) /MACHINE:$(CPU) $(ldebug) $(guiflags) -out:$*.exe tests\test.obj $(guilibs) $(GC_LIB)
# mapsympe -n -o gctest.sym gctest.exe
# This produces a GUI app that opens no window and writes to gctest.gc.log.
cord\tests\de_win.rbj: cord\tests\de_win.res
cvtres /MACHINE:$(CVTRES_CPU) /OUT:cord\tests\de_win.rbj cord\tests\de_win.res
cord\tests\de.obj cord\tests\de_win.obj: include\cord.h include\cord_pos.h cord\tests\de_win.h cord\tests\de_cmds.h
cord\tests\de_win.res: cord\tests\de_win.rc cord\tests\de_win.h cord\tests\de_cmds.h
$(rc) $(rcvars) -r -fo cord\tests\de_win.res cord\tests\de_win.rc
# Cord/de is a real win32 GUI app.
cord\de.exe: cord\cordbscs.obj cord\cordxtra.obj cord\tests\de.obj cord\tests\de_win.obj cord\tests\de_win.rbj $(GC_LIB)
$(link) /MACHINE:$(CPU) $(ldebug) $(guiflags) -out:cord\de.exe cord\cordbscs.obj cord\cordxtra.obj cord\tests\de.obj cord\tests\de_win.obj cord\tests\de_win.rbj $(GC_LIB) $(guilibs)
gc_cpp.obj: include\gc_cpp.h include\gc.h
test_cpp.cpp: tests\test_cpp.cc
copy tests\test_cpp.cc test_cpp.cpp
# This generates the C++ test executable. The executable expects
# a single numeric argument, which is the number of iterations.
# The output appears in test_cpp.gc.log file.
test_cpp.exe: test_cpp.obj include\gc_cpp.h include\gc.h $(GC_LIB)
$(link) /MACHINE:$(CPU) $(ldebug) $(guiflags) -out:test_cpp.exe test_cpp.obj $(GC_LIB) $(guilibs)
$(AO_SRC_DIR):
tar xvfz $(AO_SRC_DIR).tar.gz
clean:
del *.exe *.log *.obj *.pdb cord\*.exe cord\*.exp cord\*.lib cord\*.obj cord\*.pdb cord\tests\*.rbj cord\tests\*.res cord\tests\*.obj extra\*.obj gc*.lib gc*.dll gc*.exp test_cpp.cpp tests\*.obj 2> nul

45
external/bdwgc/OS2_MAKEFILE vendored Normal file
View File

@@ -0,0 +1,45 @@
# Makefile for OS/2. Assumes IBM's compiler, static linking, and a single thread.
# Adding dynamic linking support seems easy, but takes a little bit of work.
# Adding thread support may be nontrivial, since we haven't yet figured out how to
# look at another thread's registers.
# Significantly revised for GC version 4.4 by Mark Boulter (Jan 1994).
OBJS= alloc.obj reclaim.obj allchblk.obj misc.obj mach_dep.obj os_dep.obj mark_rts.obj headers.obj mark.obj obj_map.obj blacklst.obj finalize.obj new_hblk.obj dbg_mlc.obj fnlz_mlc.obj malloc.obj typd_mlc.obj ptr_chck.obj mallocx.obj
CORDOBJS= cord\cordbscs.obj cord\cordxtra.obj cord\cordprnt.obj
CC= icc
CFLAGS= /O /Q /DSMALL_CONFIG /DALL_INTERIOR_POINTERS /DENABLE_DISCLAIM
# Use /Ti instead of /O for debugging
# Setjmp_test may yield overly optimistic results when compiled
# without optimization.
all: $(OBJS) gctest.exe cord\cordtest.exe
$(OBJS) test.obj: include\private\gc_priv.h include\private\gc_hdrs.h include\gc.h include\private\gcconfig.h
## ERASE THE LIB FIRST - if it is already there then this command will fail
## (make sure its there or erase will fail!)
gc.lib: $(OBJS)
echo . > gc.lib
erase gc.lib
LIB gc.lib $(OBJS), gc.lst
mach_dep.obj: mach_dep.c
$(CC) $(CFLAGS) /C mach_dep.c
gctest.exe: test.obj gc.lib
$(CC) $(CFLAGS) /B"/STACK:524288" /Fegctest test.obj gc.lib
cord\cordbscs.obj: cord\cordbscs.c include\cord.h include\cord_pos.h
$(CC) $(CFLAGS) /C /Focord\cordbscs cord\cordbscs.c
cord\cordxtra.obj: cord\cordxtra.c include\cord.h include\cord_pos.h include\ec.h
$(CC) $(CFLAGS) /C /Focord\cordxtra cord\cordxtra.c
cord\cordprnt.obj: cord\cordprnt.c include\cord.h include\cord_pos.h include\ec.h
$(CC) $(CFLAGS) /C /Focord\cordprnt cord\cordprnt.c
cord\cordtest.exe: cord\tests\cordtest.c include\cord.h include\cord_pos.h include\ec.h $(CORDOBJS) gc.lib
$(CC) $(CFLAGS) /B"/STACK:65536" /Fecord\cordtest cord\tests\cordtest.c gc.lib $(CORDOBJS)

Some files were not shown because too many files have changed in this diff Show More