diff options
author | jtb <jtb> | 2003-07-02 20:39:17 +0000 |
---|---|---|
committer | jtb <jtb> | 2003-07-02 20:39:17 +0000 |
commit | 6b7f2b0a10b25a30055d4efa3537604de6eccec2 (patch) | |
tree | afb83dfd4ddbc07bdee8c64907c9915cefde2da8 /math | |
parent | bec3a84820cb4a6555114d6b065aad4d44de4acd (diff) | |
download | pkgsrc-6b7f2b0a10b25a30055d4efa3537604de6eccec2.tar.gz |
Convert to use buildlink.
Diffstat (limited to 'math')
-rw-r--r-- | math/rlab/Makefile | 27 | ||||
-rw-r--r-- | math/rlab/distinfo | 14 | ||||
-rw-r--r-- | math/rlab/patches/patch-ab | 214 | ||||
-rw-r--r-- | math/rlab/patches/patch-ac | 10 | ||||
-rw-r--r-- | math/rlab/patches/patch-ad | 10 | ||||
-rw-r--r-- | math/rlab/patches/patch-ae | 10 | ||||
-rw-r--r-- | math/rlab/patches/patch-af | 216 | ||||
-rw-r--r-- | math/rlab/patches/patch-ag | 572 | ||||
-rw-r--r-- | math/rlab/patches/patch-ah | 742 | ||||
-rw-r--r-- | math/rlab/patches/patch-aj | 15 | ||||
-rw-r--r-- | math/rlab/patches/patch-an | 10 | ||||
-rw-r--r-- | math/rlab/patches/patch-ao | 10 |
12 files changed, 204 insertions, 1646 deletions
diff --git a/math/rlab/Makefile b/math/rlab/Makefile index 5ba8a90117c..2729b051608 100644 --- a/math/rlab/Makefile +++ b/math/rlab/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.14 2003/06/02 01:18:23 jschauma Exp $ +# $NetBSD: Makefile,v 1.15 2003/07/02 20:39:17 jtb Exp $ DISTNAME= rlab-2.1.05 PKGREVISION= 1 @@ -9,15 +9,10 @@ MAINTAINER= tech-pkg@netbsd.org HOMEPAGE= http://rlab.sourceforge.net/ COMMENT= Matrix oriented, interactive programming environment -DEPENDS+= boehm-gc>=5.3:../../devel/boehm-gc -DEPENDS+= readline>=4.0:../../devel/readline - +USE_BUILDLINK2= yes GNU_CONFIGURE= yes USE_FORTRAN= yes - -GC_PREFIX_DEFAULT= ${LOCALBASE} -EVAL_PREFIX+= GC_PREFIX=boehm-gc -CONFIGURE_ARGS+= --with-GC=${GC_PREFIX} +CONFIGURE_ARGS+= --enable-SUPERLU PLIST_SRC= ${PKGDIR}/PLIST @@ -46,17 +41,8 @@ CONFIGURE_ARGS+= --with-gnuplot=yes PLIST_SRC+= ${PKGDIR}/PLIST.gnuplot .endif -RLAB_USE_SUPERLU?= YES -.if (${RLAB_USE_SUPERLU} == YES) -DEPENDS+= superlu-[0-9]*:../../math/superlu -CONFIGURE_ARGS+= --enable-SUPERLU -CPPFLAGS+= ${BUILDLINK_CPPFLAGS.superlu} -.include "../../math/superlu/buildlink2.mk" -.endif - -.if defined(RLAB_PAGER) -CONFIGURE_ENV+= PAGER=${RLAB_PAGER} -.endif +post-extract: + ${RM} -r ${WRKSRC}/gc post-install: .if (${RLAB_PLOT_PKG} == "pgraf") @@ -66,4 +52,7 @@ post-install: ${PREFIX}/share/rlab/examples .endif +.include "../../devel/boehm-gc/buildlink2.mk" +.include "../../devel/readline/buildlink2.mk" +.include "../../math/superlu/buildlink2.mk" .include "../../mk/bsd.pkg.mk" diff --git a/math/rlab/distinfo b/math/rlab/distinfo index c7a57c65f02..fa2949427ad 100644 --- a/math/rlab/distinfo +++ b/math/rlab/distinfo @@ -1,22 +1,14 @@ -$NetBSD: distinfo,v 1.4 2003/01/28 01:18:21 uebayasi Exp $ +$NetBSD: distinfo,v 1.5 2003/07/02 20:39:17 jtb Exp $ SHA1 (rlab-2.1.05.tar.gz) = 5b465b45ac1225c89f8375fc0945c485c0b1fa4b Size (rlab-2.1.05.tar.gz) = 2767728 bytes SHA1 (patch-aa) = 6b177a66de9262c4f6fcd6fcd48bc897f3a7bbe2 -SHA1 (patch-ab) = d678a740394c6c929f3ced9fdad7dcf7b9a0a091 -SHA1 (patch-ac) = 44004dd04c217494dc556fe678c087b4a5a15cc2 -SHA1 (patch-ad) = 595ef1b4f1ebc21fbdf6b3fec61a9380f61936ca -SHA1 (patch-ae) = 3f16b832cc4ec6f82cb42bab0362e1d7fc941148 -SHA1 (patch-af) = 92cc77745527f0eda597671c6fadfb369b893135 -SHA1 (patch-ag) = bde812eea080e3e958810e57e873ad1e7bf5210b -SHA1 (patch-ah) = 1d4c39de7b924063578c35a61d8ad94981cdce6a +SHA1 (patch-ab) = 1199d0b1a6674670d59af1f3d9ab0d67c1584ab1 SHA1 (patch-ai) = f17edcd7a63861a23d415c73340095730168eae9 -SHA1 (patch-aj) = 8dace2aae69a7618203bc3860e9d2a1a3db5b5a0 +SHA1 (patch-aj) = cbae9f8163c4f680ee261d3440de0940c05f51ae SHA1 (patch-ak) = cd9e96103f90f80b92c26dd053032cfbec0dc512 SHA1 (patch-al) = 824c825d0ab47328ed43127a0680067c666a7ac0 SHA1 (patch-am) = efa48be1acecfee52d091d01eb68b07c72a8d0e2 -SHA1 (patch-an) = b489b9b02bd1a717f1312e88c827dbdbbca5b487 -SHA1 (patch-ao) = 203a9ba6e25a7e7d7e2aff60979f66e619c2160c SHA1 (patch-ap) = a96d358d5f44f92ea718abfadc74b88d9f0ae93e SHA1 (patch-aq) = 5dbb4b12bc2eb675b7e598b9806276d63695a4ee SHA1 (patch-ar) = bdb63186d7034e6d300e63a7cf94ac0d9b743ba8 diff --git a/math/rlab/patches/patch-ab b/math/rlab/patches/patch-ab index e89d896fe39..54858559859 100644 --- a/math/rlab/patches/patch-ab +++ b/math/rlab/patches/patch-ab @@ -1,38 +1,7 @@ -$NetBSD: patch-ab,v 1.6 2003/01/28 01:18:21 uebayasi Exp $ +$NetBSD: patch-ab,v 1.7 2003/07/02 20:39:17 jtb Exp $ ---- Makefile.in.orig Fri Apr 30 23:32:04 1999 +--- Makefile.in.orig +++ Makefile.in -@@ -99,20 +99,20 @@ - # -lfftpack FFTPACK library (double precision version) - # -lranlib RANLIB (random number generation) - # --LAPACK = ./flibs/lapack/liblapack.a --LAPACK_LIB = -L./flibs/lapack -llapack -+LAPACK = ./flibs/lapack/liblapack_rlab.a -+LAPACK_LIB = -L./flibs/lapack -llapack_rlab - --BLAS = ./flibs/blas/libblas.a --BLAS_LIB = -L./flibs/blas -lblas -+BLAS = ./flibs/blas/libblas_rlab.a -+BLAS_LIB = -L./flibs/blas -lblas_rlab - --FFTPACK = ./flibs/fftpack/libfftpack.a --FFTPACK_LIB = -L./flibs/fftpack -lfftpack -+FFTPACK = ./flibs/fftpack/libfftpack_rlab.a -+FFTPACK_LIB = -L./flibs/fftpack -lfftpack_rlab - --Ranlib = ./flibs/ranlib/src/libranlib.a --RANLIB_LIB = -L./flibs/ranlib/src -lranlib -+Ranlib = ./flibs/ranlib/src/libranlib_rlab.a -+RANLIB_LIB = -L./flibs/ranlib/src -lranlib_rlab - --Minpack = ./flibs/minpack/libminpack.a --MINPACK_LIB = -L./flibs/minpack -lminpack -+Minpack = ./flibs/minpack/libminpack_rlab.a -+MINPACK_LIB = -L./flibs/minpack -lminpack_rlab - - REQ_LIBS = $(LAPACK_LIB) $(BLAS_LIB) $(FFTPACK_LIB) $(RANLIB_LIB) $(MINPACK_LIB) - @@ -151,13 +151,13 @@ # Silicon Graphics machines need this for popen() # SPECIAL_FLAGS = -ansiposix @@ -184,3 +153,182 @@ $NetBSD: patch-ab,v 1.6 2003/01/28 01:18:21 uebayasi Exp $ FRC: +@@ -526,22 +542,21 @@ + # + + main.o: main.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ +- mem.h gc/gc.h code.h list.h symbol.h util.h rfile.h rfileio.h mdc.h \ ++ mem.h code.h list.h symbol.h util.h rfile.h rfileio.h mdc.h \ + complex.h bltin.h version.h getopt.h class.h bltin1.h bltin2.h \ +- bltin3.h msr.h rfft.h gc/gc_private.h gc/gc_priv.h gc/config.h \ +- gc/gc_hdrs.h fpe.h mathl.h ++ bltin3.h msr.h rfft.h fpe.h mathl.h + init.o: init.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ + symbol.h list.h util.h print.h bltin.h bltin1.h bltin2.h bltin3.h \ + msr.h rfft.h rfileio.h mdc.h complex.h rdl.h msrf2.h + code.o: code.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ +- code.h list.h symbol.h class.h mem.h gc/gc.h y.tab.h bltin.h \ ++ code.h list.h symbol.h class.h mem.h y.tab.h bltin.h \ + function.h util.h rfile.h mdc.h complex.h + symbol.o: symbol.c rlab.h config.h ent.h mds.h mdr.h btree.h \ +- listnode.h symbol.h list.h mem.h gc/gc.h function.h util.h ++ listnode.h symbol.h list.h mem.h function.h util.h + list.o: list.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ +- util.h list.h mem.h gc/gc.h ++ util.h list.h mem.h + listnode.o: listnode.c rlab.h config.h ent.h mds.h mdr.h btree.h \ +- listnode.h mem.h gc/gc.h util.h list.h ++ listnode.h mem.h util.h list.h + op.o: op.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h code.h \ + list.h symbol.h class.h util.h + opapp.o: opapp.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ +@@ -551,116 +566,116 @@ + complex.o: complex.c complex.h rlab.h config.h ent.h mds.h mdr.h \ + btree.h listnode.h util.h list.h mathl.h + function.o: function.c rlab.h config.h ent.h mds.h mdr.h btree.h \ +- listnode.h code.h list.h symbol.h function.h util.h mem.h gc/gc.h ++ listnode.h code.h list.h symbol.h function.h util.h mem.h + rel.o: rel.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ + code.h list.h symbol.h class.h util.h + util.o: util.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ +- code.h list.h symbol.h mem.h gc/gc.h bltin.h mdc.h complex.h \ ++ code.h list.h symbol.h mem.h bltin.h mdc.h complex.h \ + function.h sort.h fpe.h + btree.o: btree.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ +- class.h symbol.h list.h function.h util.h mem.h gc/gc.h ++ class.h symbol.h list.h function.h util.h mem.h + mm.o: mm.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ + complex.h + misc.o: misc.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h + fpe.o: fpe.c config.h + ent.o: ent.c ent.h mds.h rlab.h config.h listnode.h mdr.h btree.h \ +- class.h mem.h gc/gc.h util.h list.h ++ class.h mem.h util.h list.h + mathl.o: mathl.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ + mathl.h complex.h util.h list.h + rfileio.o: rfileio.c rlab.h config.h ent.h mds.h mdr.h btree.h \ +- listnode.h class.h symbol.h list.h bltin.h mem.h gc/gc.h util.h mdc.h \ ++ listnode.h class.h symbol.h list.h bltin.h mem.h util.h mdc.h \ + complex.h msr.h msc.h mathl.h + mdr.o: mdr.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ +- mem.h gc/gc.h mdrf2.h mdrf1.h mdc.h complex.h util.h list.h bltin1.h \ ++ mem.h mdrf2.h mdrf1.h mdc.h complex.h util.h list.h bltin1.h \ + bltin.h mathl.h fi.h bl.h + class.o: class.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ +- util.h list.h class.h mem.h gc/gc.h bltin.h function.h mdrf1.h mdc.h \ ++ util.h list.h class.h mem.h bltin.h function.h mdrf1.h mdc.h \ + complex.h mdcf1.h mdr_mdc.h mdsf1.h mdr_mds.h msr.h msrf1.h msrf2.h \ + msc.h mscf1.h mscf2.h + diss.o: diss.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ + code.h list.h symbol.h bltin.h print.h util.h + mdc.o: mdc.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ +- mem.h gc/gc.h mdc.h complex.h mdcf2.h mdcf1.h mdr_mdc.h util.h list.h \ ++ mem.h mdc.h complex.h mdcf2.h mdcf1.h mdr_mdc.h util.h list.h \ + bltin1.h bltin.h bl.h fi.h + mdr_mdc.o: mdr_mdc.c rlab.h config.h ent.h mds.h mdr.h btree.h \ +- listnode.h mem.h gc/gc.h mdrf1.h mdrf2.h mdc.h complex.h mdcf1.h \ ++ listnode.h mem.h mdrf1.h mdrf2.h mdc.h complex.h mdcf1.h \ + mdcf2.h util.h list.h + mds.o: mds.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ +- mem.h gc/gc.h util.h list.h bltin1.h bltin.h ++ mem.h util.h list.h bltin1.h bltin.h + mdr_mds.o: mdr_mds.c rlab.h config.h ent.h mds.h mdr.h btree.h \ +- listnode.h mem.h gc/gc.h util.h list.h ++ listnode.h mem.h util.h list.h + rfile.o: rfile.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ +- symbol.h list.h mem.h gc/gc.h util.h ++ symbol.h list.h mem.h util.h + bltin.o: bltin.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ +- symbol.h list.h mem.h gc/gc.h bltin.h util.h mathl.h complex.h \ ++ symbol.h list.h mem.h bltin.h util.h mathl.h complex.h \ + class.h rfileio.h mdc.h + bltin1.o: bltin1.c rlab.h config.h ent.h mds.h mdr.h btree.h \ +- listnode.h mem.h gc/gc.h bltin.h list.h util.h class.h rfileio.h \ ++ listnode.h mem.h bltin.h list.h util.h class.h rfileio.h \ + mdc.h complex.h mathl.h btreef1.h function.h mdrf1.h mdcf1.h \ + mdr_mdc.h mdsf1.h mdr_mds.h msr.h msrf1.h msc.h mscf1.h + mdrf1.o: mdrf1.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ +- mem.h gc/gc.h mdc.h complex.h util.h list.h mdrf1.h mathl.h symbol.h \ ++ mem.h mdc.h complex.h util.h list.h mdrf1.h mathl.h symbol.h \ + sort.h + print.o: print.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ +- symbol.h list.h bltin.h mem.h gc/gc.h util.h rfileio.h mdc.h \ ++ symbol.h list.h bltin.h mem.h util.h rfileio.h mdc.h \ + complex.h class.h scan.h + getline.o: getline.c rlab.h config.h ent.h mds.h mdr.h btree.h \ +- listnode.h symbol.h list.h mem.h gc/gc.h bltin.h util.h scan.h \ ++ listnode.h symbol.h list.h mem.h bltin.h util.h scan.h \ + print.h class.h rfileio.h mdc.h complex.h + random.o: random.c rlab.h config.h ent.h mds.h mdr.h btree.h \ + listnode.h bltin.h list.h util.h class.h symbol.h random.h fi.h \ + mdrf1.h + mdcf1.o: mdcf1.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ +- mem.h gc/gc.h mdc.h complex.h util.h list.h symbol.h mathl.h sort.h ++ mem.h mdc.h complex.h util.h list.h symbol.h mathl.h sort.h + mdsf1.o: mdsf1.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ +- mem.h gc/gc.h util.h list.h symbol.h mathl.h complex.h sort.h ++ mem.h util.h list.h symbol.h mathl.h complex.h sort.h + bltin2.o: bltin2.c rlab.h config.h ent.h mds.h mdr.h btree.h \ +- listnode.h mem.h gc/gc.h bltin.h list.h util.h class.h rfileio.h \ ++ listnode.h mem.h bltin.h list.h util.h class.h rfileio.h \ + mdc.h complex.h mathl.h function.h mdrf1.h mdrf2.h mdcf1.h mdcf2.h \ + mdr_mdc.h mdsf1.h mdr_mds.h msr.h msrf1.h msrf2.h msc.h mscf1.h \ + mscf2.h + mdrf2.o: mdrf2.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ +- mem.h gc/gc.h symbol.h list.h mdrf1.h mdc.h complex.h util.h mathl.h \ ++ mem.h symbol.h list.h mdrf1.h mdc.h complex.h util.h mathl.h \ + fi.h lp.h bl.h + mdcf2.o: mdcf2.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ +- mem.h gc/gc.h symbol.h list.h mdc.h complex.h mdcf1.h util.h mathl.h \ ++ mem.h symbol.h list.h mdc.h complex.h mdcf1.h util.h mathl.h \ + fi.h lp.h bl.h + rfft.o: rfft.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ +- mem.h gc/gc.h symbol.h list.h bltin.h mdc.h complex.h util.h class.h \ ++ mem.h symbol.h list.h bltin.h mdc.h complex.h util.h class.h \ + rfileio.h function.h mdrf1.h mdrf2.h mdcf1.h mdcf2.h mdr_mdc.h \ + mdsf1.h mdr_mds.h msr.h msrf1.h msc.h mscf1.h fftp.h fi.h + sort.o: sort.c + r_plot.o: r_plot.c config.h + rstring.o: rstring.c + rdl.o: rdl.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ +- symbol.h list.h bltin.h class.h util.h mem.h gc/gc.h ++ symbol.h list.h bltin.h class.h util.h mem.h + odei.o: odei.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ +- class.h symbol.h list.h mem.h gc/gc.h mdrf1.h bltin.h util.h mathl.h \ ++ class.h symbol.h list.h mem.h mdrf1.h bltin.h util.h mathl.h \ + complex.h function.h lp.h fi.h odei.h + btreef1.o: btreef1.c rlab.h config.h ent.h mds.h mdr.h btree.h \ +- listnode.h class.h symbol.h list.h function.h util.h mem.h gc/gc.h ++ listnode.h class.h symbol.h list.h function.h util.h mem.h + msr.o: msr.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ +- mem.h gc/gc.h msr.h util.h list.h bltin1.h bltin.h mathl.h complex.h \ ++ mem.h msr.h util.h list.h bltin1.h bltin.h mathl.h complex.h \ + fi.h sparse.h + msrf1.o: msrf1.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ +- mem.h gc/gc.h msr.h msc.h mdc.h complex.h mscf1.h mdrf1.h util.h \ ++ mem.h msr.h msc.h mdc.h complex.h mscf1.h mdrf1.h util.h \ + list.h symbol.h sort.h mathl.h fi.h sparse.h + bltin3.o: bltin3.c rlab.h config.h ent.h mds.h mdr.h btree.h \ +- listnode.h mem.h gc/gc.h bltin.h list.h util.h class.h rfileio.h \ ++ listnode.h mem.h bltin.h list.h util.h class.h rfileio.h \ + mdc.h complex.h function.h mdrf1.h mdrf2.h mdcf1.h mdcf2.h mdr_mdc.h \ + mdsf1.h mdr_mds.h msr.h msrf1.h msrf2.h msc.h mscf1.h mscf2.h + msc.o: msc.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ +- mem.h gc/gc.h msr.h msrf1.h mdc.h complex.h msc.h mdr_mdc.h util.h \ ++ mem.h msr.h msrf1.h mdc.h complex.h msc.h mdr_mdc.h util.h \ + list.h bltin1.h bltin.h mathl.h fi.h sparse.h + mscf1.o: mscf1.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ +- mem.h gc/gc.h msr.h msrf1.h mdc.h complex.h msc.h mdr_mdc.h util.h \ ++ mem.h msr.h msrf1.h mdc.h complex.h msc.h mdr_mdc.h util.h \ + list.h symbol.h sort.h mathl.h fi.h sparse.h + msrf2.o: msrf2.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ +- mem.h gc/gc.h msr.h msrf1.h mdc.h complex.h msc.h mscf1.h mscf2.h \ ++ mem.h msr.h msrf1.h mdc.h complex.h msc.h mscf1.h mscf2.h \ + mdrf1.h util.h list.h symbol.h sort.h mathl.h class.h fi.h sparse.h \ + mdrf2.h + mscf2.o: mscf2.c rlab.h config.h ent.h mds.h mdr.h btree.h listnode.h \ +- class.h mem.h gc/gc.h msr.h msc.h mdc.h complex.h mscf1.h mdr_mdc.h \ ++ class.h mem.h msr.h msc.h mdc.h complex.h mscf1.h mdr_mdc.h \ + mdcf1.h util.h list.h symbol.h sort.h fi.h sparse.h mdcf2.h + r_pgplot.o: r_pgplot.c config.h + getopt.o: getopt.c diff --git a/math/rlab/patches/patch-ac b/math/rlab/patches/patch-ac deleted file mode 100644 index cbcae8a9fbd..00000000000 --- a/math/rlab/patches/patch-ac +++ /dev/null @@ -1,10 +0,0 @@ -$NetBSD: patch-ac,v 1.3 2001/02/15 18:16:56 jtb Exp $ - ---- flibs/blas/Makefile.in.orig Thu Feb 15 17:04:05 2001 -+++ flibs/blas/Makefile.in -@@ -1,4 +1,4 @@ --LIBRARY = libblas.a -+LIBRARY = libblas_rlab.a - - SHELL = @MSHELL@ - F77 = @F77@ diff --git a/math/rlab/patches/patch-ad b/math/rlab/patches/patch-ad deleted file mode 100644 index a8df2ab64bd..00000000000 --- a/math/rlab/patches/patch-ad +++ /dev/null @@ -1,10 +0,0 @@ -$NetBSD: patch-ad,v 1.3 2001/02/15 18:16:56 jtb Exp $ - ---- flibs/fftpack/Makefile.in.orig Thu Feb 15 17:03:24 2001 -+++ flibs/fftpack/Makefile.in -@@ -1,4 +1,4 @@ --LIBRARY = libfftpack.a -+LIBRARY = libfftpack_rlab.a - - SHELL = @MSHELL@ - F77 = @F77@ diff --git a/math/rlab/patches/patch-ae b/math/rlab/patches/patch-ae deleted file mode 100644 index a0706903569..00000000000 --- a/math/rlab/patches/patch-ae +++ /dev/null @@ -1,10 +0,0 @@ -$NetBSD: patch-ae,v 1.3 2001/02/15 18:16:56 jtb Exp $ - ---- flibs/lapack/Makefile.in.orig Thu Feb 15 17:02:50 2001 -+++ flibs/lapack/Makefile.in -@@ -1,4 +1,4 @@ --LIBRARY = liblapack.a -+LIBRARY = liblapack_rlab.a - - SHELL = @MSHELL@ - F77 = @F77@ diff --git a/math/rlab/patches/patch-af b/math/rlab/patches/patch-af deleted file mode 100644 index f7f9410b2d0..00000000000 --- a/math/rlab/patches/patch-af +++ /dev/null @@ -1,216 +0,0 @@ -$NetBSD: patch-af,v 1.1.1.1 2001/01/31 07:30:40 jtb Exp $ - ---- gc/gc_hdrs.h.orig Sun Sep 6 00:58:05 1998 -+++ gc/gc_hdrs.h -@@ -24,6 +24,17 @@ - * The 2 level tree data structure that is used to find block headers. - * If there are more than 32 bits in a pointer, the top level is a hash - * table. -+ * -+ * This defines HDR, GET_HDR, and SET_HDR, the main macros used to -+ * retrieve and set object headers. We also define some variants to -+ * retrieve 2 unrelated headers in interleaved fashion. This -+ * slightly improves scheduling. -+ * -+ * Since 5.0 alpha 5, we can also take advantage of a header lookup -+ * cache. This is a locally declared direct mapped cache, used inside -+ * the marker. The HC_GET_HDR and HC_GET_HDR2 macros use and maintain this -+ * cache. Assuming we get reasonable hit rates, this shaves a few -+ * memory references from each pointer validation. - */ - - # if CPP_WORDSZ > 32 -@@ -45,18 +56,141 @@ - # define TOP_SZ (1 << LOG_TOP_SZ) - # define BOTTOM_SZ (1 << LOG_BOTTOM_SZ) - -+#ifndef SMALL_CONFIG -+# define USE_HDR_CACHE -+#endif -+ -+/* #define COUNT_HDR_CACHE_HITS */ -+ -+extern hdr * GC_invalid_header; /* header for an imaginary block */ -+ /* containing no objects. */ -+ -+ -+/* Check whether p and corresponding hhdr point to long or invalid */ -+/* object. If so, advance them to */ -+/* beginning of block, or set hhdr to GC_invalid_header. */ -+#define ADVANCE(p, hhdr, source) \ -+ if (IS_FORWARDING_ADDR_OR_NIL(hhdr)) { \ -+ p = GC_FIND_START(p, hhdr, (word)source); \ -+ if (p == 0) { \ -+ hhdr = GC_invalid_header; \ -+ } else { \ -+ hhdr = GC_find_header(p); \ -+ } \ -+ } -+ -+#ifdef USE_HDR_CACHE -+ -+# ifdef COUNT_HDR_CACHE_HITS -+ extern word GC_hdr_cache_hits; -+ extern word GC_hdr_cache_misses; -+# define HC_HIT() ++GC_hdr_cache_hits -+# define HC_MISS() ++GC_hdr_cache_misses -+# else -+# define HC_HIT() -+# define HC_MISS() -+# endif -+ -+ typedef struct hce { -+ word block_addr; /* right shifted by LOG_HBLKSIZE */ -+ hdr * hce_hdr; -+ } hdr_cache_entry; -+ -+# define HDR_CACHE_SIZE 8 /* power of 2 */ -+ -+# define DECLARE_HDR_CACHE \ -+ hdr_cache_entry hdr_cache[HDR_CACHE_SIZE] -+ -+# define INIT_HDR_CACHE BZERO(hdr_cache, sizeof(hdr_cache)); -+ -+# define HCE(h) hdr_cache + (((word)(h) >> LOG_HBLKSIZE) & (HDR_CACHE_SIZE-1)) -+ -+# define HCE_VALID_FOR(hce,h) ((hce) -> block_addr == \ -+ ((word)(h) >> LOG_HBLKSIZE)) -+ -+# define HCE_HDR(h) ((hce) -> hce_hdr) -+ -+ -+/* Analogous to GET_HDR, except that in the case of large objects, it */ -+/* Returns the header for the object beginning, and updates p. */ -+/* Returns &GC_bad_header instead of 0. All of this saves a branch */ -+/* in the fast path. */ -+# define HC_GET_HDR(p, hhdr, source) \ -+ { \ -+ hdr_cache_entry * hce = HCE(p); \ -+ if (HCE_VALID_FOR(hce, p)) { \ -+ HC_HIT(); \ -+ hhdr = hce -> hce_hdr; \ -+ } else { \ -+ HC_MISS(); \ -+ GET_HDR(p, hhdr); \ -+ ADVANCE(p, hhdr, source); \ -+ hce -> block_addr = (word)(p) >> LOG_HBLKSIZE; \ -+ hce -> hce_hdr = hhdr; \ -+ } \ -+ } -+ -+# define HC_GET_HDR2(p1, hhdr1, source1, p2, hhdr2, source2) \ -+ { \ -+ hdr_cache_entry * hce1 = HCE(p1); \ -+ hdr_cache_entry * hce2 = HCE(p2); \ -+ if (HCE_VALID_FOR(hce1, p1)) { \ -+ HC_HIT(); \ -+ hhdr1 = hce1 -> hce_hdr; \ -+ } else { \ -+ HC_MISS(); \ -+ GET_HDR(p1, hhdr1); \ -+ ADVANCE(p1, hhdr1, source1); \ -+ hce1 -> block_addr = (word)(p1) >> LOG_HBLKSIZE; \ -+ hce1 -> hce_hdr = hhdr1; \ -+ } \ -+ if (HCE_VALID_FOR(hce2, p2)) { \ -+ HC_HIT(); \ -+ hhdr2 = hce2 -> hce_hdr; \ -+ } else { \ -+ HC_MISS(); \ -+ GET_HDR(p2, hhdr2); \ -+ ADVANCE(p2, hhdr2, source2); \ -+ hce2 -> block_addr = (word)(p2) >> LOG_HBLKSIZE; \ -+ hce2 -> hce_hdr = hhdr2; \ -+ } \ -+ } -+ -+#else /* !USE_HDR_CACHE */ -+ -+# define DECLARE_HDR_CACHE -+ -+# define INIT_HDR_CACHE -+ -+# define HC_GET_HDR(p, hhdr, source) \ -+ { \ -+ GET_HDR(p, hhdr); \ -+ ADVANCE(p, hhdr, source); \ -+ } -+ -+# define HC_GET_HDR2(p1, hhdr1, source1, p2, hhdr2, source2) \ -+ { \ -+ GET_HDR2(p1, hhdr1, p2, hhdr2); \ -+ ADVANCE(p1, hhdr1, source1); \ -+ ADVANCE(p2, hhdr2, source2); \ -+ } -+ -+#endif -+ - typedef struct bi { - hdr * index[BOTTOM_SZ]; - /* - * The bottom level index contains one of three kinds of values: -- * 0 means we're not responsible for this block. -+ * 0 means we're not responsible for this block, -+ * or this is a block other than the first one in a free block. - * 1 < (long)X <= MAX_JUMP means the block starts at least - * X * HBLKSIZE bytes before the current address. - * A valid pointer points to a hdr structure. (The above can't be - * valid pointers due to the GET_MEM return convention.) - */ - struct bi * asc_link; /* All indices are linked in */ -- /* ascending order. */ -+ /* ascending order... */ -+ struct bi * desc_link; /* ... and in descending order. */ - word key; /* high order address bits. */ - # ifdef HASH_TL - struct bi * hash_link; /* Hash chain link. */ -@@ -95,6 +229,8 @@ - # define GET_HDR(p, hhdr) (hhdr) = HDR(p) - # define SET_HDR(p, hhdr) HDR_INNER(p) = (hhdr) - # define GET_HDR_ADDR(p, ha) (ha) = &(HDR_INNER(p)) -+# define GET_HDR2(p1, hhdr1, p2, hhdr2) \ -+ { GET_HDR(p1, hhdr1); GET_HDR(p2, hhdr2); } - # else /* hash */ - /* Hash function for tree top level */ - # define TL_HASH(hi) ((hi) & (TOP_SZ - 1)) -@@ -121,6 +257,40 @@ - # define SET_HDR(p, hhdr) { register hdr ** _ha; GET_HDR_ADDR(p, _ha); \ - *_ha = (hhdr); } - # define HDR(p) GC_find_header((ptr_t)(p)) -+ /* And some interleaved versions for two pointers at once. */ -+ /* This hopefully helps scheduling on processors like IA64. */ -+# define GET_BI2(p1, bottom_indx1, p2, bottom_indx2) \ -+ { \ -+ register word hi1 = \ -+ (word)(p1) >> (LOG_BOTTOM_SZ + LOG_HBLKSIZE); \ -+ register word hi2 = \ -+ (word)(p2) >> (LOG_BOTTOM_SZ + LOG_HBLKSIZE); \ -+ register bottom_index * _bi1 = GC_top_index[TL_HASH(hi1)]; \ -+ register bottom_index * _bi2 = GC_top_index[TL_HASH(hi2)]; \ -+ \ -+ while (_bi1 -> key != hi1 && _bi1 != GC_all_nils) \ -+ _bi1 = _bi1 -> hash_link; \ -+ while (_bi2 -> key != hi2 && _bi2 != GC_all_nils) \ -+ _bi2 = _bi2 -> hash_link; \ -+ (bottom_indx1) = _bi1; \ -+ (bottom_indx2) = _bi2; \ -+ } -+# define GET_HDR_ADDR2(p1, ha1, p2, ha2) \ -+ { \ -+ register bottom_index * bi1; \ -+ register bottom_index * bi2; \ -+ \ -+ GET_BI2(p1, bi1, p2, bi2); \ -+ (ha1) = &(HDR_FROM_BI(bi1, p1)); \ -+ (ha2) = &(HDR_FROM_BI(bi2, p2)); \ -+ } -+# define GET_HDR2(p1, hhdr1, p2, hhdr2) \ -+ { register hdr ** _ha1; \ -+ register hdr ** _ha2; \ -+ GET_HDR_ADDR2(p1, _ha1, p2, _ha2); \ -+ (hhdr1) = *_ha1; \ -+ (hhdr2) = *_ha2; \ -+ } - # endif - - /* Is the result a forwarding address to someplace closer to the */ diff --git a/math/rlab/patches/patch-ag b/math/rlab/patches/patch-ag deleted file mode 100644 index dae375ad90e..00000000000 --- a/math/rlab/patches/patch-ag +++ /dev/null @@ -1,572 +0,0 @@ -$NetBSD: patch-ag,v 1.1.1.1 2001/01/31 07:30:47 jtb Exp $ - ---- gc/gc_priv.h.orig Sun May 9 13:16:49 1999 -+++ gc/gc_priv.h -@@ -1,6 +1,9 @@ - /* - * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers - * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved. -+ * Copyright (c) 1996-1999 by Silicon Graphics. All rights reserved. -+ * Copyright (c) 1999 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. -@@ -41,7 +44,7 @@ - typedef GC_word word; - typedef GC_signed_word signed_word; - --# ifndef CONFIG_H -+# ifndef GCCONFIG_H - # include "gcconfig.h" - # endif - -@@ -64,21 +67,22 @@ - # include <stddef.h> - # endif - # define VOLATILE volatile --# define CONST const - #else - # ifdef MSWIN32 - # include <stdlib.h> - # endif - # define VOLATILE --# define CONST - #endif - --#ifdef AMIGA -+#define CONST GC_CONST -+ -+#if 0 /* was once defined for AMIGA */ - # define GC_FAR __far - #else - # define GC_FAR - #endif - -+ - /*********************************/ - /* */ - /* Definitions for conservative */ -@@ -170,15 +174,6 @@ - /* May save significant amounts of space for obj_map */ - /* entries. */ - --#ifndef OLD_BLOCK_ALLOC -- /* Macros controlling large block allocation strategy. */ --# define EXACT_FIRST /* Make a complete pass through the large object */ -- /* free list before splitting a block */ --# define PRESERVE_LAST /* Do not divide last allocated heap segment */ -- /* unless we would otherwise need to expand the */ -- /* heap. */ --#endif -- - /* ALIGN_DOUBLE requires MERGE_SIZES at present. */ - # if defined(ALIGN_DOUBLE) && !defined(MERGE_SIZES) - # define MERGE_SIZES -@@ -278,6 +273,13 @@ - # define MS_TIME_DIFF(a,b) ((double) (a.tv_sec - b.tv_sec) * 1000.0 \ - + (double) (a.tv_usec - b.tv_usec) / 1000.0) - #else /* !BSD_TIME */ -+# ifdef MSWIN32 -+# include <windows.h> -+# include <winbase.h> -+# define CLOCK_TYPE DWORD -+# define GET_TIME(x) x = GetTickCount() -+# define MS_TIME_DIFF(a,b) ((long)((a)-(b))) -+# else /* !MSWIN32, !BSD_TIME */ - # include <time.h> - # if !defined(__STDC__) && defined(SPARC) && defined(SUNOS4) - clock_t clock(); /* Not in time.h, where it belongs */ -@@ -303,6 +305,7 @@ - # define GET_TIME(x) x = clock() - # define MS_TIME_DIFF(a,b) ((unsigned long) \ - (1000.0*(double)((a)-(b))/(double)CLOCKS_PER_SEC)) -+# endif /* !MSWIN32 */ - #endif /* !BSD_TIME */ - - /* We use bzero and bcopy internally. They may not be available. */ -@@ -350,7 +353,7 @@ - + GC_page_size) \ - + GC_page_size-1) - # else --# if defined(AMIGA) || defined(NEXT) || defined(DOS4GW) -+# if defined(AMIGA) || defined(NEXT) || defined(MACOSX) || defined(DOS4GW) - # define GET_MEM(bytes) HBLKPTR((size_t) \ - calloc(1, (size_t)bytes + GC_page_size) \ - + GC_page_size-1) -@@ -434,9 +437,12 @@ - # define LOCK() mutex_lock(&GC_allocate_ml); - # define UNLOCK() mutex_unlock(&GC_allocate_ml); - # endif --# ifdef LINUX_THREADS -+# if defined(LINUX_THREADS) -+# if defined(I386)|| defined(POWERPC) || defined(ALPHA) || defined(IA64) \ -+ || defined(M68K) - # include <pthread.h> --# ifdef __i386__ -+# define USE_SPIN_LOCK -+# if defined(I386) - inline static int GC_test_and_set(volatile unsigned int *addr) { - int oldval; - /* Note: the "xchg" instruction does not need a "lock" prefix */ -@@ -445,15 +451,107 @@ - : "0"(1), "m"(*(addr))); - return oldval; - } --# else -- -- > Need implementation of GC_test_and_set() - # endif --# define GC_clear(addr) (*(addr) = 0) -+# if defined(IA64) -+ inline static int GC_test_and_set(volatile unsigned int *addr) { -+ int oldval; -+ __asm__ __volatile__("xchg4 %0=%1,%2" -+ : "=r"(oldval), "=m"(*addr) -+ : "r"(1), "1"(*addr)); -+ return oldval; -+ } -+ inline static void GC_clear(volatile unsigned int *addr) { -+ __asm__ __volatile__("st4.rel %0=r0" : "=m" (*addr)); -+ } -+# define GC_CLEAR_DEFINED -+# endif -+# ifdef M68K -+ /* Contributed by Tony Mantler. I'm not sure how well it was */ -+ /* tested. */ -+ inline static int GC_test_and_set(volatile unsigned int *addr) { -+ char oldval; /* this must be no longer than 8 bits */ -+ -+ /* The return value is semi-phony. */ -+ /* 'tas' sets bit 7 while the return */ -+ /* value pretends bit 0 was set */ -+ __asm__ __volatile__( -+ "tas %1@; sne %0; negb %0" -+ : "=d" (oldval) -+ : "a" (addr)); -+ return oldval; -+ } -+# endif -+# if defined(POWERPC) -+ inline static int GC_test_and_set(volatile unsigned int *addr) { -+ int oldval; -+ int temp = 1; // locked value -+ -+ __asm__ __volatile__( -+ "1:\tlwarx %0,0,%3\n" // load and reserve -+ "\tcmpwi %0, 0\n" // if load is -+ "\tbne 2f\n" // non-zero, return already set -+ "\tstwcx. %2,0,%1\n" // else store conditional -+ "\tbne- 1b\n" // retry if lost reservation -+ "2:\t\n" // oldval is zero if we set -+ : "=&r"(oldval), "=p"(addr) -+ : "r"(temp), "1"(addr) -+ : "memory"); -+ return (int)oldval; -+ } -+ inline static void GC_clear(volatile unsigned int *addr) { -+ __asm__ __volatile__("eieio"); -+ *(addr) = 0; -+ } -+# define GC_CLEAR_DEFINED -+# endif -+# ifdef ALPHA -+ inline static int GC_test_and_set(volatile unsigned int * addr) -+ { -+ unsigned long oldvalue; -+ unsigned long temp; -+ -+ __asm__ __volatile__( -+ "1: ldl_l %0,%1\n" -+ " and %0,%3,%2\n" -+ " bne %2,2f\n" -+ " xor %0,%3,%0\n" -+ " stl_c %0,%1\n" -+ " beq %0,3f\n" -+ " mb\n" -+ "2:\n" -+ ".section .text2,\"ax\"\n" -+ "3: br 1b\n" -+ ".previous" -+ :"=&r" (temp), "=m" (*addr), "=&r" (oldvalue) -+ :"Ir" (1), "m" (*addr)); -+ -+ return oldvalue; -+ } -+ /* Should probably also define GC_clear, since it needs */ -+ /* a memory barrier ?? */ -+# endif /* ALPHA */ -+# ifdef ARM32 -+ inline static int GC_test_and_set(volatile unsigned int *addr) { -+ int oldval; -+ /* SWP on ARM is very similar to XCHG on x86. Doesn't lock the -+ * bus because there are no SMP ARM machines. If/when there are, -+ * this code will likely need to be updated. */ -+ /* See linuxthreads/sysdeps/arm/pt-machine.h in glibc-2.1 */ -+ __asm__ __volatile__("swp %0, %1, [%2]" -+ : "=r"(oldval) -+ : "r"(1), "r"(addr)); -+ return oldval; -+ } -+# endif -+# ifndef GC_CLEAR_DEFINED -+ inline static void GC_clear(volatile unsigned int *addr) { -+ /* Try to discourage gcc from moving anything past this. */ -+ __asm__ __volatile__(" "); -+ *(addr) = 0; -+ } -+# endif - - extern volatile unsigned int GC_allocate_lock; -- /* This is not a mutex because mutexes that obey the (optional) */ -- /* POSIX scheduling rules are subject to convoys in high contention */ -- /* applications. This is basically a spin lock. */ - extern pthread_t GC_lock_holder; - extern void GC_lock(void); - /* Allocation lock holder. Only set if acquired by client through */ -@@ -462,31 +560,48 @@ - # define NO_THREAD (pthread_t)(-1) - # define UNSET_LOCK_HOLDER() GC_lock_holder = NO_THREAD - # define I_HOLD_LOCK() (pthread_equal(GC_lock_holder, pthread_self())) --# ifdef UNDEFINED --# define LOCK() pthread_mutex_lock(&GC_allocate_ml) --# define UNLOCK() pthread_mutex_unlock(&GC_allocate_ml) --# else --# define LOCK() \ -+# define LOCK() \ - { if (GC_test_and_set(&GC_allocate_lock)) GC_lock(); } --# define UNLOCK() \ -+# define UNLOCK() \ - GC_clear(&GC_allocate_lock) --# endif -- extern GC_bool GC_collecting; -+ extern VOLATILE GC_bool GC_collecting; - # define ENTER_GC() \ - { \ - GC_collecting = 1; \ - } - # define EXIT_GC() GC_collecting = 0; -+# else /* LINUX_THREADS on hardware for which we don't know how */ -+ /* to do test and set. */ -+# include <pthread.h> -+ extern pthread_mutex_t GC_allocate_ml; -+# define LOCK() pthread_mutex_lock(&GC_allocate_ml) -+# define UNLOCK() pthread_mutex_unlock(&GC_allocate_ml) -+# endif - # endif /* LINUX_THREADS */ --# if defined(IRIX_THREADS) || defined(IRIX_JDK_THREADS) -+# if defined(HPUX_THREADS) -+# include <pthread.h> -+ extern pthread_mutex_t GC_allocate_ml; -+# define LOCK() pthread_mutex_lock(&GC_allocate_ml) -+# define UNLOCK() pthread_mutex_unlock(&GC_allocate_ml) -+# endif -+# if defined(IRIX_THREADS) || defined(IRIX_JDK_THREADS) -+ /* This may also eventually be appropriate for HPUX_THREADS */ - # include <pthread.h> --# include <mutex.h> -+# ifndef HPUX_THREADS -+ /* This probably should never be included, but I can't test */ -+ /* on Irix anymore. */ -+# include <mutex.h> -+# endif - --# if __mips < 3 || !(defined (_ABIN32) || defined(_ABI64)) \ -+# ifndef HPUX_THREADS -+# if __mips < 3 || !(defined (_ABIN32) || defined(_ABI64)) \ - || !defined(_COMPILER_VERSION) || _COMPILER_VERSION < 700 - # define GC_test_and_set(addr, v) test_and_set(addr,v) --# else -+# else - # define GC_test_and_set(addr, v) __test_and_set(addr,v) -+# endif -+# else -+ /* I couldn't find a way to do this inline on HP/UX */ - # endif - extern unsigned long GC_allocate_lock; - /* This is not a mutex because mutexes that obey the (optional) */ -@@ -500,15 +615,17 @@ - # define NO_THREAD (pthread_t)(-1) - # define UNSET_LOCK_HOLDER() GC_lock_holder = NO_THREAD - # define I_HOLD_LOCK() (pthread_equal(GC_lock_holder, pthread_self())) --# ifdef UNDEFINED --# define LOCK() pthread_mutex_lock(&GC_allocate_ml) --# define UNLOCK() pthread_mutex_unlock(&GC_allocate_ml) -+# ifdef HPUX_THREADS -+# define LOCK() { if (!GC_test_and_clear(&GC_allocate_lock)) GC_lock(); } -+ /* The following is INCORRECT, since the memory model is too weak. */ -+# define UNLOCK() { GC_noop1(&GC_allocate_lock); \ -+ *(volatile unsigned long *)(&GC_allocate_lock) = 1; } - # else --# define LOCK() { if (GC_test_and_set(&GC_allocate_lock, 1)) GC_lock(); } --# if __mips >= 3 && (defined (_ABIN32) || defined(_ABI64)) \ -+# define LOCK() { if (GC_test_and_set(&GC_allocate_lock, 1)) GC_lock(); } -+# if __mips >= 3 && (defined (_ABIN32) || defined(_ABI64)) \ - && defined(_COMPILER_VERSION) && _COMPILER_VERSION >= 700 - # define UNLOCK() __lock_release(&GC_allocate_lock) --# else -+# else - /* The function call in the following should prevent the */ - /* compiler from moving assignments to below the UNLOCK. */ - /* This is probably not necessary for ucode or gcc 2.8. */ -@@ -516,9 +633,9 @@ - /* versions. */ - # define UNLOCK() { GC_noop1(&GC_allocate_lock); \ - *(volatile unsigned long *)(&GC_allocate_lock) = 0; } --# endif -+# endif - # endif -- extern GC_bool GC_collecting; -+ extern VOLATILE GC_bool GC_collecting; - # define ENTER_GC() \ - { \ - GC_collecting = 1; \ -@@ -607,7 +724,7 @@ - # else - # if defined(SOLARIS_THREADS) || defined(WIN32_THREADS) \ - || defined(IRIX_THREADS) || defined(LINUX_THREADS) \ -- || defined(IRIX_JDK_THREADS) -+ || defined(IRIX_JDK_THREADS) || defined(HPUX_THREADS) - void GC_stop_world(); - void GC_start_world(); - # define STOP_WORLD() GC_stop_world() -@@ -823,6 +940,7 @@ - struct hblk * hb_next; /* Link field for hblk free list */ - /* and for lists of chunks waiting to be */ - /* reclaimed. */ -+ struct hblk * hb_prev; /* Backwards link for free list. */ - word hb_descr; /* object descriptor for marking. See */ - /* mark.h. */ - char* hb_map; /* A pointer to a pointer validity map of the block. */ -@@ -837,14 +955,28 @@ - # define IGNORE_OFF_PAGE 1 /* Ignore pointers that do not */ - /* point to the first page of */ - /* this object. */ -+# define WAS_UNMAPPED 2 /* This is a free block, which has */ -+ /* been unmapped from the address */ -+ /* space. */ -+ /* GC_remap must be invoked on it */ -+ /* before it can be reallocated. */ -+ /* Only set with USE_MUNMAP. */ - unsigned short hb_last_reclaimed; - /* Value of GC_gc_no when block was */ - /* last allocated or swept. May wrap. */ -+ /* For a free block, this is maintained */ -+ /* unly for USE_MUNMAP, and indicates */ -+ /* when the header was allocated, or */ -+ /* when the size of the block last */ -+ /* changed. */ - word hb_marks[MARK_BITS_SZ]; - /* Bit i in the array refers to the */ - /* object starting at the ith word (header */ - /* INCLUDED) in the heap block. */ - /* The lsb of word 0 is numbered 0. */ -+ /* Unused bits are invalid, and are */ -+ /* occasionally set, e.g for uncollectable */ -+ /* objects. */ - }; - - /* heap block body */ -@@ -879,8 +1011,10 @@ - /* The type of mark procedures. This really belongs in gc_mark.h. */ - /* But we put it here, so that we can avoid scanning the mark proc */ - /* table. */ --typedef struct ms_entry * (*mark_proc)(/* word * addr, mark_stack_ptr, -- mark_stack_limit, env */); -+typedef struct ms_entry * (*mark_proc)(/* word * addr, -+ struct ms_entry *mark_stack_ptr, -+ struct ms_entry *mark_stack_limit, -+ word env */); - # define LOG_MAX_MARK_PROCS 6 - # define MAX_MARK_PROCS (1 << LOG_MAX_MARK_PROCS) - -@@ -957,8 +1091,12 @@ - struct _GC_arrays { - word _heapsize; - word _max_heapsize; -+ word _requested_heapsize; /* Heap size due to explicit expansion */ - ptr_t _last_heap_addr; - ptr_t _prev_heap_addr; -+ word _large_free_bytes; -+ /* Total bytes contained in blocks on large object free */ -+ /* list. */ - word _words_allocd_before_gc; - /* Number of words allocated before this */ - /* collection cycle. */ -@@ -978,6 +1116,10 @@ - word _mem_freed; - /* Number of explicitly deallocated words of memory */ - /* since last collection. */ -+ ptr_t _scratch_end_ptr; -+ ptr_t _scratch_last_end_ptr; -+ /* Used by headers.c, and can easily appear to point to */ -+ /* heap. */ - mark_proc _mark_procs[MAX_MARK_PROCS]; - /* Table of user-defined mark procedures. There is */ - /* a small number of these, which can be referenced */ -@@ -1005,6 +1147,9 @@ - /* Number of words in accessible atomic */ - /* objects. */ - # endif -+# ifdef USE_MUNMAP -+ word _unmapped_bytes; -+# endif - # ifdef MERGE_SIZES - unsigned _size_map[WORDS_TO_BYTES(MAXOBJSZ+1)]; - /* Number of words to allocate for a given allocation request in */ -@@ -1022,7 +1167,7 @@ - /* to an object at */ - /* block_start+i&~3 - WORDS_TO_BYTES(j). */ - /* (If ALL_INTERIOR_POINTERS is defined, then */ -- /* instead ((short *)(hbh_map[sz])[i] is j if */ -+ /* instead ((short *)(hb_map[sz])[i] is j if */ - /* block_start+WORDS_TO_BYTES(i) is in the */ - /* interior of an object starting at */ - /* block_start+WORDS_TO_BYTES(i-j)). */ -@@ -1135,15 +1280,22 @@ - # define GC_prev_heap_addr GC_arrays._prev_heap_addr - # define GC_words_allocd GC_arrays._words_allocd - # define GC_words_wasted GC_arrays._words_wasted -+# define GC_large_free_bytes GC_arrays._large_free_bytes - # define GC_words_finalized GC_arrays._words_finalized - # define GC_non_gc_bytes_at_gc GC_arrays._non_gc_bytes_at_gc - # define GC_mem_freed GC_arrays._mem_freed -+# define GC_scratch_end_ptr GC_arrays._scratch_end_ptr -+# define GC_scratch_last_end_ptr GC_arrays._scratch_last_end_ptr - # define GC_mark_procs GC_arrays._mark_procs - # define GC_heapsize GC_arrays._heapsize - # define GC_max_heapsize GC_arrays._max_heapsize -+# define GC_requested_heapsize GC_arrays._requested_heapsize - # define GC_words_allocd_before_gc GC_arrays._words_allocd_before_gc - # define GC_heap_sects GC_arrays._heap_sects - # define GC_last_stack GC_arrays._last_stack -+# ifdef USE_MUNMAP -+# define GC_unmapped_bytes GC_arrays._unmapped_bytes -+# endif - # ifdef MSWIN32 - # define GC_heap_bases GC_arrays._heap_bases - # endif -@@ -1172,6 +1324,8 @@ - # define beginGC_arrays ((ptr_t)(&GC_arrays)) - # define endGC_arrays (((ptr_t)(&GC_arrays)) + (sizeof GC_arrays)) - -+#define USED_HEAP_SIZE (GC_heapsize - GC_large_free_bytes) -+ - /* Object kinds: */ - # define MAXOBJKINDS 16 - -@@ -1236,7 +1390,7 @@ - /* Pointer to the nowhere valid hblk map */ - /* Blocks pointing to this map are free. */ - --extern struct hblk * GC_hblkfreelist; -+extern struct hblk * GC_hblkfreelist[]; - /* List of completely empty heap blocks */ - /* Linked through hb_next field of */ - /* header structure associated with */ -@@ -1251,7 +1405,7 @@ - extern GC_bool GC_incremental; - /* Using incremental/generational collection. */ - #else --# define GC_incremental TRUE -+# define GC_incremental FALSE - /* Hopefully allow optimizer to remove some code. */ - #endif - -@@ -1304,14 +1458,16 @@ - ptr_t GC_approx_sp(); - - GC_bool GC_should_collect(); --#ifdef PRESERVE_LAST -- GC_bool GC_in_last_heap_sect(/* ptr_t */); -- /* In last added heap section? If so, avoid breaking up. */ --#endif -+ - void GC_apply_to_all_blocks(/*fn, client_data*/); - /* Invoke fn(hbp, client_data) for each */ - /* allocated heap block. */ --struct hblk * GC_next_block(/* struct hblk * h */); -+struct hblk * GC_next_used_block(/* struct hblk * h */); -+ /* Return first in-use block >= h */ -+struct hblk * GC_prev_block(/* struct hblk * h */); -+ /* Return last block <= h. Returned block */ -+ /* is managed by GC, but may or may not be in */ -+ /* use. */ - void GC_mark_init(); - void GC_clear_marks(); /* Clear mark bits for all heap objects. */ - void GC_invalidate_mark_state(); /* Tell the marker that marked */ -@@ -1384,8 +1540,14 @@ - /* lock held. */ - /* 0 by default. */ - void GC_push_regs(); /* Push register contents onto mark stack. */ -+ /* If NURSERY is defined, the default push */ -+ /* action can be overridden with GC_push_proc */ - void GC_remark(); /* Mark from all marked objects. Used */ - /* only if we had to drop something. */ -+ -+# ifdef NURSERY -+ extern void (*GC_push_proc)(ptr_t); -+# endif - # if defined(MSWIN32) - void __cdecl GC_push_one(); - # else -@@ -1573,9 +1735,10 @@ - /* head. */ - - void GC_init_headers(); --GC_bool GC_install_header(/*h*/); -+struct hblkhdr * GC_install_header(/*h*/); - /* Install a header for block h. */ -- /* Return FALSE on failure. */ -+ /* Return 0 on failure, or the header */ -+ /* otherwise. */ - GC_bool GC_install_counts(/*h, sz*/); - /* Set up forwarding counts for block */ - /* h of size sz. */ -@@ -1608,6 +1771,15 @@ - /* detailed description of the object */ - /* referred to by p. */ - -+/* Memory unmapping: */ -+#ifdef USE_MUNMAP -+ void GC_unmap_old(void); -+ void GC_merge_unmapped(void); -+ void GC_unmap(ptr_t start, word bytes); -+ void GC_remap(ptr_t start, word bytes); -+ void GC_unmap_gap(ptr_t start1, word bytes1, ptr_t start2, word bytes2); -+#endif -+ - /* Virtual dirty bit implementation: */ - /* Each implementation exports the following: */ - void GC_read_dirty(); /* Retrieve dirty bits. */ -@@ -1640,6 +1812,16 @@ - void GC_print_static_roots(); - void GC_dump(); - -+#ifdef KEEP_BACK_PTRS -+ void GC_store_back_pointer(ptr_t source, ptr_t dest); -+ void GC_marked_for_finalization(ptr_t dest); -+# define GC_STORE_BACK_PTR(source, dest) GC_store_back_pointer(source, dest) -+# define GC_MARKED_FOR_FINALIZATION(dest) GC_marked_for_finalization(dest) -+#else -+# define GC_STORE_BACK_PTR(source, dest) -+# define GC_MARKED_FOR_FINALIZATION(dest) -+#endif -+ - /* Make arguments appear live to compiler */ - # ifdef __WATCOMC__ - void GC_noop(void*, ...); -@@ -1689,5 +1871,14 @@ - /* Write s to stderr, don't buffer, don't add */ - /* newlines, don't ... */ - -+ -+# ifdef GC_ASSERTIONS -+# define GC_ASSERT(expr) if(!(expr)) {\ -+ GC_err_printf2("Assertion failure: %s:%ld\n", \ -+ __FILE__, (unsigned long)__LINE__); \ -+ ABORT("assertion failure"); } -+# else -+# define GC_ASSERT(expr) -+# endif - - # endif /* GC_PRIVATE_H */ diff --git a/math/rlab/patches/patch-ah b/math/rlab/patches/patch-ah deleted file mode 100644 index f2d4b9a34ce..00000000000 --- a/math/rlab/patches/patch-ah +++ /dev/null @@ -1,742 +0,0 @@ -$NetBSD: patch-ah,v 1.3 2001/02/05 21:38:13 jtb Exp $ - ---- gc/gcconfig.h Sun May 9 13:16:49 1999 -+++ gc/gcconfig.h -@@ -13,9 +13,9 @@ - * modified is included with the above copyright notice. - */ - --#ifndef CONFIG_H -+#ifndef GCCONFIG_H - --# define CONFIG_H -+# define GCCONFIG_H - - /* Machine dependent parameters. Some tuning parameters can be found */ - /* near the top of gc_private.h. */ -@@ -27,6 +27,13 @@ - # define LINUX - # endif - -+# if defined(__NetBSD__) -+# define NETBSD -+# ifndef unix -+# define unix /* symbol unix is no longer defined in NetBSD */ -+# endif -+# endif -+ - /* Determine the machine type: */ - # if defined(sun) && defined(mc68000) - # define M68K -@@ -43,8 +50,21 @@ - # define OPENBSD - # define mach_type_known - # endif -+# if defined(__OpenBSD__) && defined(__sparc__) -+# define SPARC -+# define OPENBSD -+# define mach_type_known -+# endif - # if defined(__NetBSD__) && defined(m68k) - # define M68K -+# define mach_type_known -+# endif -+# if defined(__NetBSD__) && defined(__powerpc__) -+# define POWERPC -+# define mach_type_known -+# endif -+# if defined(__NetBSD__) && defined(__arm32__) -+# define ARM32 - # define NETBSD - # define mach_type_known - # endif -@@ -59,14 +79,20 @@ - # endif - # if defined(mips) || defined(__mips) - # define MIPS --# if defined(ultrix) || defined(__ultrix) || defined(__NetBSD__) --# define ULTRIX --# else --# if defined(_SYSTYPE_SVR4) || defined(SYSTYPE_SVR4) || defined(__SYSTYPE_SVR4__) --# define IRIX5 /* or IRIX 6.X */ --# else --# define RISCOS /* or IRIX 4.X */ --# endif -+# if !defined(LINUX) -+# if defined(ultrix) || defined(__ultrix) || defined(__NetBSD__) -+# define ULTRIX -+# else -+# if defined(_SYSTYPE_SVR4) || defined(SYSTYPE_SVR4) \ -+ || defined(__SYSTYPE_SVR4__) -+# define IRIX5 /* or IRIX 6.X */ -+# else -+# define RISCOS /* or IRIX 4.X */ -+# endif -+# endif -+# endif /* !LINUX */ -+# if defined(__NetBSD__) && defined(__MIPSEL__) -+# undef ULTRIX - # endif - # define mach_type_known - # endif -@@ -100,7 +126,8 @@ - # endif - # define mach_type_known - # endif --# if defined(sparc) && defined(unix) && !defined(sun) && !defined(linux) -+# if defined(sparc) && defined(unix) && !defined(sun) && !defined(linux) \ -+ && !defined(__OpenBSD__) && !(__NetBSD__) - # define SPARC - # define DRSNX - # define mach_type_known -@@ -109,6 +136,10 @@ - # define RS6000 - # define mach_type_known - # endif -+# if defined(__NetBSD__) && defined(__sparc__) -+# define SPARC -+# define mach_type_known -+# endif - # if defined(_M_XENIX) && defined(_M_SYSV) && defined(_M_I386) - /* The above test may need refinement */ - # define I386 -@@ -124,15 +155,22 @@ - # define SYSV - # define mach_type_known - # endif --# if defined(_PA_RISC1_0) || defined(_PA_RISC1_1) \ -+# if defined(_PA_RISC1_0) || defined(_PA_RISC1_1) || defined(_PA_RISC2_0) \ - || defined(hppa) || defined(__hppa__) - # define HP_PA -+# ifndef LINUX -+# define HPUX -+# endif - # define mach_type_known - # endif --# if defined(LINUX) && defined(i386) -+# if defined(LINUX) && (defined(i386) || defined(__i386__)) - # define I386 - # define mach_type_known - # endif -+# if defined(LINUX) && (defined(__ia64__) || defined(__ia64)) -+# define IA64 -+# define mach_type_known -+# endif - # if defined(LINUX) && defined(powerpc) - # define POWERPC - # define mach_type_known -@@ -141,21 +179,26 @@ - # define M68K - # define mach_type_known - # endif --# if defined(linux) && defined(sparc) -+# if defined(LINUX) && (defined(sparc) || defined(__sparc__)) - # define SPARC --# define LINUX -+# define mach_type_known -+# endif -+# if defined(LINUX) && defined(arm) -+# define ARM32 - # define mach_type_known - # endif - # if defined(__alpha) || defined(__alpha__) - # define ALPHA --# if !defined(LINUX) -+# if !defined(LINUX) && !defined(NETBSD) - # define OSF1 /* a.k.a Digital Unix */ - # endif - # define mach_type_known - # endif --# if defined(_AMIGA) --# define M68K -+# if defined(_AMIGA) && !defined(AMIGA) - # define AMIGA -+# endif -+# ifdef AMIGA -+# define M68K - # define mach_type_known - # endif - # if defined(THINK_C) || defined(__MWERKS__) && !defined(__powerc) -@@ -168,6 +211,11 @@ - # define MACOS - # define mach_type_known - # endif -+# if defined(macosx) -+# define MACOSX -+# define POWERPC -+# define mach_type_known -+# endif - # if defined(NeXT) && defined(mc68000) - # define M68K - # define NEXT -@@ -190,7 +238,6 @@ - # endif - # if defined(__NetBSD__) && defined(i386) - # define I386 --# define NETBSD - # define mach_type_known - # endif - # if defined(bsdi) && defined(i386) -@@ -231,6 +278,11 @@ - # define CYGWIN32 - # define mach_type_known - # endif -+# if defined(__MINGW32__) -+# define I386 -+# define MSWIN32 -+# define mach_type_known -+# endif - # if defined(__BORLANDC__) - # define I386 - # define MSWIN32 -@@ -241,6 +293,10 @@ - # define UTS4 - # define mach_type_known - # endif -+# if defined(__pj__) -+# define PJ -+# define mach_type_known -+# endif - /* Ivan Demakov */ - # if defined(__WATCOMC__) && defined(__386__) - # define I386 -@@ -295,6 +351,9 @@ - /* (CX_UX and DGUX) */ - /* S370 ==> 370-like machine */ - /* running Amdahl UTS4 */ -+ /* ARM32 ==> Intel StrongARM */ -+ /* IA64 ==> Intel IA64 */ -+ /* (e.g. Itanium) */ - - - /* -@@ -343,6 +402,11 @@ - * to the nearest plausible page boundary, and use that instead - * of STACKBOTTOM. - * -+ * Gustavo Rodriguez-Rivera points out that on most (all?) Unix machines, -+ * the value of environ is a pointer that can serve as STACKBOTTOM. -+ * I expect that HEURISTIC2 can be replaced by this approach, which -+ * interferes far less with debugging. -+ * - * If no expression for STACKBOTTOM can be found, and neither of the above - * heuristics are usable, the collector can still be used with all of the above - * undefined, provided one of the following is done: -@@ -380,6 +444,15 @@ - * - * An architecture may define DYNAMIC_LOADING if dynamic_load.c - * defined GC_register_dynamic_libraries() for the architecture. -+ * -+ * An architecture may define PREFETCH(x) to preload the cache with *x. -+ * This defaults to a no-op. -+ * -+ * PREFETCH_FOR_WRITE(x) is used if *x is about to be written. -+ * -+ * An architecture may also define CLEAR_DOUBLE(x) to be a fast way to -+ * clear the two words at GC_malloc-aligned address x. By default, -+ * word stores of 0 are used instead. - */ - - -@@ -486,8 +559,8 @@ - - # ifdef POWERPC - # define MACH_TYPE "POWERPC" --# define ALIGNMENT 2 - # ifdef MACOS -+# define ALIGNMENT 2 /* Still necessary? Could it be 4? */ - # ifndef __LOWMEM__ - # include <LowMem.h> - # endif -@@ -497,14 +570,33 @@ - # define DATAEND /* not needed */ - # endif - # ifdef LINUX -+# define ALIGNMENT 4 /* Guess. Can someone verify? */ -+ /* This was 2, but that didn't sound right. */ - # define OS_TYPE "LINUX" - # define HEURISTIC1 -+# define DYNAMIC_LOADING - # undef STACK_GRAN - # define STACK_GRAN 0x10000000 --# define DATASTART GC_data_start -+ /* Stack usually starts at 0x80000000 */ -+# define LINUX_DATA_START - extern int _end; - # define DATAEND (&_end) - # endif -+# ifdef MACOSX -+# define ALIGNMENT 4 -+# define OS_TYPE "MACOSX" -+# define DATASTART ((ptr_t) get_etext()) -+# define STACKBOTTOM ((ptr_t) 0xc0000000) -+# define DATAEND /* not needed */ -+# endif -+# ifdef NETBSD -+# define ALIGNMENT 4 -+# define OS_TYPE "NETBSD" -+# define HEURISTIC2 -+ extern char etext; -+# define DATASTART GC_data_start -+# define DYNAMIC_LOADING -+# endif - # endif - - # ifdef VAX -@@ -534,7 +626,6 @@ - # define MACH_TYPE "SPARC" - # define ALIGNMENT 4 /* Required by hardware */ - # define ALIGN_DOUBLE -- extern int etext; - # ifdef SUNOS5 - # define OS_TYPE "SUNOS5" - extern int _etext; -@@ -593,8 +684,8 @@ - # ifdef LINUX - # define OS_TYPE "LINUX" - # ifdef __ELF__ --# define DATASTART GC_data_start --# define DYNAMIC_LOADING -+# define LINUX_DATA_START -+# define DYNAMIC_LOADING - # else - Linux Sparc non elf ? - # endif -@@ -603,6 +694,23 @@ - # define SVR4 - # define STACKBOTTOM ((ptr_t) 0xf0000000) - # endif -+# ifdef OPENBSD -+# define OS_TYPE "OPENBSD" -+# define STACKBOTTOM ((ptr_t) 0xf8000000) -+ extern int etext; -+# define DATASTART ((ptr_t)(&etext)) -+# endif -+# ifdef NETBSD -+# define OS_TYPE "NETBSD" -+# define HEURISTIC2 -+# ifdef __ELF__ -+# define DATASTART GC_data_start -+# define DYNAMIC_LOADING -+# else -+ extern char etext; -+# define DATASTART ((ptr_t)(&etext)) -+# endif -+# endif - # endif - - # ifdef I386 -@@ -657,10 +765,16 @@ - # endif - # ifdef LINUX - # define OS_TYPE "LINUX" --# define STACKBOTTOM ((ptr_t)0xc0000000) -- /* Appears to be 0xe0000000 for at least one 2.1.91 kernel. */ -- /* Probably needs to be more flexible, but I don't yet */ -- /* fully understand how flexible. */ -+# define LINUX_STACKBOTTOM -+# if 0 -+# define HEURISTIC1 -+# undef STACK_GRAN -+# define STACK_GRAN 0x10000000 -+ /* STACKBOTTOM is usually 0xc0000000, but this changes with */ -+ /* different kernel configurations. In particular, systems */ -+ /* with 2GB physical memory will usually move the user */ -+ /* address space limit, and hence initial SP to 0x80000000. */ -+# endif - # if !defined(LINUX_THREADS) || !defined(REDIRECT_MALLOC) - # define MPROTECT_VDB - # else -@@ -676,8 +790,7 @@ - # endif - # include <features.h> - # if defined(__GLIBC__) && __GLIBC__ >= 2 -- extern int __data_start; --# define DATASTART ((ptr_t)(&__data_start)) -+# define LINUX_DATA_START - # else - extern char **__environ; - # define DATASTART ((ptr_t)(&__environ)) -@@ -696,6 +809,26 @@ - extern int etext; - # define DATASTART ((ptr_t)((((word) (&etext)) + 0xfff) & ~0xfff)) - # endif -+# ifdef USE_I686_PREFETCH -+# define PREFETCH(x) \ -+ __asm__ __volatile__ (" prefetchnta %0": : "m"(*(char *)(x))) -+ /* Empirically prefetcht0 is much more effective at reducing */ -+ /* cache miss stalls for the targetted load instructions. But it */ -+ /* seems to interfere enough with other cache traffic that the net */ -+ /* result is worse than prefetchnta. */ -+# if 0 -+ /* Using prefetches for write seems to have a slight negative */ -+ /* impact on performance, at least for a PIII/500. */ -+# define PREFETCH_FOR_WRITE(x) \ -+ __asm__ __volatile__ (" prefetcht0 %0": : "m"(*(char *)(x))) -+# endif -+# endif -+# ifdef USE_3DNOW_PREFETCH -+# define PREFETCH(x) \ -+ __asm__ __volatile__ (" prefetch %0": : "m"(*(char *)(x))) -+# define PREFETCH_FOR_WRITE(x) -+ __asm__ __volatile__ (" prefetchw %0": : "m"(*(char *)(x))) -+# endif - # endif - # ifdef CYGWIN32 - # define OS_TYPE "CYGWIN32" -@@ -806,35 +939,48 @@ - - # ifdef MIPS - # define MACH_TYPE "MIPS" --# ifndef IRIX5 --# define DATASTART (ptr_t)0x10000000 -- /* Could probably be slightly higher since */ -- /* startup code allocates lots of stuff. */ --# else -- extern int _fdata; --# define DATASTART ((ptr_t)(&_fdata)) --# ifdef USE_MMAP --# define HEAP_START (ptr_t)0x30000000 --# else --# define HEAP_START DATASTART --# endif -- /* Lowest plausible heap address. */ -- /* In the MMAP case, we map there. */ -- /* In either case it is used to identify */ -- /* heap sections so they're not */ -- /* considered as roots. */ --# endif /* IRIX5 */ --# define HEURISTIC2 - /* # define STACKBOTTOM ((ptr_t)0x7fff8000) sometimes also works. */ -+# ifdef LINUX -+ /* This was developed for a linuxce style platform. Probably */ -+ /* needs to be tweaked for workstation class machines. */ -+# define OS_TYPE "LINUX" -+ extern int __data_start; -+# define DATASTART ((ptr_t)(&__data_start)) -+# define ALIGNMENT 4 -+# define USE_GENERIC_PUSH_REGS 1 -+# define STACKBOTTOM 0x80000000 -+ /* In many cases, this should probably use LINUX_STACKBOTTOM */ -+ /* instead. But some kernel versions seem to give the wrong */ -+ /* value from /proc. */ -+# endif /* Linux */ - # ifdef ULTRIX -+# define HEURISTIC2 -+# define DATASTART (ptr_t)0x10000000 -+ /* Could probably be slightly higher since */ -+ /* startup code allocates lots of stuff. */ - # define OS_TYPE "ULTRIX" - # define ALIGNMENT 4 - # endif - # ifdef RISCOS -+# define HEURISTIC2 -+# define DATASTART (ptr_t)0x10000000 - # define OS_TYPE "RISCOS" - # define ALIGNMENT 4 /* Required by hardware */ - # endif - # ifdef IRIX5 -+# define HEURISTIC2 -+ extern int _fdata; -+# define DATASTART ((ptr_t)(&_fdata)) -+# ifdef USE_MMAP -+# define HEAP_START (ptr_t)0x30000000 -+# else -+# define HEAP_START DATASTART -+# endif -+ /* Lowest plausible heap address. */ -+ /* In the MMAP case, we map there. */ -+ /* In either case it is used to identify */ -+ /* heap sections so they're not */ -+ /* considered as roots. */ - # define OS_TYPE "IRIX5" - # define MPROTECT_VDB - # ifdef _MIPS_SZPTR -@@ -849,6 +995,21 @@ - # endif - # define DYNAMIC_LOADING - # endif -+# if defined(NETBSD) && defined(__MIPSEL__) -+# define ALIGNMENT 4 -+# define OS_TYPE "NETBSD" -+# define HEURISTIC2 -+# define USE_GENERIC_PUSH_REGS 1 -+# ifdef __ELF__ -+ extern int etext; -+# define DATASTART GC_data_start -+# define NEED_FIND_LIMIT -+# define DYNAMIC_LOADING -+# else -+# define DATASTART ((ptr_t) 0x10000000) -+# define STACKBOTTOM ((ptr_t) 0x7ffff000) -+# endif /* _ELF_ */ -+# endif - # endif - - # ifdef RS6000 -@@ -862,9 +1023,17 @@ - # endif - - # ifdef HP_PA -+ /* OS is assumed to be HP/UX */ - # define MACH_TYPE "HP_PA" --# define ALIGNMENT 4 --# define ALIGN_DOUBLE -+# define OS_TYPE "HPUX" -+# ifdef __LP64__ -+# define CPP_WORDSZ 64 -+# define ALIGNMENT 8 -+# else -+# define CPP_WORDSZ 32 -+# define ALIGNMENT 4 -+# define ALIGN_DOUBLE -+# endif - extern int __data_start; - # define DATASTART ((ptr_t)(&__data_start)) - # if 0 -@@ -877,22 +1046,43 @@ - /* this.) */ - # define STACKBOTTOM ((ptr_t) 0x7b033000) /* from /etc/conf/h/param.h */ - # else --# define HEURISTIC2 -+ /* Gustavo Rodriguez-Rivera suggested changing HEURISTIC2 */ -+ /* to this. We'll probably do this on other platforms, too. */ -+ /* For now I'll use it where I can test it. */ -+ extern char ** environ; -+# define STACKBOTTOM ((ptr_t)environ) - # endif - # define STACK_GROWS_UP - # define DYNAMIC_LOADING -+# ifndef HPUX_THREADS -+# define MPROTECT_VDB -+# endif - # include <unistd.h> - # define GETPAGESIZE() sysconf(_SC_PAGE_SIZE) -- /* They misspelled the Posix macro? */ - # endif - - # ifdef ALPHA - # define MACH_TYPE "ALPHA" - # define ALIGNMENT 8 -+# define USE_GENERIC_PUSH_REGS -+ /* Gcc and probably the DEC/Compaq compiler spill pointers to preserved */ -+ /* fp registers in some cases when the target is a 21264. The assembly */ -+ /* code doesn't handle that yet, and version dependencies make that a */ -+ /* bit tricky. Do the easy thing for now. */ -+# ifdef NETBSD -+# define OS_TYPE "NETBSD" -+# define HEURISTIC2 -+# define DATASTART GC_data_start -+# define ELFCLASS32 32 -+# define ELFCLASS64 64 -+# define ELF_CLASS ELFCLASS64 -+# define CPP_WORDSZ 64 -+# define DYNAMIC_LOADING -+# endif - # ifdef OSF1 - # define OS_TYPE "OSF1" - # define DATASTART ((ptr_t) 0x140000000) -- extern _end; -+ extern int _end; - # define DATAEND ((ptr_t) &_end) - # define HEURISTIC2 - /* Normally HEURISTIC2 is too conervative, since */ -@@ -909,9 +1099,9 @@ - # define CPP_WORDSZ 64 - # define STACKBOTTOM ((ptr_t) 0x120000000) - # ifdef __ELF__ -- extern int __data_start; --# define DATASTART &__data_start --# define DYNAMIC_LOADING -+# define LINUX_DATA_START -+# define DYNAMIC_LOADING -+ /* This doesn't work if the collector is in a dynamic library. */ - # else - # define DATASTART ((ptr_t) 0x140000000) - # endif -@@ -923,6 +1113,48 @@ - # endif - # endif - -+# ifdef IA64 -+# define MACH_TYPE "IA64" -+# define ALIGN_DOUBLE -+ /* Requires 16 byte alignment for malloc */ -+# define ALIGNMENT 8 -+# define USE_GENERIC_PUSH_REGS -+ /* We need to get preserved registers in addition to register windows. */ -+ /* That's easiest to do with setjmp. */ -+# ifdef HPUX -+ --> needs work -+# endif -+# ifdef LINUX -+# define OS_TYPE "LINUX" -+# define CPP_WORDSZ 64 -+ /* This should really be done through /proc, but that */ -+ /* requires we run on an IA64 kernel. */ -+# define STACKBOTTOM ((ptr_t) 0xa000000000000000l) -+ /* We also need the base address of the register stack */ -+ /* backing store. There is probably a better way to */ -+ /* get that, too ... */ -+# define BACKING_STORE_BASE ((ptr_t) 0x9fffffff80000000l) -+# if 1 -+# define SEARCH_FOR_DATA_START -+# define DATASTART GC_data_start -+# else -+ extern int data_start; -+# define DATASTART ((ptr_t)(&data_start)) -+# endif -+# define DYNAMIC_LOADING -+# define MPROTECT_VDB -+ /* Requires Linux 2.3.47 or later. */ -+ extern int _end; -+# define DATAEND (&_end) -+# define PREFETCH(x) \ -+ __asm__ (" lfetch [%0]": : "r"((void *)(x))) -+# define PREFETCH_FOR_WRITE(x) \ -+ __asm__ (" lfetch.excl [%0]": : "r"((void *)(x))) -+# define CLEAR_DOUBLE(x) \ -+ __asm__ (" stf.spill [%0]=f0": : "r"((void *)(x))) -+# endif -+# endif -+ - # ifdef M88K - # define MACH_TYPE "M88K" - # define ALIGNMENT 4 -@@ -953,6 +1185,69 @@ - # define HEURISTIC2 - # endif - -+# if defined(PJ) -+# define ALIGNMENT 4 -+ extern int _etext; -+# define DATASTART ((ptr_t)(&_etext)) -+# define HEURISTIC1 -+# endif -+ -+# ifdef ARM32 -+# define CPP_WORDSZ 32 -+# define MACH_TYPE "ARM32" -+# define ALIGNMENT 4 -+# ifdef NETBSD -+# define OS_TYPE "NETBSD" -+# define HEURISTIC2 -+ extern char etext; -+# define DATASTART ((ptr_t)(&etext)) -+# define USE_GENERIC_PUSH_REGS -+# endif -+# ifdef LINUX -+# define OS_TYPE "LINUX" -+# define HEURISTIC1 -+# undef STACK_GRAN -+# define STACK_GRAN 0x10000000 -+# define USE_GENERIC_PUSH_REGS -+# ifdef __ELF__ -+# define DYNAMIC_LOADING -+# include <features.h> -+# if defined(__GLIBC__) && __GLIBC__ >= 2 -+# define LINUX_DATA_START -+# else -+ extern char **__environ; -+# define DATASTART ((ptr_t)(&__environ)) -+ /* hideous kludge: __environ is the first */ -+ /* word in crt0.o, and delimits the start */ -+ /* of the data segment, no matter which */ -+ /* ld options were passed through. */ -+ /* We could use _etext instead, but that */ -+ /* would include .rodata, which may */ -+ /* contain large read-only data tables */ -+ /* that we'd rather not scan. */ -+# endif -+ extern int _end; -+# define DATAEND (&_end) -+# else -+ extern int etext; -+# define DATASTART ((ptr_t)((((word) (&etext)) + 0xfff) & ~0xfff)) -+# endif -+# endif -+#endif -+ -+#ifdef LINUX_DATA_START -+ /* Some Linux distributions arrange to define __data_start. Some */ -+ /* define data_start as a weak symbol. The latter is technically */ -+ /* broken, since the user program may define data_start, in which */ -+ /* case we lose. Nonetheless, we try both, prefering __data_start. */ -+ /* We assume gcc. */ -+# pragma weak __data_start -+ extern int __data_start; -+# pragma weak data_start -+ extern int data_start; -+# define DATASTART ((ptr_t)(&__data_start != 0? &__data_start : &data_start)) -+#endif -+ - # ifndef STACK_GROWS_UP - # define STACK_GROWS_DOWN - # endif -@@ -995,6 +1290,10 @@ - # define SUNOS5SIGS - # endif - -+# if defined(HPUX) -+# define SUNOS5SIGS -+# endif -+ - # if CPP_WORDSZ != 32 && CPP_WORDSZ != 64 - -> bad word size - # endif -@@ -1021,10 +1320,34 @@ - # undef MPROTECT_VDB - # endif - -+# ifdef USE_MUNMAP -+# undef MPROTECT_VDB /* Can't deal with address space holes. */ -+# endif -+ - # if !defined(PCR_VDB) && !defined(PROC_VDB) && !defined(MPROTECT_VDB) - # define DEFAULT_VDB - # endif - -+# ifndef PREFETCH -+# define PREFETCH(x) -+# define NO_PREFETCH -+# endif -+ -+# ifndef PREFETCH_FOR_WRITE -+# define PREFETCH_FOR_WRITE(x) -+# define NO_PREFETCH_FOR_WRITE -+# endif -+ -+# ifndef CACHE_LINE_SIZE -+# define CACHE_LINE_SIZE 32 /* Wild guess */ -+# endif -+ -+# ifndef CLEAR_DOUBLE -+# define CLEAR_DOUBLE(x) \ -+ ((word*)x)[0] = 0; \ -+ ((word*)x)[1] = 0; -+# endif /* CLEAR_DOUBLE */ -+ - # if defined(_SOLARIS_PTHREADS) && !defined(SOLARIS_THREADS) - # define SOLARIS_THREADS - # endif -@@ -1040,10 +1363,13 @@ - # if defined(SOLARIS_THREADS) && !defined(SUNOS5) - --> inconsistent configuration - # endif -+# if defined(HPUX_THREADS) && !defined(HPUX) -+--> inconsistent configuration -+# endif - # if defined(PCR) || defined(SRC_M3) || \ - defined(SOLARIS_THREADS) || defined(WIN32_THREADS) || \ - defined(IRIX_THREADS) || defined(LINUX_THREADS) || \ -- defined(IRIX_JDK_THREADS) -+ defined(IRIX_JDK_THREADS) || defined(HPUX_THREADS) - # define THREADS - # endif - -@@ -1058,4 +1384,4 @@ - /* include assembly code to do it well. */ - # endif - --# endif -+# endif /* GCCONFIG_H */ diff --git a/math/rlab/patches/patch-aj b/math/rlab/patches/patch-aj index 2686ea23eb3..5d138b32aeb 100644 --- a/math/rlab/patches/patch-aj +++ b/math/rlab/patches/patch-aj @@ -1,13 +1,22 @@ -$NetBSD: patch-aj,v 1.1.1.1 2001/01/31 07:30:54 jtb Exp $ +$NetBSD: patch-aj,v 1.2 2003/07/02 20:39:18 jtb Exp $ ---- main.c.orig Wed Jan 31 02:08:34 2001 +--- main.c.orig +++ main.c @@ -239,7 +239,7 @@ * ************************************************************** */ #ifdef HAVE_GC -#include "gc_private.h" -+#include "gc_priv.h" ++#include <gc.h> int real_main (int argc, char *argv[]); +@@ -248,7 +248,7 @@ + { + int dummy; + +- GC_stackbottom = (ptr_t)(&dummy); ++ GC_stackbottom = (char *)(&dummy); + return(real_main(argc, argv)); + } + #endif /* HAVE_GC */ diff --git a/math/rlab/patches/patch-an b/math/rlab/patches/patch-an deleted file mode 100644 index f0fa7a57fcf..00000000000 --- a/math/rlab/patches/patch-an +++ /dev/null @@ -1,10 +0,0 @@ -$NetBSD: patch-an,v 1.1 2001/02/15 18:16:56 jtb Exp $ - ---- flibs/minpack/Makefile.in.orig Thu Feb 15 17:07:02 2001 -+++ flibs/minpack/Makefile.in -@@ -1,4 +1,4 @@ --LIBRARY = libminpack.a -+LIBRARY = libminpack_rlab.a - - SHELL = @MSHELL@ - F77 = @F77@ diff --git a/math/rlab/patches/patch-ao b/math/rlab/patches/patch-ao deleted file mode 100644 index e696aa88a42..00000000000 --- a/math/rlab/patches/patch-ao +++ /dev/null @@ -1,10 +0,0 @@ -$NetBSD: patch-ao,v 1.1 2001/02/15 18:14:36 jtb Exp $ - ---- flibs/ranlib/src/Makefile.in.orig Thu Feb 15 17:08:02 2001 -+++ flibs/ranlib/src/Makefile.in -@@ -1,4 +1,4 @@ --LIBRARY = libranlib.a -+LIBRARY = libranlib_rlab.a - - SHELL = @MSHELL@ - F77 = @F77@ |