diff options
author | Martin Schlemmer <azarah@gentoo.org> | 2005-05-19 22:51:14 +0000 |
---|---|---|
committer | Martin Schlemmer <azarah@gentoo.org> | 2005-05-19 22:51:14 +0000 |
commit | 8b941b55f75275d1a4dca022bc934b2f86639f4c (patch) | |
tree | 723dc42cbf07aaca6c449edc6d8d4e64012db9c7 /sys-devel | |
parent | Adding net-misc/curl as a dep. Thanks to Priit Laes in bug #93247 (diff) | |
download | gentoo-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')
-rw-r--r-- | sys-devel/prelink/ChangeLog | 8 | ||||
-rw-r--r-- | sys-devel/prelink/Manifest | 22 | ||||
-rw-r--r-- | sys-devel/prelink/files/digest-prelink-20050314 | 1 | ||||
-rw-r--r-- | sys-devel/prelink/files/prelink-20050314-amd64-gcc4.patch | 266 | ||||
-rw-r--r-- | sys-devel/prelink/prelink-20050314.ebuild | 71 |
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 +} |