summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatsuu Takuto <matsuu@gentoo.org>2005-08-06 21:38:41 +0000
committerMatsuu Takuto <matsuu@gentoo.org>2005-08-06 21:38:41 +0000
commit84f1786b83958f55a47e9c19264f7ea48a6ebf2f (patch)
tree56ad0370afd000a15a3bc21b45f90f6f59083fff /dev-libs/boehm-gc
parent~ppc-macos (diff)
downloadhistorical-84f1786b83958f55a47e9c19264f7ea48a6ebf2f.tar.gz
historical-84f1786b83958f55a47e9c19264f7ea48a6ebf2f.tar.bz2
historical-84f1786b83958f55a47e9c19264f7ea48a6ebf2f.zip
Added boehm-gc-6.5-gentoo.patch. Bug 75414.
Package-Manager: portage-2.0.51.22-r2
Diffstat (limited to 'dev-libs/boehm-gc')
-rw-r--r--dev-libs/boehm-gc/ChangeLog6
-rw-r--r--dev-libs/boehm-gc/Manifest17
-rw-r--r--dev-libs/boehm-gc/boehm-gc-6.5.ebuild5
-rw-r--r--dev-libs/boehm-gc/files/boehm-gc-6.5-gentoo.patch83
4 files changed, 96 insertions, 15 deletions
diff --git a/dev-libs/boehm-gc/ChangeLog b/dev-libs/boehm-gc/ChangeLog
index 7b4318e928d7..e66ca15fd1c1 100644
--- a/dev-libs/boehm-gc/ChangeLog
+++ b/dev-libs/boehm-gc/ChangeLog
@@ -1,6 +1,10 @@
# ChangeLog for dev-libs/boehm-gc
# Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/boehm-gc/ChangeLog,v 1.36 2005/07/03 10:03:16 kloeri Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/boehm-gc/ChangeLog,v 1.37 2005/08/06 21:38:41 matsuu Exp $
+
+ 06 Aug 2005; MATSUU Takuto <matsuu@gentoo.org>
+ +files/boehm-gc-6.5-gentoo.patch, boehm-gc-6.5.ebuild:
+ Added boehm-gc-6.5-gentoo.patch. Bug 75414.
03 Jul 2005; Bryan Østergaard <kloeri@gentoo.org> boehm-gc-6.4.ebuild:
Stable on alpha.
diff --git a/dev-libs/boehm-gc/Manifest b/dev-libs/boehm-gc/Manifest
index 2424eba264b2..45002ab8096b 100644
--- a/dev-libs/boehm-gc/Manifest
+++ b/dev-libs/boehm-gc/Manifest
@@ -1,18 +1,9 @@
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
-
-MD5 ac3e1744fb96a413d0786e11ea1a40e7 ChangeLog 4132
-MD5 482575543f01c2eed8d5c43f70802089 boehm-gc-6.5.ebuild 1304
-MD5 ae35aecf3e681586ace5f8c15866aed7 metadata.xml 222
+MD5 5511435435d714e1277aabb66ac8f96c boehm-gc-6.5.ebuild 1358
MD5 9b414c7b815d3ede7ef22bc0569ac761 boehm-gc-6.3-r1.ebuild 1156
MD5 82fcb782047b5d273acd0c746b68a0ad boehm-gc-6.4.ebuild 1154
+MD5 685a7bbb290081238fcae1128e2c78fd ChangeLog 4285
+MD5 ae35aecf3e681586ace5f8c15866aed7 metadata.xml 222
MD5 fdb67fd6d2adebe72bf49c937b4948a5 files/digest-boehm-gc-6.4 57
MD5 b8b5e747f06731368f0e8b8f8dfbf43f files/digest-boehm-gc-6.5 57
+MD5 4f7d55dd5fae69a3751b1620e37f0d29 files/boehm-gc-6.5-gentoo.patch 2815
MD5 6cc733152c37395a1f0f51588a932f13 files/digest-boehm-gc-6.3-r1 57
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.1 (GNU/Linux)
-
-iD8DBQFCx7f4Kf2g/qXtneoRAjd/AKC70IDcZpFBALuJVmxW0Eko503LawCgkJcN
-dj9Y67n5c3LIICDK56McEUM=
-=X1lz
------END PGP SIGNATURE-----
diff --git a/dev-libs/boehm-gc/boehm-gc-6.5.ebuild b/dev-libs/boehm-gc/boehm-gc-6.5.ebuild
index d7e46e9e0fce..127f7b063fe6 100644
--- a/dev-libs/boehm-gc/boehm-gc-6.5.ebuild
+++ b/dev-libs/boehm-gc/boehm-gc-6.5.ebuild
@@ -1,6 +1,8 @@
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/boehm-gc/boehm-gc-6.5.ebuild,v 1.1 2005/06/20 14:09:07 matsuu Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/boehm-gc/boehm-gc-6.5.ebuild,v 1.2 2005/08/06 21:38:41 matsuu Exp $
+
+inherit eutils
MY_P=gc${PV/_/}
S=${WORKDIR}/${MY_P}
@@ -23,6 +25,7 @@ src_unpack() {
unpack ${A}
cd ${S}
sed -i -e '/^SUBDIRS/s/doc//' Makefile.in || die
+ epatch ${FILESDIR}/${P}-gentoo.patch
}
src_compile() {
diff --git a/dev-libs/boehm-gc/files/boehm-gc-6.5-gentoo.patch b/dev-libs/boehm-gc/files/boehm-gc-6.5-gentoo.patch
new file mode 100644
index 000000000000..72eb881eef7d
--- /dev/null
+++ b/dev-libs/boehm-gc/files/boehm-gc-6.5-gentoo.patch
@@ -0,0 +1,83 @@
+diff -ur gc6.5.orig/include/private/gcconfig.h gc6.5/include/private/gcconfig.h
+--- gc6.5.orig/include/private/gcconfig.h 2005-08-05 00:03:00.000000000 +0200
++++ gc6.5/include/private/gcconfig.h 2005-08-05 00:08:42.000000000 +0200
+@@ -1100,6 +1100,9 @@
+ # endif
+ # define OS_TYPE "LINUX"
+ # define LINUX_STACKBOTTOM
++ /* On I386 Linux, enable HEURISTIC2 as a backup to /proc data */
++ /* for the case where /proc is missing or nobbled (grsec) */
++# define HEURISTIC2
+ # if 0
+ # define HEURISTIC1
+ # undef STACK_GRAN
+@@ -1901,6 +1904,9 @@
+ # ifdef LINUX
+ # define OS_TYPE "LINUX"
+ # define LINUX_STACKBOTTOM
++ /* On x86_64 Linux, enable HEURISTIC2 as a backup to /proc data */
++ /* for the case where /proc is missing or nobbled (grsec) */
++# define HEURISTIC2
+ # if !defined(GC_LINUX_THREADS) || !defined(REDIRECT_MALLOC)
+ # define MPROTECT_VDB
+ # else
+diff -ur gc6.5.orig/os_dep.c gc6.5/os_dep.c
+--- gc6.5.orig/os_dep.c 2005-08-05 00:03:00.000000000 +0200
++++ gc6.5/os_dep.c 2005-08-05 00:07:56.000000000 +0200
+@@ -967,7 +967,13 @@
+ # endif
+ f = open("/proc/self/stat", O_RDONLY);
+ if (f < 0 || STAT_READ(f, stat_buf, STAT_BUF_SIZE) < 2 * STAT_SKIP) {
++ /* if /proc/self/stat isn't available, and HEURISTIC2 is possible, */
++ /* return NULL so that HEURISTIC2 will be tried. Otherwise bail. */
++# ifdef HEURISTIC2
++ return (ptr_t)NULL;
++# else
+ ABORT("Couldn't read /proc/self/stat");
++# endif
+ }
+ c = stat_buf[buf_offset++];
+ /* Skip the required number of fields. This number is hopefully */
+@@ -983,7 +989,16 @@
+ c = stat_buf[buf_offset++];
+ }
+ close(f);
+- if (result < 0x10000000) ABORT("Absurd stack bottom value");
++ if (result < 0x10000000) {
++ /* if stack base result is silly (e.g. is 0 due to grsec), and */
++ /* HEURISTIC2 is enabled, return NULL so that HEURISTIC2 will be */
++ /* tried. Otherwise bail. */
++# ifdef HEURISTIC2
++ return (ptr_t)NULL;
++# else
++ ABORT("Absurd stack bottom value");
++# endif
++ }
+ return (ptr_t)result;
+ }
+
+@@ -1045,6 +1060,12 @@
+ result = GC_freebsd_stack_base();
+ # endif
+ # ifdef HEURISTIC2
++/* if both LINUX_STACKBOTTOM and HEURISTIC2 are enabled, try HEURISTIC2 */
++/* when the LINUX_STACKBOTTOM returns NULL (indicating failure to get */
++/* a sensible result from /proc/self/stat) */
++# ifdef LINUX_STACKBOTTOM
++ if (result == (ptr_t)NULL) {
++# endif
+ # ifdef STACK_GROWS_DOWN
+ result = GC_find_limit((ptr_t)(&dummy), TRUE);
+ # ifdef HEURISTIC2_LIMIT
+@@ -1062,6 +1083,11 @@
+ }
+ # endif
+ # endif
++/* tail of extra 'if' condition when both LINUX_STACKBOTTOM and */
++/* HEURISTIC are configured. */
++# ifdef LINUX_STACKBOTTOM
++ }
++# endif
+
+ # endif /* HEURISTIC2 */
+ # ifdef STACK_GROWS_DOWN