diff options
author | 2004-09-09 18:08:52 +0000 | |
---|---|---|
committer | 2004-09-09 18:08:52 +0000 | |
commit | 3edbd77120e343aacf11b2dd1fa70d0de483dd19 (patch) | |
tree | fe933594c898a4a8f534fc911b5dc2b69b22c81d /sys-devel/prelink | |
parent | Making multilib safe and closing bug #63438. (diff) | |
download | historical-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/ChangeLog | 8 | ||||
-rw-r--r-- | sys-devel/prelink/files/digest-prelink-20040707 | 1 | ||||
-rw-r--r-- | sys-devel/prelink/files/prelink-20040707-init.patch | 61 | ||||
-rw-r--r-- | sys-devel/prelink/prelink-20040707.ebuild | 41 |
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 +} |