summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Schlemmer <azarah@gentoo.org>2005-05-19 22:51:14 +0000
committerMartin Schlemmer <azarah@gentoo.org>2005-05-19 22:51:14 +0000
commit8b941b55f75275d1a4dca022bc934b2f86639f4c (patch)
tree723dc42cbf07aaca6c449edc6d8d4e64012db9c7 /sys-devel/prelink
parentAdding net-misc/curl as a dep. Thanks to Priit Laes in bug #93247 (diff)
downloadgentoo-2-8b941b55f75275d1a4dca022bc934b2f86639f4c.tar.gz
gentoo-2-8b941b55f75275d1a4dca022bc934b2f86639f4c.tar.bz2
gentoo-2-8b941b55f75275d1a4dca022bc934b2f86639f4c.zip
Update version. Fix building on amd64 with gcc4.
(Portage version: 2.0.51.22-r1)
Diffstat (limited to 'sys-devel/prelink')
-rw-r--r--sys-devel/prelink/ChangeLog8
-rw-r--r--sys-devel/prelink/Manifest22
-rw-r--r--sys-devel/prelink/files/digest-prelink-200503141
-rw-r--r--sys-devel/prelink/files/prelink-20050314-amd64-gcc4.patch266
-rw-r--r--sys-devel/prelink/prelink-20050314.ebuild71
5 files changed, 352 insertions, 16 deletions
diff --git a/sys-devel/prelink/ChangeLog b/sys-devel/prelink/ChangeLog
index 0c520829ce6f..c16e1e79a507 100644
--- a/sys-devel/prelink/ChangeLog
+++ b/sys-devel/prelink/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for sys-devel/prelink
# Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/prelink/ChangeLog,v 1.40 2005/03/13 13:46:04 azarah Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/prelink/ChangeLog,v 1.41 2005/05/19 22:51:14 azarah Exp $
+
+*prelink-20050314 (19 May 2005)
+
+ 19 May 2005; Martin Schlemmer <azarah@gentoo.org>
+ +files/prelink-20050314-amd64-gcc4.patch, +prelink-20050314.ebuild:
+ Update version. Fix building on amd64 with gcc4.
*prelink-20050207 (13 Mar 2005)
diff --git a/sys-devel/prelink/Manifest b/sys-devel/prelink/Manifest
index dfe1040bee55..6ad762ec081f 100644
--- a/sys-devel/prelink/Manifest
+++ b/sys-devel/prelink/Manifest
@@ -1,21 +1,13 @@
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
-
+MD5 5acbf905585cc9da0b648b79b0004f54 prelink-20050314.ebuild 1759
+MD5 66f35dae58b6c51ae720c89a7c402c90 prelink-20040707.ebuild 1225
MD5 0de36a470fa490337cb9512d676af08f prelink-20040317.ebuild 1033
MD5 cf06b76f7e435cc7259eff68eb09f67d ChangeLog 4221
-MD5 9a09f8d531c582e78977dbfd96edc1f2 metadata.xml 164
-MD5 66f35dae58b6c51ae720c89a7c402c90 prelink-20040707.ebuild 1225
MD5 043e4ecc6c5b592d7cb82432ace94580 prelink-20041123.ebuild 1256
+MD5 9a09f8d531c582e78977dbfd96edc1f2 metadata.xml 164
MD5 5acbf905585cc9da0b648b79b0004f54 prelink-20050207.ebuild 1759
-MD5 2c0d5d2697801972b5ecfa7e99e09791 files/digest-prelink-20040317 69
-MD5 3dd887760b0363758e913c08a69a80d5 files/digest-prelink-20040707 69
MD5 23dd82792b9637171b3f2fffc51eeea9 files/prelink-20040707-init.patch 1471
-MD5 e80448ef4bc50ee68f295191804da61c files/digest-prelink-20041123 69
+MD5 e044ee8e67c7ef50523a1ccd4dd08e90 files/digest-prelink-20050314 69
+MD5 3dd887760b0363758e913c08a69a80d5 files/digest-prelink-20040707 69
MD5 53592bceae80993862c5dac04667c450 files/digest-prelink-20050207 69
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.0 (GNU/Linux)
-
-iD8DBQFCNETh1ZcsMnZjRyIRAu8dAJ9D6lISkFGG0pAHlNv74MbllIdd8ACfYqCF
-zd498gH/erCmiIMi15UKluA=
-=auJP
------END PGP SIGNATURE-----
+MD5 2c0d5d2697801972b5ecfa7e99e09791 files/digest-prelink-20040317 69
+MD5 e80448ef4bc50ee68f295191804da61c files/digest-prelink-20041123 69
diff --git a/sys-devel/prelink/files/digest-prelink-20050314 b/sys-devel/prelink/files/digest-prelink-20050314
new file mode 100644
index 000000000000..5b8ba4223ee0
--- /dev/null
+++ b/sys-devel/prelink/files/digest-prelink-20050314
@@ -0,0 +1 @@
+MD5 571991a3fdf2535a67c82d170ac37171 prelink-20050314.tar.bz2 905343
diff --git a/sys-devel/prelink/files/prelink-20050314-amd64-gcc4.patch b/sys-devel/prelink/files/prelink-20050314-amd64-gcc4.patch
new file mode 100644
index 000000000000..8cf4c53f5538
--- /dev/null
+++ b/sys-devel/prelink/files/prelink-20050314-amd64-gcc4.patch
@@ -0,0 +1,266 @@
+Rather dumb (Ok, so I was lazy) patch to fix:
+
+ exec.c: In function 'prelink_exec':
+ exec.c:119: error: jump into scope of identifier with variably modified type
+
+
+--- prelink/src/exec.c 2005-05-20 00:38:15.000000000 +0200
++++ prelink.az/src/exec.c 2005-05-20 00:43:02.000000000 +0200
+@@ -27,6 +27,13 @@
+ #include "reloc.h"
+ #include "space.h"
+
++#define goto_error_out \
++ { \
++ free (liblist); \
++ free (move); \
++ return 1; \
++ }
++
+ int
+ update_dynamic_tags (DSO *dso, GElf_Shdr *shdr, GElf_Shdr *old_shdr,
+ struct section_move *move)
+@@ -116,7 +123,7 @@
+ Elf_Data *data;
+
+ if (undo_sections (dso, undo, move, &rinfo, &ehdr, phdr, shdr))
+- goto error_out;
++ goto_error_out
+ data = elf_getdata (dso->scn[undo], NULL);
+ assert (data->d_buf != NULL);
+ assert (data->d_off == 0);
+@@ -127,7 +134,7 @@
+ {
+ error (0, ENOMEM, "%s: Could not create .gnu.prelink_undo section",
+ dso->filename);
+- goto error_out;
++ goto_error_out
+ }
+ memcpy (dso->undo.d_buf, data->d_buf, data->d_size);
+ ehdr.e_shstrndx = dso->ehdr.e_shstrndx;
+@@ -145,7 +152,7 @@
+ if (dynstrndx == dso->ehdr.e_shnum)
+ {
+ error (0, 0, "%s: Could not find .dynstr section", dso->filename);
+- goto error_out;
++ goto_error_out
+ }
+
+ dynstrndxnew = move->old_to_new[dynstrndx];
+@@ -159,7 +166,7 @@
+ {
+ error (0, ENOMEM, "%s: Cannot build .gnu.liblist section",
+ dso->filename);
+- goto error_out;
++ goto_error_out
+ }
+ }
+ else
+@@ -342,7 +349,7 @@
+ {
+ new[i] = find_readonly_space (dso, add + i, &ehdr, phdr, shdr, &adjust);
+ if (new[i] == 0)
+- goto error_out;
++ goto_error_out
+ add_section (move, new[i]);
+ ++adjust.newcount;
+ if (old[i])
+@@ -429,7 +436,7 @@
+ dso->ehdr = ehdr;
+ memcpy (dso->phdr, phdr, ehdr.e_phnum * sizeof (GElf_Phdr));
+ if (reopen_dso (dso, move, NULL))
+- goto error_out;
++ goto_error_out
+
+ assert (i == dso->ehdr.e_shnum);
+
+@@ -471,7 +478,7 @@
+ {
+ error (0, ENOMEM, "%s: Could not convert NOBITS section into PROGBITS",
+ dso->filename);
+- goto error_out;
++ goto_error_out
+ }
+ }
+ data->d_type = ELF_T_BYTE;
+@@ -500,7 +507,7 @@
+ {
+ error (0, 0, "%s: NOBITS section followed by non-NOBITS section in the same segment",
+ dso->filename);
+- goto error_out;
++ goto_error_out
+ }
+ continue;
+ }
+@@ -530,7 +537,7 @@
+ {
+ error (0, ENOMEM, "%s: Could not convert NOBITS section into PROGBITS",
+ dso->filename);
+- goto error_out;
++ goto_error_out
+ }
+ }
+ memset (data->d_buf, 0, data->d_size);
+@@ -581,7 +588,7 @@
+ {
+ error (0, 0, "%s: section spans beyond end of segment",
+ dso->filename);
+- goto error_out;
++ goto_error_out
+ }
+ else
+ {
+@@ -615,7 +622,7 @@
+ if (adjust_dso_nonalloc (dso, last + 1,
+ dso->shdr[sfirst].sh_offset,
+ adj))
+- goto error_out;
++ goto_error_out
+ }
+ }
+
+@@ -638,7 +645,7 @@
+ dso->shdr[j].sh_size
+ = dso->shdr[j].sh_size / 3 * 2;
+ if (convert_rel_to_rela (dso, j))
+- goto error_out;
++ goto_error_out
+ dso->shdr[j].sh_size = shdr[j].sh_size;
+ }
+ }
+@@ -665,7 +672,7 @@
+ dso->shdr[rinfo.first].sh_size
+ = dso->shdr[rinfo.first].sh_size / 3 * 2;
+ if (convert_rel_to_rela (dso, rinfo.plt))
+- goto error_out;
++ goto_error_out
+ dso->shdr[rinfo.plt].sh_size = shdr[rinfo.plt].sh_size;
+ }
+ else if (rinfonew.rel_to_rela_plt)
+@@ -690,7 +697,7 @@
+ {
+ error (0, ENOMEM, "%s: Could not append names needed for .gnu.liblist to .dynstr",
+ dso->filename);
+- goto error_out;
++ goto_error_out
+ }
+ ptr = data->d_buf + shdr_after_undo[dynstrndxnew].sh_size;
+ data->d_size = dso->shdr[i].sh_size;
+@@ -714,7 +721,7 @@
+
+ dso->shdr[new_sdynbss].sh_name = shstrtabadd (dso, ".sdynbss");
+ if (dso->shdr[new_sdynbss].sh_name == 0)
+- goto error_out;
++ goto_error_out
+
+ dso->shdr[new_sdynbss].sh_size =
+ info->sdynbss_base + info->sdynbss_size
+@@ -738,7 +745,7 @@
+ {
+ error (0, 0, "%s: Copy relocs don't point into .sdynbss section",
+ dso->filename);
+- goto error_out;
++ goto_error_out
+ }
+ }
+ data = elf_getdata (dso->scn[new_sdynbss], NULL);
+@@ -781,7 +788,7 @@
+ else
+ dso->shdr[new_dynbss].sh_name = shstrtabadd (dso, ".dynbss");
+ if (dso->shdr[new_dynbss].sh_name == 0)
+- goto error_out;
++ goto_error_out
+
+ dso->shdr[new_dynbss].sh_size =
+ info->dynbss_base + info->dynbss_size
+@@ -815,7 +822,7 @@
+ {
+ error (0, 0, "%s: COPY relocs not present at start of first SHT_NOBITS section",
+ dso->filename);
+- goto error_out;
++ goto_error_out
+ }
+ }
+
+@@ -885,7 +892,7 @@
+ if (adjust_dso_nonalloc (dso, new_dynbss + 2,
+ dso->shdr[new_dynbss].sh_offset,
+ adj))
+- goto error_out;
++ goto_error_out
+ }
+ }
+ else
+@@ -898,7 +905,7 @@
+ {
+ error (0, 0, "%s: Copy relocs don't point into .dynbss section",
+ dso->filename);
+- goto error_out;
++ goto_error_out
+ }
+ }
+ data = elf_getdata (dso->scn[new_dynbss], NULL);
+@@ -942,7 +949,7 @@
+ dso->shdr[i].sh_entsize = shdr[i].sh_entsize;
+ dso->shdr[i].sh_name = shstrtabadd (dso, ".gnu.liblist");
+ if (dso->shdr[i].sh_name == 0)
+- goto error_out;
++ goto_error_out
+ else
+ {
+ Elf_Data *data;
+@@ -959,9 +966,9 @@
+ data->d_align = sizeof (GElf_Word);
+ data->d_version = EV_CURRENT;
+ if (set_dynamic (dso, DT_GNU_LIBLIST, dso->shdr[i].sh_addr, 1))
+- goto error_out;
++ goto_error_out
+ if (set_dynamic (dso, DT_GNU_LIBLISTSZ, dso->shdr[i].sh_size, 1))
+- goto error_out;
++ goto_error_out
+ }
+
+ /* Create the conflict list if necessary. */
+@@ -984,7 +991,7 @@
+ {
+ error (0, ENOMEM, "%s: Could not build .gnu.conflict section",
+ dso->filename);
+- goto error_out;
++ goto_error_out
+ }
+ }
+ else
+@@ -1007,11 +1014,11 @@
+ dso->shdr[i].sh_link = j;
+ dso->shdr[i].sh_name = shstrtabadd (dso, ".gnu.conflict");
+ if (dso->shdr[i].sh_name == 0)
+- goto error_out;
++ goto_error_out
+ if (set_dynamic (dso, DT_GNU_CONFLICT, dso->shdr[i].sh_addr, 1))
+- goto error_out;
++ goto_error_out
+ if (set_dynamic (dso, DT_GNU_CONFLICTSZ, dso->shdr[i].sh_size, 1))
+- goto error_out;
++ goto_error_out
+ }
+
+ if (undo != -1)
+@@ -1046,16 +1053,11 @@
+ recompute_nonalloc_offsets (dso);
+
+ if (update_dynamic_tags (dso, dso->shdr, old_shdr, move))
+- goto error_out;
++ goto_error_out
+
+ if (update_dynamic_rel (dso, &rinfo))
+- goto error_out;
++ goto_error_out
+
+ free (move);
+ return 0;
+-
+-error_out:
+- free (liblist);
+- free (move);
+- return 1;
+ }
diff --git a/sys-devel/prelink/prelink-20050314.ebuild b/sys-devel/prelink/prelink-20050314.ebuild
new file mode 100644
index 000000000000..514576b3f7ca
--- /dev/null
+++ b/sys-devel/prelink/prelink-20050314.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/prelink/prelink-20050314.ebuild,v 1.1 2005/05/19 22:51:14 azarah 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
+ http://dev.gentoo.org/~azarah/prelink/${P}.tar.bz2
+ ftp://people.redhat.com/jakub/prelink/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~x86 ~amd64 ~ppc ~alpha"
+IUSE=""
+
+DEPEND=">=dev-libs/elfutils-0.100
+ !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}/${PN}-20040707-init.patch
+ epatch ${FILESDIR}/${P}-amd64-gcc4.patch
+
+ # Build our /etc/env.d/60prelink
+ cat > "${S}/60prelink" <<-EOF
+ $(
+ # Need to initialize PRELINK_PATH_MASK so that we can
+ # just add ':${x}' below.
+ PRELINK_PATH_MASK="/lib/modules"
+ # Ok, now add the rest
+ for x in /usr/$(get_libdir)/locale \
+ /usr/$(get_libdir)/wine \
+ /usr/$(get_libdir)/valgrind \
+ "*.la" "*.png" "*.py" "*.pl" "*.pm" \
+ "*.sh" "*.xml" "*.xslt" "*.a" "*.js" ; do
+ PRELINK_PATH_MASK="${PRELINK_PATH_MASK}:${x}"
+ done
+ # Now add it quoted
+ echo PRELINK_PATH_MASK="\"${PRELINK_PATH_MASK}\""
+ )
+ PRELINK_PATH=""
+ EOF
+}
+
+src_compile() {
+ econf || die "Configure failed"
+ emake || die "Make Failed"
+}
+
+src_install() {
+ einstall || die "Install Failed"
+
+ doenvd ${S}/60prelink
+
+ dodoc INSTALL TODO ChangeLog THANKS COPYING README AUTHORS NEWS
+}
+
+pkg_postinst() {
+ echo
+ einfo "You may wish to read the Gentoo Linux Prelink Guide, which can be"
+ einfo "found online at:"
+ einfo " http://www.gentoo.org/doc/en/prelink-howto.xml"
+ echo
+}