Update to GNU Smalltalk 3.2.2
NEWS FROM 3.2.1 TO 3.2.2 o Fixes to gst-remote. o Fixes to the Emacs mode. o Fixes to compilation warnings. o Generational GC is broken on SPARC and is now disabled. o When compiling a 32-bit version on a 64-bit system, detection of which packages to install was improved. NEWS FROM 3.2 TO 3.2.1 o All built-in packages can be disabled with a configure option like --disable-gdbm or --disable-complex. o All tools support --verbose. o Fixed bugs in the distributed gnu-smalltalk.pc file. o Improved portability to Solaris. o Many bug fixes to UDP sockets. In particular, daragrams received from a socket can be placed directly onto another socket using #nextPut:. o Many improvements to VisualGST. o Each test in the testsuite has a 1-minute timeout. o The undocumented DynamicVariable class in GNU Smalltalk 3.2 is now documented, but it had a small change in the implementation. The #defaultValue class method is not present anymore, and is replaced by #valueIfAbsent:. Subclasses can override #value to obtain the effect of #valueIfAbsent:. The class has also been rewritten and is much faster now. NEWS FROM 3.1 TO 3.2 Backwards-incompatible bug fixes and changes: o Collection>>#anyOne gives an error if the receiver is empty. o "aNumber raisedToInteger: 0" will raise an exception if and only if aNumber is not a floating-point value. This was backwards in previous versions. o Interval>>#first and Interval>>#last give an error if the interval is empty (i.e. if start > stop and the step is positive, or start < stop and the step is negative). o SequenceableCollection>>#sortBy: was renamed to #sort:. The old message is _not_ provided for backwards-compatibility. o The semantics of recursive directory descent were adjusted as follows: 1) the '.' and '..' directory entries are not passed; 2) for #do:, the file is passed directly (3.1 used to pass another recursive decorator); 3) before the descent starts, the directory itself is passed to the block. o The XML parser will ignore whitespace if placed in non-validating mode. o The suggested way to instantiate an XML parser is now using "SAXParser defaultParserClass", which will work with either of the two available parsers (the existing Smalltalk parsers, and the Expat bindings; see below). New features (base classes): o Floating-point rounding to integer is now correct also for very large numbers; fix contributed by Nicolas Cellier. o Methods have been added to Integer to print numbers with padding to a specified width. o New FilePath methods #owner:, #group:, #owner:group: allow setting a file's owner and group. o Sending mode, file time and owner setters to a recursive directory decorator (such as `Directory working all') sets the mode/time/owner on all files under the path. o Speedups for hashed collections o String>>#subStrings: accepts a single separator character or also, in accordance with ANSI, a String holding a list of separators. o The old instance-based exception handling has been removed. Standard ANSI class-based exceptions have been available since GNU Smalltalk 1.8.2. o The text-based #inspect method is now available also as Object>>#examine and Object>>#examineOn:, so that it will also work on arbitrary streams and will be available when a GUI is loaded. Contributed by Stefan Schmiedl. New features (tools): o gst-convert can emit Squeak fileouts. o New graphical interface VisualGST, loaded with gst-browser. The old browser is still available, but obsolete. o New ProfilerTools package for callgraph profiling of Smalltalk programs. A companion gst-profile tool will create profiles in callgrind-compatible format. Contributed by Derek Zhou. o Packages can be downloaded and updated directly from the network. The repository of packages is at http://smalltalk.gnu.org/project; the repository holds the location of the package.xml files, which point to the svn or git URL of the code. In order to download a package with git, version 1.6.2 is required. o SUnit supports expected failures. New features (VM): o Fixes in garbage collection heuristics provide improved performance on programs allocating many long-lived objects. Contributed by Derek Zhou. o Floating-point numbers are now read correctly. o In idle times, GNU Smalltalk will perform incremental garbage collection. When it finishes, GNU Smalltalk will consume zero CPU. o Mostly rewritten Windows port. It should mostly work except for sockets. The socket code will be rewritten (for all platforms) for 3.3 anyway. o Support for one-way become (Object>>#becomeForward:) o The millisecond clock uses CLOCK_MONOTONIC where available. New features (packages): o Many improvements to the Gtk bindings. o NetClients supports ESMTP commands. o New goodie, the SandstoneDb object persistence framework. o Swazoo upgraded to version 2.2, plus local fixes. o The Complex package uses numerically stable algorithms o The Continuations package provides delimited continuations via BlockClosure>>#shift and BlockClosure>>#reset. Both methods accept a block (1-arg for shift, 0-arg for reset). o An XML pull parser is included as package XML-PullParser. The package is based on the VisualWorks and Squeak pull parsers by Anthony Blakey and Ken Treis. o In addition to the validating XML parser, a non-validating Expat-based parser is available in package XML-Expat. The Expat parser is experimental, but it is very fast and supports both pull and push operation. Bug fixes: o Code running as a Generator now honors exception handlers outside the Generator block. o Fixed copying of Dictionary to not share the underlying associations. o Fixed ##() expressions that return a block o EPIPE is handled correctly. o Running on kernels without SOCK_CLOEXEC support will not fail even if the VM was compiled on a kernel that supported it. o The Sockets package failed to initialize when the machine was not connected to the network; this has been fixed. o The Transcript now uses a RecursionLock. This fixes crashes when an exception occurred while printing a backtrace. Miscellaneous: o GNU Smalltalk now does not rely anymore on specific (old) versions of libtool. o GNU Smalltalk tries to enable Emacs modes automatically on systems that support a site-lisp/site-start.d directory. o REPL autocompletion includes all symbols including unary messages (and variable names). o Process-local variables are now stored in an IdentityDictionary rather than a LookupTable.
This commit is contained in:
parent
ca226192ce
commit
9ecea2b1d3
9 changed files with 51 additions and 221 deletions
|
@ -1,7 +1,6 @@
|
|||
# $NetBSD: Makefile,v 1.52 2010/06/13 22:44:51 wiz Exp $
|
||||
# $NetBSD: Makefile,v 1.53 2010/07/31 22:06:24 asau Exp $
|
||||
|
||||
DISTNAME= smalltalk-3.1
|
||||
PKGREVISION= 7
|
||||
DISTNAME= smalltalk-3.2.2
|
||||
CATEGORIES= lang
|
||||
MASTER_SITES= ${MASTER_SITE_GNU:=smalltalk/}
|
||||
|
||||
|
@ -66,4 +65,5 @@ post-extract:
|
|||
.include "../../devel/zlib/buildlink3.mk"
|
||||
.include "../../x11/gtk2/buildlink3.mk"
|
||||
.include "../../x11/tk/buildlink3.mk"
|
||||
.include "../../mk/pthread.buildlink3.mk"
|
||||
.include "../../mk/bsd.pkg.mk"
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
@comment $NetBSD: PLIST,v 1.20 2010/01/21 06:21:07 asau Exp $
|
||||
@comment $NetBSD: PLIST,v 1.21 2010/07/31 22:06:24 asau Exp $
|
||||
bin/gst
|
||||
bin/gst-blox
|
||||
bin/gst-browser
|
||||
bin/gst-config
|
||||
bin/gst-convert
|
||||
bin/gst-doc
|
||||
bin/gst-load
|
||||
bin/gst-package
|
||||
bin/gst-profile
|
||||
bin/gst-reload
|
||||
bin/gst-remote
|
||||
bin/gst-sunit
|
||||
|
@ -18,13 +20,13 @@ lib/libgst.la
|
|||
lib/pkgconfig/gnu-smalltalk.pc
|
||||
lib/smalltalk/blox-tk.la
|
||||
lib/smalltalk/digest.la
|
||||
lib/smalltalk/expat.la
|
||||
lib/smalltalk/gdbm.la
|
||||
lib/smalltalk/gst-gtk.la
|
||||
lib/smalltalk/gstglut.la
|
||||
lib/smalltalk/gstopengl.la
|
||||
lib/smalltalk/i18n.la
|
||||
lib/smalltalk/iconv.la
|
||||
lib/smalltalk/sockets.la
|
||||
lib/smalltalk/zlib.la
|
||||
libexec/smalltalk/vfs/deb
|
||||
libexec/smalltalk/vfs/lslR
|
||||
|
@ -42,16 +44,16 @@ man/man1/gst-convert.1
|
|||
man/man1/gst-doc.1
|
||||
man/man1/gst-load.1
|
||||
man/man1/gst-package.1
|
||||
man/man1/gst-profile.1
|
||||
man/man1/gst-reload.1
|
||||
man/man1/gst-sunit.1
|
||||
man/man1/gst.1
|
||||
share/aclocal/gst-package.m4
|
||||
share/aclocal/gst.m4
|
||||
share/aclocal/snprintfv.m4
|
||||
share/smalltalk/BLOXBrowser.star
|
||||
share/smalltalk/Blox.star
|
||||
share/smalltalk/BloxGTK.star
|
||||
share/smalltalk/BloxTK.star
|
||||
share/smalltalk/Browser.star
|
||||
share/smalltalk/CParser.star
|
||||
share/smalltalk/Cairo.star
|
||||
share/smalltalk/ClassPublisher.star
|
||||
|
@ -76,8 +78,10 @@ share/smalltalk/Magritte.star
|
|||
share/smalltalk/NetClients.star
|
||||
share/smalltalk/OpenGL.star
|
||||
share/smalltalk/Parser.star
|
||||
share/smalltalk/ProfileTools.star
|
||||
share/smalltalk/ROE.star
|
||||
share/smalltalk/SUnit.star
|
||||
share/smalltalk/SandstoneDb.star
|
||||
share/smalltalk/Seaside-Core.star
|
||||
share/smalltalk/Seaside-Development.star
|
||||
share/smalltalk/Seaside-Examples.star
|
||||
|
@ -86,8 +90,12 @@ share/smalltalk/Sockets.star
|
|||
share/smalltalk/Sport.star
|
||||
share/smalltalk/Swazoo.star
|
||||
share/smalltalk/VFSAddOns.star
|
||||
share/smalltalk/VisualGST.star
|
||||
share/smalltalk/WebServer.star
|
||||
share/smalltalk/XML-DOM.star
|
||||
share/smalltalk/XML-Expat.star
|
||||
share/smalltalk/XML-ParserTests.star
|
||||
share/smalltalk/XML-PullParser.star
|
||||
share/smalltalk/XML-SAXDriver.star
|
||||
share/smalltalk/XML-SAXParser.star
|
||||
share/smalltalk/XML-XMLNodeBuilder.star
|
||||
|
@ -130,7 +138,6 @@ share/smalltalk/examples/shell
|
|||
share/smalltalk/examples/xml.sed
|
||||
share/smalltalk/kernel/AbstNamespc.st
|
||||
share/smalltalk/kernel/AnsiDates.st
|
||||
share/smalltalk/kernel/AnsiExcept.st
|
||||
share/smalltalk/kernel/Array.st
|
||||
share/smalltalk/kernel/ArrayColl.st
|
||||
share/smalltalk/kernel/Association.st
|
||||
|
@ -167,6 +174,7 @@ share/smalltalk/kernel/Delay.st
|
|||
share/smalltalk/kernel/Dictionary.st
|
||||
share/smalltalk/kernel/DirMessage.st
|
||||
share/smalltalk/kernel/Directory.st
|
||||
share/smalltalk/kernel/DynVariable.st
|
||||
share/smalltalk/kernel/ExcHandling.st
|
||||
share/smalltalk/kernel/False.st
|
||||
share/smalltalk/kernel/File.st
|
||||
|
@ -236,6 +244,7 @@ share/smalltalk/kernel/String.st
|
|||
share/smalltalk/kernel/SymLink.st
|
||||
share/smalltalk/kernel/Symbol.st
|
||||
share/smalltalk/kernel/SysDict.st
|
||||
share/smalltalk/kernel/SysExcept.st
|
||||
share/smalltalk/kernel/Time.st
|
||||
share/smalltalk/kernel/Transcript.st
|
||||
share/smalltalk/kernel/True.st
|
||||
|
@ -250,11 +259,11 @@ share/smalltalk/kernel/VarBinding.st
|
|||
share/smalltalk/kernel/WeakObjects.st
|
||||
share/smalltalk/kernel/WriteStream.st
|
||||
share/smalltalk/packages.xml
|
||||
share/smalltalk/scripts/Browser.st
|
||||
share/smalltalk/scripts/Convert.st
|
||||
share/smalltalk/scripts/GenDoc.st
|
||||
share/smalltalk/scripts/Load.st
|
||||
share/smalltalk/scripts/Package.st
|
||||
share/smalltalk/scripts/Profile.st
|
||||
share/smalltalk/scripts/Remote.st
|
||||
share/smalltalk/scripts/Test.st
|
||||
share/smalltalk/unsupported/CPP-test.st
|
||||
|
|
|
@ -1,13 +1,10 @@
|
|||
$NetBSD: distinfo,v 1.21 2010/04/09 01:54:20 obache Exp $
|
||||
$NetBSD: distinfo,v 1.22 2010/07/31 22:06:24 asau Exp $
|
||||
|
||||
SHA1 (smalltalk-3.1.tar.gz) = 9b1602bf29d1483d9200d83419dc3cd0fc0d397b
|
||||
RMD160 (smalltalk-3.1.tar.gz) = cc9a593c1773ba66f2f999b1369944eebd722ef9
|
||||
Size (smalltalk-3.1.tar.gz) = 5282705 bytes
|
||||
SHA1 (smalltalk-3.2.2.tar.gz) = a985d69e4760420614c9dfe4d3605e47c5eb8faa
|
||||
RMD160 (smalltalk-3.2.2.tar.gz) = ec1d0c36139d76f5ced530ca7f8228bd0ff0ddb2
|
||||
Size (smalltalk-3.2.2.tar.gz) = 5825782 bytes
|
||||
SHA1 (patch-aa) = c82dfcc53ce4177ae051041106c6c2efdb61cb4e
|
||||
SHA1 (patch-ac) = e129e3ead2a1c8a0e5ce7e7d342ff131570a2f0b
|
||||
SHA1 (patch-ae) = 57d3949a8842607eb9518185482a6e7a107a3c65
|
||||
SHA1 (patch-ac) = 15e45687aca1910818eabb82236de8bdd0abed99
|
||||
SHA1 (patch-ae) = 1f73f0e1a5a11099ba5cf636bcc154a83b617cc4
|
||||
SHA1 (patch-af) = 76744e495b5bb180b5acdbcc450d7090ed708113
|
||||
SHA1 (patch-ag) = 5eec4c1f315e05dea00f33d8f31b6b17f32e557a
|
||||
SHA1 (patch-ah) = 96920e18c56bb6454a2d01136b2de7c6303ee5fc
|
||||
SHA1 (patch-ai) = c53b4ab5881737febe6036e0c89198e94d14953f
|
||||
SHA1 (patch-aj) = e737d61017d2760e465c81ead7bdf3aeda2f9001
|
||||
SHA1 (patch-ah) = 9ff279fd482cbc2d10a35cd87f0c78d8e7a07277
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
$NetBSD: patch-ac,v 1.3 2009/04/10 17:36:43 asau Exp $
|
||||
$NetBSD: patch-ac,v 1.4 2010/07/31 22:06:25 asau Exp $
|
||||
|
||||
--- sigsegv/configure.orig 2009-04-07 20:00:09.000000000 +0400
|
||||
+++ sigsegv/configure 2009-04-07 20:19:57.000000000 +0400
|
||||
@@ -9598,7 +9598,7 @@
|
||||
--- sigsegv/configure.orig 2010-02-17 00:40:44.000000000 +0300
|
||||
+++ sigsegv/configure 2010-05-02 22:55:56.000000000 +0400
|
||||
@@ -10590,7 +10590,7 @@
|
||||
|
||||
|
||||
case "$host_os" in
|
||||
|
@ -11,7 +11,7 @@ $NetBSD: patch-ac,v 1.3 2009/04/10 17:36:43 asau Exp $
|
|||
CFG_SIGNALS=signals-bsd.h ;;
|
||||
hpux*)
|
||||
CFG_SIGNALS=signals-hpux.h ;;
|
||||
@@ -13481,7 +13481,7 @@
|
||||
@@ -13304,7 +13304,7 @@
|
||||
fi
|
||||
if test -z "$CFG_FAULT" && test "$sv_cv_fault_bsd" = yes; then
|
||||
case "$host_os" in
|
||||
|
@ -20,12 +20,12 @@ $NetBSD: patch-ac,v 1.3 2009/04/10 17:36:43 asau Exp $
|
|||
case "$host_cpu" in
|
||||
i?86 | x86_64)
|
||||
CFG_FAULT=fault-freebsd-i386.h
|
||||
@@ -13959,7 +13959,7 @@
|
||||
@@ -13674,7 +13674,7 @@
|
||||
else
|
||||
case "$host_os" in
|
||||
linux*) CFG_STACKVMA=stackvma-linux.c ;;
|
||||
- freebsd*) CFG_STACKVMA=stackvma-freebsd.c ;;
|
||||
+ freebsd*|dragonfly*) CFG_STACKVMA=stackvma-freebsd.c ;;
|
||||
beos*) CFG_STACKVMA=stackvma-beos.c ;;
|
||||
macos* | darwin*) CFG_STACKVMA=stackvma-mach.c ;;
|
||||
esac
|
||||
macos* | darwin*)
|
||||
ac_fn_c_check_func "$LINENO" "vm_region" "ac_cv_func_vm_region"
|
||||
|
|
|
@ -1,16 +1,18 @@
|
|||
$NetBSD: patch-ae,v 1.3 2010/01/21 06:21:07 asau Exp $
|
||||
$NetBSD: patch-ae,v 1.4 2010/07/31 22:06:25 asau Exp $
|
||||
|
||||
--- configure.orig 2008-10-19 15:25:04.000000000 +0400
|
||||
+++ configure 2010-01-21 08:49:56.000000000 +0300
|
||||
@@ -20386,6 +20386,7 @@
|
||||
--- configure.orig 2010-04-21 14:03:23.000000000 +0400
|
||||
+++ configure 2010-05-02 22:52:09.000000000 +0400
|
||||
@@ -15539,7 +15539,8 @@
|
||||
|
||||
for ac_func in putenv strdup strerror strsignal mkstemp getpagesize \
|
||||
getdtablesize strstr ftruncate floorl ceill sqrtl frexpl ldexpl asinl \
|
||||
acosl atanl logl expl tanl sinl cosl powl truncl lrintl strsep strpbrk \
|
||||
+ acosl atanl logl expl tanl sinl cosl trunc truncf truncl lrintl strsep strpbrk \
|
||||
symlink mkdtemp
|
||||
do
|
||||
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
|
||||
@@ -34021,8 +34022,6 @@
|
||||
- acosl atanl logl expl tanl sinl cosl powl truncl lrintl truncf lrintf \
|
||||
+ acosl atanl logl expl tanl sinl cosl truncl lrintl truncf lrintf \
|
||||
+ acosl atanl logl expl tanl sinl cosl powl trunc truncf truncl lrintl strsep strpbrk \
|
||||
lrint trunc strsep strpbrk symlink mkdtemp
|
||||
do :
|
||||
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
|
||||
@@ -24753,8 +24754,6 @@
|
||||
|
||||
ac_config_files="$ac_config_files tests/atlocal"
|
||||
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
$NetBSD: patch-ag,v 1.1 2007/09/03 16:28:56 obache Exp $
|
||||
|
||||
--- lib-src/sincosl.c.orig 2006-02-05 18:41:29.000000000 +0000
|
||||
+++ lib-src/sincosl.c
|
||||
@@ -228,7 +228,7 @@ kernel_cosl (long double x, long double
|
||||
Computed using gmp.
|
||||
*/
|
||||
|
||||
-const long double sincosl_table[] = {
|
||||
+static const long double sincosl_table[] = {
|
||||
|
||||
/* x = 1.48437500000000000000000000000000000e-01L 3ffc3000000000000000000000000000 */
|
||||
/* cos(x) = 0.fd2f5320e1b790209b4dda2f98f79caaa7b873aff1014b0fbc5243766d03cb006bc837c4358 */
|
|
@ -1,14 +1,14 @@
|
|||
$NetBSD: patch-ah,v 1.2 2010/01/21 06:26:35 asau Exp $
|
||||
$NetBSD: patch-ah,v 1.3 2010/07/31 22:06:25 asau Exp $
|
||||
|
||||
Avoid creating libtool archive.
|
||||
|
||||
--- Makefile.in.orig 2008-10-19 15:25:08.000000000 +0400
|
||||
+++ Makefile.in 2010-01-21 08:56:22.000000000 +0300
|
||||
@@ -426,7 +426,6 @@
|
||||
--- Makefile.in.orig 2010-05-02 11:44:41.000000000 +0400
|
||||
+++ Makefile.in 2010-05-02 22:50:16.000000000 +0400
|
||||
@@ -499,7 +499,6 @@
|
||||
###########################################################
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
nodist_pkgconfig_DATA = gnu-smalltalk.pc
|
||||
-pkglib_DATA = libc.la
|
||||
-module_DATA = libc.la
|
||||
noinst_DATA = gst.im
|
||||
@WITH_EMACS_TRUE@nodist_lisp_LISP = smalltalk-mode.el $(am__append_2)
|
||||
bin_SCRIPTS = gst-config
|
||||
DISTCLEANFILES = termbold termnorm pkgrules.tmp config.h
|
||||
|
|
|
@ -1,70 +0,0 @@
|
|||
$NetBSD: patch-ai,v 1.1 2010/04/09 01:54:21 obache Exp $
|
||||
|
||||
hack to build with GMP 5
|
||||
http://git.savannah.gnu.org/gitweb/?p=smalltalk.git;a=commit;h=04ac00a8126a0b328e231e01ab4b257b28c5da3c
|
||||
|
||||
--- libgst/mpz.c.orig 2008-09-18 07:50:57.000000000 +0000
|
||||
+++ libgst/mpz.c
|
||||
@@ -1511,13 +1511,21 @@ _gst_mpz_xor (gst_mpz *res, const gst_mp
|
||||
}
|
||||
}
|
||||
|
||||
+#if __GNU_MP_VERSION >= 5
|
||||
+extern void __gmpn_divexact (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t);
|
||||
+#endif
|
||||
+
|
||||
void
|
||||
_gst_mpz_divexact (gst_mpz *quot, const gst_mpz *num, const gst_mpz *den)
|
||||
{
|
||||
- mp_ptr qp, tp;
|
||||
+ mp_ptr qp;
|
||||
mp_srcptr np, dp;
|
||||
- mp_size_t nsize, dsize, qsize, d_zero_limbs;
|
||||
+ mp_size_t nsize, dsize, qsize;
|
||||
+#if __GNU_MP_VERSION < 5
|
||||
+ mp_ptr tp;
|
||||
+ mp_size_t d_zero_limbs;
|
||||
int d_zero_bits;
|
||||
+#endif
|
||||
|
||||
nsize = ABS (num->size);
|
||||
dsize = ABS (den->size);
|
||||
@@ -1540,6 +1548,7 @@ _gst_mpz_divexact (gst_mpz *quot, const
|
||||
return;
|
||||
}
|
||||
|
||||
+#if __GNU_MP_VERSION < 5
|
||||
/* Avoid quadratic behaviour, but do it conservatively. */
|
||||
if (nsize - dsize > 1500)
|
||||
{
|
||||
@@ -1558,6 +1567,7 @@ _gst_mpz_divexact (gst_mpz *quot, const
|
||||
dsize -= d_zero_limbs;
|
||||
np += d_zero_limbs;
|
||||
nsize -= d_zero_limbs;
|
||||
+#endif
|
||||
|
||||
/* Allocate where we place the result. It must be nsize limbs big
|
||||
because it also acts as a temporary area. */
|
||||
@@ -1565,6 +1575,7 @@ _gst_mpz_divexact (gst_mpz *quot, const
|
||||
gst_mpz_realloc (quot, nsize);
|
||||
qp = quot->d;
|
||||
|
||||
+#if __GNU_MP_VERSION < 5
|
||||
if (d_zero_bits != 0)
|
||||
{
|
||||
tp = (mp_ptr) alloca (dsize * SIZEOF_MP_LIMB_T);
|
||||
@@ -1577,9 +1588,14 @@ _gst_mpz_divexact (gst_mpz *quot, const
|
||||
}
|
||||
else
|
||||
MPN_COPY(qp, np, nsize);
|
||||
+#endif
|
||||
|
||||
qsize = nsize - dsize + 1;
|
||||
+#if __GNU_MP_VERSION < 5
|
||||
mpn_bdivmod (qp, qp, nsize, dp, dsize, qsize * GMP_NUMB_BITS);
|
||||
+#else
|
||||
+ __gmpn_divexact (qp, np, nsize, dp, dsize);
|
||||
+#endif
|
||||
quot->size = (num->size ^ den->size) >= 0 ? qsize : -qsize;
|
||||
}
|
||||
|
|
@ -1,95 +0,0 @@
|
|||
$NetBSD: patch-aj,v 1.1 2010/04/09 01:54:21 obache Exp $
|
||||
|
||||
apply CVE-2009-3736 patch
|
||||
http://git.savannah.gnu.org/gitweb/?p=smalltalk.git;a=commit;h=232557c9e5a24f5dbd18ad9a2106cafb74e4e0cf
|
||||
|
||||
--- lib-src/ltdl.c
|
||||
+++ lib-src/ltdl.c
|
||||
@@ -2164,7 +2164,8 @@ static int trim LT_PARAMS((char **dest,
|
||||
static int try_dlopen LT_PARAMS((lt_dlhandle *handle,
|
||||
const char *filename));
|
||||
static int tryall_dlopen LT_PARAMS((lt_dlhandle *handle,
|
||||
- const char *filename));
|
||||
+ const char *filename,
|
||||
+ const char * useloader));
|
||||
static int unload_deplibs LT_PARAMS((lt_dlhandle handle));
|
||||
static int lt_argz_insert LT_PARAMS((char **pargz,
|
||||
size_t *pargz_len,
|
||||
@@ -2350,9 +2351,10 @@ lt_dlexit ()
|
||||
}
|
||||
|
||||
static int
|
||||
-tryall_dlopen (handle, filename)
|
||||
+tryall_dlopen (handle, filename, useloader)
|
||||
lt_dlhandle *handle;
|
||||
const char *filename;
|
||||
+ const char *useloader;
|
||||
{
|
||||
lt_dlhandle cur;
|
||||
lt_dlloader *loader;
|
||||
@@ -2419,6 +2421,11 @@ tryall_dlopen (handle, filename)
|
||||
|
||||
while (loader)
|
||||
{
|
||||
+ if (useloader && strcmp(loader->loader_name, useloader))
|
||||
+ {
|
||||
+ loader = loader->next;
|
||||
+ continue;
|
||||
+ }
|
||||
lt_user_data data = loader->dlloader_data;
|
||||
|
||||
cur->module = loader->module_open (data, filename);
|
||||
@@ -2488,7 +2495,7 @@ tryall_dlopen_module (handle, prefix, dirname, dlname)
|
||||
error += tryall_dlopen_module (handle,
|
||||
(const char *) 0, prefix, filename);
|
||||
}
|
||||
- else if (tryall_dlopen (handle, filename) != 0)
|
||||
+ else if (tryall_dlopen (handle, filename, NULL) != 0)
|
||||
{
|
||||
++error;
|
||||
}
|
||||
@@ -2509,7 +2516,7 @@ find_module (handle, dir, libdir, dlname, old_name, installed)
|
||||
/* Try to open the old library first; if it was dlpreopened,
|
||||
we want the preopened version of it, even if a dlopenable
|
||||
module is available. */
|
||||
- if (old_name && tryall_dlopen (handle, old_name) == 0)
|
||||
+ if (old_name && tryall_dlopen (handle, old_name, "dlpreload") == 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@@ -2773,7 +2780,7 @@ find_handle_callback (filename, data, ignored)
|
||||
|
||||
/* Try to dlopen the file, but do not continue searching in any
|
||||
case. */
|
||||
- if (tryall_dlopen (handle, filename) != 0)
|
||||
+ if (tryall_dlopen (handle, filename,NULL) != 0)
|
||||
*handle = 0;
|
||||
|
||||
return 1;
|
||||
@@ -3058,7 +3065,7 @@ try_dlopen (phandle, filename)
|
||||
/* lt_dlclose()ing yourself is very bad! Disallow it. */
|
||||
LT_DLSET_FLAG (*phandle, LT_DLRESIDENT_FLAG);
|
||||
|
||||
- if (tryall_dlopen (&newhandle, 0) != 0)
|
||||
+ if (tryall_dlopen (&newhandle, 0, NULL) != 0)
|
||||
{
|
||||
LT_DLFREE (*phandle);
|
||||
return 1;
|
||||
@@ -3180,7 +3187,7 @@ try_dlopen (phandle, filename)
|
||||
}
|
||||
#endif
|
||||
}
|
||||
- if (!file)
|
||||
+ else
|
||||
{
|
||||
file = fopen (filename, LT_READTEXT_MODE);
|
||||
}
|
||||
@@ -3364,7 +3371,7 @@ try_dlopen (phandle, filename)
|
||||
#endif
|
||||
)))
|
||||
{
|
||||
- if (tryall_dlopen (&newhandle, filename) != 0)
|
||||
+ if (tryall_dlopen (&newhandle, filename, NULL) != 0)
|
||||
{
|
||||
newhandle = NULL;
|
||||
}
|
Loading…
Reference in a new issue