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

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)

47
external/bdwgc/PCR-Makefile vendored Normal file
View File

@@ -0,0 +1,47 @@
#
# Default target
#
default: gc.o
include ../config/common.mk
#
# compilation flags, etc.
#
CPPFLAGS = $(INCLUDE) $(CONFIG_CPPFLAGS) \
-DPCR_NO_RENAME -DPCR_NO_HOSTDEP_ERR
#CFLAGS = -DPCR $(CONFIG_CFLAGS)
CFLAGS = -DPCR -DENABLE_DISCLAIM $(CONFIG_CFLAGS)
SPECIALCFLAGS = # For code involving asm's
ASPPFLAGS = $(INCLUDE) $(CONFIG_ASPPFLAGS) \
-DPCR_NO_RENAME -DPCR_NO_HOSTDEP_ERR -DASM
ASFLAGS = $(CONFIG_ASFLAGS)
LDRFLAGS = $(CONFIG_LDRFLAGS)
LDFLAGS = $(CONFIG_LDFLAGS)
#
# BEGIN PACKAGE-SPECIFIC PART
#
# Fix to point to local pcr installation directory.
PCRDIR= ..
COBJ= alloc.o reclaim.o allchblk.o misc.o os_dep.o mark_rts.o headers.o mark.o obj_map.o blacklst.o finalize.o new_hblk.o extra/pcr_interface.o extra/real_malloc.o dyn_load.o dbg_mlc.o fnlz_mlc.o malloc.o checksums.o typd_mlc.o ptr_chck.o mallocx.o
CSRC= 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 extra/pcr_interface.c extra/real_malloc.c dyn_load.c dbg_mlc.c fnlz_mlc.c malloc.c checksums.c typd_mlc.c ptr_chck.c mallocx.c
SHELL= /bin/sh
default: gc.o
gc.o: $(COBJ) mach_dep.o
$(LDR) $(CONFIG_LDRFLAGS) -o gc.o $(COBJ) mach_dep.o
mach_dep.o: mach_dep.c
$(CC) -c $(SPECIALCFLAGS) mach_dep.c

83
external/bdwgc/README.QUICK vendored Normal file
View File

@@ -0,0 +1,83 @@
Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
Copyright (c) 1991-1995 by Xerox Corporation. All rights reserved.
Copyright (c) 1996-1999 by Silicon Graphics. All rights reserved.
Copyright (c) 1999-2001 by Hewlett-Packard. 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.
A few files have other copyright holders. A few of the files needed
to use the GNU-style build procedure come with a modified GPL license
that appears not to significantly restrict use of the collector, though
use of those files for a purpose other than building the collector may
require the resulting code to be covered by the GPL.
For more details and the names of other contributors, see the README.md,
doc/README.*, AUTHORS and include/gc.h files. These files describe typical
use of the collector on a machine that is already supported.
For the version number, see README.md or include/gc_version.h files.
INSTALLATION:
Under UN*X, Linux:
Alternative 1 (the old way): type "make -f Makefile.direct check".
Link against gc.a.
Alternative 2 (the new way): type
"./configure --prefix=<dir>; make; make check; make install".
Link against <dir>/lib/libgc.a or <dir>/lib/libgc.so.
See doc/README.autoconf for details
Under Windows 95, 98, Me, NT, or 2000:
copy the appropriate makefile to MAKEFILE, read it, and type "nmake test".
(Under Windows, this assumes you have Microsoft command-line tools
installed, and suitably configured.)
Read the machine specific README.XXX in the doc directory if one exists.
If you need thread support, you should define GC_THREADS as described in
doc/README.macros (configure defines this implicitly unless --disable-threads
option is given).
If you wish to use the cord (structured string) library with the stand-alone
Makefile.direct, type "make -f Makefile.direct cords". (You may need to
override CC specified in the Makefile. The CORD_printf implementation in
cordprnt.c is known to be less than perfectly portable. The rest of the
package should still work.) See include/cord.h for the API.
If you wish to use the collector from C++, type "make c++", or use
--enable-cplusplus with the configure script. With Makefile.direct,
these ones add further files to gc.a and to the include subdirectory.
With the alternate build process, this generates libgccpp.
See include/gc_cpp.h.
TYPICAL USE:
Include "gc.h" from the include subdirectory. Link against the
appropriate library ("gc.a" under UN*X). Replace calls to malloc
by calls to GC_MALLOC, and calls to realloc by calls to GC_REALLOC.
If the object is known to never contain pointers, use GC_MALLOC_ATOMIC
instead of GC_MALLOC.
Define GC_DEBUG before including gc.h for additional checking.
More documentation on the collector interface can be found in README.md,
doc/gcinterface.md, include/gc.h, and other files in the doc directory.
WARNINGS:
Do not store the only pointer to an object in memory allocated
with system malloc, since the collector usually does not scan
memory allocated in this way.
Use with threads may be supported on your system, but requires the
collector to be built with thread support. See Makefile. The collector
does not guarantee to scan thread-local storage (e.g. of the kind
accessed with pthread_getspecific()). The collector does scan
thread stacks though, so generally the best solution is to ensure that
any pointers stored in thread-local storage are also stored on the
thread's stack for the duration of their lifetime.

