summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Jones <cretin@gentoo.org>2004-09-09 18:08:52 +0000
committerStefan Jones <cretin@gentoo.org>2004-09-09 18:08:52 +0000
commit3edbd77120e343aacf11b2dd1fa70d0de483dd19 (patch)
treefe933594c898a4a8f534fc911b5dc2b69b22c81d /sys-devel/prelink
parentMaking multilib safe and closing bug #63438. (diff)
downloadhistorical-3edbd77120e343aacf11b2dd1fa70d0de483dd19.tar.gz
historical-3edbd77120e343aacf11b2dd1fa70d0de483dd19.tar.bz2
historical-3edbd77120e343aacf11b2dd1fa70d0de483dd19.zip
New Version and add experimental reexec of init
Diffstat (limited to 'sys-devel/prelink')
-rw-r--r--sys-devel/prelink/ChangeLog8
-rw-r--r--sys-devel/prelink/files/digest-prelink-200407071
-rw-r--r--sys-devel/prelink/files/prelink-20040707-init.patch61
-rw-r--r--sys-devel/prelink/prelink-20040707.ebuild41
4 files changed, 110 insertions, 1 deletions
diff --git a/sys-devel/prelink/ChangeLog b/sys-devel/prelink/ChangeLog
index 44e1199a17cb..8c95cc5fc8f9 100644
--- a/sys-devel/prelink/ChangeLog
+++ b/sys-devel/prelink/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for sys-devel/prelink
# Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/prelink/ChangeLog,v 1.31 2004/06/24 22:49:11 agriffis Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/prelink/ChangeLog,v 1.32 2004/09/09 18:08:52 cretin Exp $
+
+*prelink-20040707 (09 Sep 2004)
+
+ 09 Sep 2004; Stefan Jones <cretin@gentoo.org> :
+ New Version and add experimental reexec of init
+ Bugs #42929 and #56396
*prelink-20040317 (05 Apr 2004)
diff --git a/sys-devel/prelink/files/digest-prelink-20040707 b/sys-devel/prelink/files/digest-prelink-20040707
new file mode 100644
index 000000000000..735bb8d06da7
--- /dev/null
+++ b/sys-devel/prelink/files/digest-prelink-20040707
@@ -0,0 +1 @@
+MD5 aef688651d417e41d9c75c15f38a35e7 prelink-20040707.tar.bz2 902324
diff --git a/sys-devel/prelink/files/prelink-20040707-init.patch b/sys-devel/prelink/files/prelink-20040707-init.patch
new file mode 100644
index 000000000000..55bd8c88ac7e
--- /dev/null
+++ b/sys-devel/prelink/files/prelink-20040707-init.patch
@@ -0,0 +1,61 @@
+--- prelink-20040707/src/main.c.jj 2004-09-09 09:53:05.281838640 -0700
++++ prelink-20040707/src/main.c 2004-09-09 10:31:09.029656200 -0700
+@@ -58,6 +58,8 @@
+ const char *prelink_conf = PRELINK_CONF;
+ const char *prelink_cache = PRELINK_CACHE;
+ const char *undo_output;
++int noreexecinit;
++time_t initctime;
+
+ const char *argp_program_version = "prelink 1.0";
+
+@@ -111,6 +113,7 @@
+ {"mmap-region-end", OPT_MMAP_REG_END, "BASE_ADDRESS", OPTION_HIDDEN, "" },
+ {"seed", OPT_SEED, "SEED", OPTION_HIDDEN, "" },
+ {"compute-checksum", OPT_COMPUTE_CHECKSUM, 0, OPTION_HIDDEN, "" },
++ {"init", 'i', 0, 0, "Do not re-execute init" },
+ { 0 }
+ };
+
+@@ -222,12 +225,29 @@
+ case OPT_COMPUTE_CHECKSUM:
+ compute_checksum = 1;
+ break;
++ case 'i':
++ noreexecinit=1;
++ break;
+ default:
+ return ARGP_ERR_UNKNOWN;
+ }
+ return 0;
+ }
+
++time_t get_ctime(const char *file) {
++ struct stat st;
++ if(stat(file,&st) == 0)
++ return st.st_ctime;
++ return 0;
++}
++
++void checkinit() {
++ if(initctime != get_ctime("/sbin/init")) {
++ printf("Executing /sbin/init U\n");
++ system("/sbin/init U");
++ }
++}
++
+ static struct argp argp = { options, parse_opt, "[FILES]", argp_doc };
+
+ int
+@@ -247,6 +267,11 @@
+
+ argp_parse (&argp, argc, argv, 0, &remaining, 0);
+
++ if(!noreexecinit) {
++ initctime = get_ctime("/sbin/init");
++ atexit(checkinit);
++ }
++
+ if (ld_library_path == NULL)
+ ld_library_path = getenv ("LD_LIBRARY_PATH");
+
diff --git a/sys-devel/prelink/prelink-20040707.ebuild b/sys-devel/prelink/prelink-20040707.ebuild
new file mode 100644
index 000000000000..57755b5e380c
--- /dev/null
+++ b/sys-devel/prelink/prelink-20040707.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/prelink/prelink-20040707.ebuild,v 1.1 2004/09/09 18:08:52 cretin Exp $
+
+inherit eutils
+
+DESCRIPTION="Modifies executables so runtime libraries load faster"
+HOMEPAGE="ftp://people.redhat.com/jakub/prelink"
+SRC_URI="mirror://gentoo/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="-x86 -amd64 -ppc -alpha"
+IUSE=""
+
+DEPEND=">=dev-libs/elfutils-0.94
+ !dev-libs/libelf
+ >=sys-libs/glibc-2.3.2-r9
+ >=sys-devel/binutils-2.13.90.0.10"
+
+S=${WORKDIR}/${PN}
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+ epatch ${FILESDIR}/${P}-init.patch
+}
+
+src_compile() {
+ econf || die "Configure failed"
+ emake || die "Make Failed"
+}
+
+src_install() {
+ einstall || die "Install Failed"
+
+ dodoc INSTALL TODO ChangeLog THANKS COPYING README AUTHORS NEWS
+
+ insinto /etc
+ doins ${S}/doc/prelink.conf
+}