596
external/bdwgc/README.md vendored Normal file

File diff suppressed because it is too large Load Diff

172
external/bdwgc/SMakefile.amiga vendored Normal file
View File

@@ -0,0 +1,172 @@
# Rewritten smakefile for amiga / sas/c. -Kjetil M.
# Don't use the cord-package if you define parm=both or parm=reg.
#----------------TOOLS--------------------------------
CC=sc
LINKER=slink
LIBER=oml
#----------------CPU OPTIONS--------------------------
CPU=68060
#----------------FPU OPTIONS--------------------------
MATH=8
MATHLIB=LIB:scm881.lib
#----------------COMPILER OPTIONS---------------------
IGNORE= IGNORE=85 IGNORE=154 IGNORE=161 IGNORE=100
OPTIMIZE=optimize optimizetime optglobal optimizerdepth=100 optimizerpeephole optloop OPTSCHED optimizerinlocal optimizerrecurdepth=100
# optimizerinline optimizercomplexity=100
OPT= $(OPTIMIZE) CPU=$(CPU) math=$(MATH) NOSTACKCHECK VERBOSE \
MAPHUNK NOVERSION NOICONS nodebug \
parm=reg \
DEFINE __USE_SYSBASE
SOPT= $(OPT) $(IGNORE) \
DEFINE AMIGA_SKIP_SEG \
DEFINE GC_ATOMIC_UNCOLLECTABLE \
DEFINE GC_AMIGA_FASTALLOC \
DEFINE GC_AMIGA_RETRY \
DEFINE GC_AMIGA_PRINTSTATS \
DEFINE GC_AMIGA_GC
#DEFINE ALL_INTERIOR_POINTERS \
SCOPT= $(SOPT) define GC_AMIGA_MAKINGLIB
CSCOPT= $(OPT) DEFINE AMIGA IGNORE=100 IGNORE=161
#------------------LINKING----------------------------
all: gctest setjmp_t cord/cordtest
clean:
delete *.lib gctest setjmp_t *.o *.lnk cord/*.o cord/*.lib cord/*.lnk cord/cordtest
smake
test: setjmp_t gctest cord/cordtest
setjmp_t
gctest
cord/cordtest
gctest: gc$(CPU).lib GCAmigaOS$(CPU).lib test.o
$(LINKER) LIB:c.o test.o TO gctest LIB gc$(CPU).lib LIB:sc.lib $(MATHLIB)
setjmp_t: setjmp_t.o gc.h
$(LINKER) LIB:c.o setjmp_t.o to setjmp_t lib LIB:sc.lib
cord/cordtest: cord/cordtest.o cord/cord$(CPU).lib gc$(CPU).lib
slink LIB:c.o cord/cordtest.o LIB $(MATHLIB) gc$(CPU).lib cord/cord$(CPU).lib LIB:sc.lib TO cord/cordtest
#------------------LIBBING----------------------------
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 dyn_load.o dbg_mlc.o malloc.o checksums.o typd_mlc.o ptr_chck.o mallocx.o fnlz_mlc.o
gc$(CPU).lib: $(OBJS)
$(LIBER) gc$(CPU).lib r $(OBJS)
COBJS = cord/cordbscs.o cord/cordprnt.o cord/cordxtra.o
cord/cord$(CPU).lib: $(COBJS)
oml cord/cord$(CPU).lib r $(COBJS)
#------------------COMPILING--------------------------
INC= gc_private.h gc_hdrs.h gc.h gcconfig.h
alloc.o : alloc.c $(INC)
$(CC) alloc.c $(SCOPT) ignore=7
reclaim.o : reclaim.c $(INC)
$(CC) reclaim.c $(SCOPT)
allchblk.o : allchblk.c $(INC)
$(CC) allchblk.c $(SCOPT)
misc.o : misc.c $(INC)
$(CC) misc.c $(SCOPT)
os_dep.o : os_dep.c $(INC) extra/AmigaOS.c
$(CC) os_dep.c $(SCOPT)
mark_rts.o : mark_rts.c $(INC)
$(CC) mark_rts.c $(SCOPT)
headers.o : headers.c $(INC)
$(CC) headers.c $(SCOPT)
mark.o : mark.c $(INC)
$(CC) mark.c $(SCOPT)
obj_map.o : obj_map.c $(INC)
$(CC) obj_map.c $(SCOPT)
blacklst.o : blacklst.c $(INC)
$(CC) blacklst.c $(SCOPT)
finalize.o : finalize.c $(INC)
$(CC) finalize.c $(SCOPT) noopt
# Could sas/c still have problems with this one? Gctest sometimes fails to finalize all.
new_hblk.o : new_hblk.c $(INC)
$(CC) new_hblk.c $(SCOPT)
dyn_load.o : dyn_load.c $(INC)
$(CC) dyn_load.c $(SCOPT)
dbg_mlc.o : dbg_mlc.c $(INC)
$(CC) dbg_mlc.c $(SCOPT)
fnlz_mlc.o : fnlz_mlc.c $(INC)
$(CC) fnlz_mlc.c $(SCOPT)
malloc.o : malloc.c $(INC)
$(CC) malloc.c $(SCOPT)
mallocx.o : mallocx.c $(INC)
$(CC) mallocx.c $(SCOPT)
checksums.o : checksums.c $(INC)
$(CC) checksums.c $(SCOPT)
typd_mlc.o: typd_mlc.c $(INC)
$(CC) typd_mlc.c $(SCOPT)
mach_dep.o : mach_dep.c $(INC)
$(CC) mach_dep.c $(SCOPT)
ptr_chck.o: ptr_chck.c $(INC)
$(CC) ptr_chck.c $(SCOPT)
test.o : test.c $(INC)
$(CC) test.c $(SOPT)
setjmp_t: tools/setjmp_t.c gc.h
$(CC) tools/setjmp_t.c $(SOPT)
# cords:
cord/cordbscs.o: cord/cordbscs.c
sc cord/cordbscs.c $(CSCOPT)
cord/cordprnt.o: cord/cordprnt.c
sc cord/cordprnt.c $(CSCOPT)
cord/cordxtra.o: cord/cordxtra.c
sc cord/cordxtra.c $(CSCOPT)
cord/cordtest.o: cord/tests/cordtest.c
sc cord/tests/cordtest.c $(CSCOPT)

166
external/bdwgc/WCC_MAKEFILE vendored Normal file
View File

@@ -0,0 +1,166 @@
# Makefile for Watcom C/C++ 10.5, 10.6, 11.0 on NT, OS2 and DOS4GW.
# May work with Watcom 10.0.
# Uncomment one of the lines below for cross compilation.
SYSTEM=MSWIN32
#SYSTEM=DOS4GW
#SYSTEM=OS2
# The collector can be built either as dynamic or as static library.
# Select the library type you need.
#MAKE_AS_DLL=1
MAKE_AS_LIB=1
# Select calling conventions.
# Possible choices are r and s.
CALLING=s
# Select target CPU.
# Possible choices are 3, 4, 5, and 6.
# The last choice available only since version 11.0.
CPU=5
# Set optimization options.
# Watcom before 11.0 does not support option "-oh".
OPTIM=-oneatx -s
#OPTIM=-ohneatx -s
DEFS=-DALL_INTERIOR_POINTERS -DENABLE_DISCLAIM #-DSMALL_CONFIG #-DGC_DEBUG
#####
!ifndef SYSTEM
!ifdef __MSDOS__
SYSTEM=DOS4GW
!else ifdef __NT__
SYSTEM=MSWIN32
!else ifdef __OS2__
SYSTEM=OS2
!else
SYSTEM=Unknown
!endif
!endif
!define $(SYSTEM)
!ifdef DOS4GW
SYSFLAG=-DDOS4GW -bt=dos
!else ifdef MSWIN32
SYSFLAG=-DMSWIN32 -bt=nt
!else ifdef OS2
SYSFLAG=-DOS2 -bt=os2
!else
!error undefined or unsupported target platform: $(SYSTEM)
!endif
!ifdef MAKE_AS_DLL
DLLFLAG=-bd -DGC_DLL
TEST_DLLFLAG=-DGC_DLL
!else ifdef MAKE_AS_LIB
DLLFLAG=
TEST_DLLFLAG=
!else
!error Either MAKE_AS_LIB or MAKE_AS_DLL should be defined
!endif
CC=wcc386
CXX=wpp386
CFLAGS=-$(CPU)$(CALLING) $(OPTIM) -zp4 -zc $(SYSFLAG) $(DLLFLAG) $(DEFS)
CXXFLAGS= $(CFLAGS)
TEST_CFLAGS=-$(CPU)$(CALLING) $(OPTIM) -zp4 -zc $(SYSFLAG) $(TEST_DLLFLAG) $(DEFS)
TEST_CXXFLAGS= $(TEST_CFLAGS)
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 malloc.obj dyn_load.obj &
typd_mlc.obj ptr_chck.obj mallocx.obj fnlz_mlc.obj
all: gc.lib gctest.exe test_cpp.exe
!ifdef MAKE_AS_DLL
gc.lib: gc.dll gc_cpp.obj
*wlib -b -c -n -p=512 $@ +gc.dll +gc_cpp.obj
gc.dll: $(OBJS) .AUTODEPEND
@%create $*.lnk
!ifdef DOS4GW
@%append $*.lnk sys os2v2_dll
!else ifdef MSWIN32
@%append $*.lnk sys nt_dll
!else ifdef OS2
@%append $*.lnk sys os2v2_dll
!endif
@%append $*.lnk name $*
@for %i in ($(OBJS)) do @%append $*.lnk file '%i'
*wlink @$*.lnk
!else
gc.lib: $(OBJS) gc_cpp.obj
@%create $*.lb1
@for %i in ($(OBJS)) do @%append $*.lb1 +'%i'
@%append $*.lb1 +'gc_cpp.obj'
*wlib -b -c -n -p=512 $@ @$*.lb1
!endif
gctest.exe: test.obj gc.lib
%create $*.lnk
!ifdef DOS4GW
@%append $*.lnk sys dos4g
!else ifdef MSWIN32
@%append $*.lnk sys nt
!else ifdef OS2
@%append $*.lnk sys os2v2
!endif
@%append $*.lnk op case
@%append $*.lnk op stack=256K
@%append $*.lnk name $*
@%append $*.lnk file test.obj
@%append $*.lnk library gc.lib
*wlink @$*.lnk
test_cpp.exe: test_cpp.obj gc.lib
%create $*.lnk
!ifdef DOS4GW
@%append $*.lnk sys dos4g
!else ifdef MSWIN32
@%append $*.lnk sys nt
!else ifdef OS2
@%append $*.lnk sys os2v2
!endif
@%append $*.lnk op case
@%append $*.lnk op stack=256K
@%append $*.lnk name $*
@%append $*.lnk file test_cpp.obj
@%append $*.lnk library gc.lib
*wlink @$*.lnk
gc_cpp.obj: gc_cpp.cc .AUTODEPEND
$(CXX) $(TEST_CXXFLAGS) -iinclude $*.cc
test.obj: tests\test.c .AUTODEPEND
$(CC) $(TEST_CFLAGS) $*.c
test_cpp.obj: tests\test_cpp.cc .AUTODEPEND
$(CXX) $(TEST_CXXFLAGS) -iinclude $*.cc
.c.obj: .AUTODEPEND
$(CC) $(CFLAGS) $*.c
.cc.obj: .AUTODEPEND
$(CXX) $(CXXFLAGS) $*.cc
clean : .SYMBOLIC
@if exist *.obj del *.obj
@if exist *.map del *.map
@if exist *.lnk del *.lnk
@if exist *.lb1 del *.lb1
@if exist *.sym del *.sym
@if exist *.err del *.err
@if exist *.tmp del *.tmp
@if exist *.lst del *.lst
@if exist *.exe del *.exe
@if exist *.log del *.log
@if exist *.lib del *.lib
@if exist *.dll del *.dll

1214
external/bdwgc/aclocal.m4 vendored Normal file

File diff suppressed because it is too large Load Diff

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