summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Schlemmer <azarah@gentoo.org>2003-01-26 15:25:01 +0000
committerMartin Schlemmer <azarah@gentoo.org>2003-01-26 15:25:01 +0000
commita295bdb3b58e55e2c9a6ce280ef0bdb616c01193 (patch)
tree37cdad5358f487c57bcf663b5b7475d7262e9723 /sys-devel/binutils
parentversion bump (diff)
downloadhistorical-a295bdb3b58e55e2c9a6ce280ef0bdb616c01193.tar.gz
historical-a295bdb3b58e55e2c9a6ce280ef0bdb616c01193.tar.bz2
historical-a295bdb3b58e55e2c9a6ce280ef0bdb616c01193.zip
new version
Diffstat (limited to 'sys-devel/binutils')
-rw-r--r--sys-devel/binutils/ChangeLog7
-rw-r--r--sys-devel/binutils/binutils-2.13.90.0.18.ebuild168
-rw-r--r--sys-devel/binutils/files/2.13/binutils-2.13.90.0.16-array-sects-compat.patch20
-rw-r--r--sys-devel/binutils/files/2.13/binutils-2.13.90.0.16-sparc-nonpic.patch96
-rw-r--r--sys-devel/binutils/files/digest-binutils-2.13.90.0.181
5 files changed, 291 insertions, 1 deletions
diff --git a/sys-devel/binutils/ChangeLog b/sys-devel/binutils/ChangeLog
index e428976d8935..4aeb53b1a5b0 100644
--- a/sys-devel/binutils/ChangeLog
+++ b/sys-devel/binutils/ChangeLog
@@ -1,6 +1,11 @@
# ChangeLog for sys-devel/binutils
# Copyright 2002 Gentoo Technologies, Inc.; Distributed under the GPL
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/binutils/ChangeLog,v 1.23 2003/01/19 20:28:42 tuxus Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/binutils/ChangeLog,v 1.24 2003/01/26 15:25:01 azarah Exp $
+
+*binutils-2.13.90.0.18 (26 Jan 2003)
+
+ 26 Jan 2003; Martin Schlemmer <azarah@gentoo.org> binutils-2.13.90.0.18.ebuild :
+ New version. Some cleanups + patches.
08 Jan 2003; Martin Schlemmer <azarah@gentoo.org> binutils-2.13.90.0.16-r1.ebuild :
Mark stable.
diff --git a/sys-devel/binutils/binutils-2.13.90.0.18.ebuild b/sys-devel/binutils/binutils-2.13.90.0.18.ebuild
new file mode 100644
index 000000000000..9047f7369571
--- /dev/null
+++ b/sys-devel/binutils/binutils-2.13.90.0.18.ebuild
@@ -0,0 +1,168 @@
+# Copyright 1999-2002 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/binutils/binutils-2.13.90.0.18.ebuild,v 1.1 2003/01/26 15:25:01 azarah Exp $
+
+IUSE="nls bootstrap static build"
+
+# NOTE to Maintainer: ChangeLog states that it no longer use perl to build
+# the manpages, but seems this is incorrect ....
+
+inherit eutils libtool flag-o-matic
+
+# Generate borked binaries. Bug #6730
+filter-flags "-fomit-frame-pointer"
+
+S="${WORKDIR}/${P}"
+DESCRIPTION="Tools necessary to build programs"
+SRC_URI="ftp://ftp.kernel.org/pub/linux/devel/binutils/${P}.tar.bz2
+ ftp://ftp.kernel.org/pub/linux/devel/binutils/test/${P}.tar.bz2"
+HOMEPAGE="http://sources.redhat.com/binutils/"
+
+SLOT="0"
+LICENSE="GPL-2|LGPL-2"
+KEYWORDS="~x86 ~ppc ~alpha ~sparc ~mips"
+
+DEPEND="virtual/glibc
+ >=sys-apps/portage-2.0.21
+ nls? ( sys-devel/gettext )
+ || ( sys-devel/perl
+ ( !build? ( sys-devel/perl ) )
+ ( !bootstrap? ( sys-devel/perl ) )
+ )"
+# This is a hairy one. Basically depend on sys-devel/perl
+# if "build" or "bootstrap" not in USE.
+
+src_unpack() {
+
+ unpack ${A}
+
+ cd ${S}
+ # Various patches from Redhat/Mandrake...
+ epatch ${FILESDIR}/2.13/${PN}-2.13.90.0.16-sparc-nonpic.patch
+ epatch ${FILESDIR}/2.13/${PN}-2.13.90.0.10-glibc21.patch
+ epatch ${FILESDIR}/2.13/${PN}-2.13.90.0.10-ia64-brl.patch
+ epatch ${FILESDIR}/2.13/${PN}-2.13.90.0.10-x86_64-testsuite.patch
+ epatch ${FILESDIR}/2.13/${PN}-2.13.90.0.10-x86_64-gotpcrel.patch
+# This one needs to be ported, but I dont feel like it right now.
+# epatch ${FILESDIR}/2.13/${PN}-2.13.90.0.16-eh-frame-ro.patch
+ use x86 &> /dev/null \
+ && epatch ${FILESDIR}/2.13/${PN}-2.13.90.0.16-array-sects-compat.patch
+
+ # Add patches for mips
+ if [ "${ARCH}" = "mips" ]
+ then
+ cd ${S}
+ chmod +x mips/README
+ ./mips/README
+ fi
+}
+
+src_compile() {
+ local myconf=""
+
+ use nls && \
+ myconf="${myconf} --without-included-gettext" || \
+ myconf="${myconf} --disable-nls"
+
+ # Fix /usr/lib/libbfd.la
+ elibtoolize --portage
+
+ ./configure --enable-shared \
+ --enable-64-bit-bfd \
+ --prefix=/usr \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --host=${CHOST} \
+ ${myconf} || die
+
+ make configure-bfd || die
+ make headers -C bfd || die
+
+ if [ "`use static`" ]
+ then
+ emake tooldir="${ROOT}/usr/bin" \
+ -e LDFLAGS="-all-static" \
+ all || die
+ else
+ emake tooldir="${ROOT}/usr/bin" \
+ all || die
+ fi
+
+ if [ -z "`use build`" ]
+ then
+ if [ -z "`use bootstrap`" ]
+ then
+ # Nuke the manpages to recreate them (only use this if we have perl)
+ find . -name '*.1' -exec rm -f {} \; || :
+ fi
+ # Make the info pages (makeinfo included with gcc is used)
+ make info || die
+ fi
+}
+
+src_install() {
+
+ make prefix=${D}/usr \
+ mandir=${D}/usr/share/man \
+ infodir=${D}/usr/share/info \
+ install || die
+
+ insinto /usr/include
+ doins include/libiberty.h
+
+ # c++filt is included with gcc -- what are these GNU people thinking?
+ # but not the manpage, so leave that!
+ rm -f ${D}/usr/bin/c++filt #${D}/usr/share/man/man1/c++filt*
+
+ # By default strip has a symlink going from /usr/${CHOST}/bin/strip to
+ # /usr/bin/strip we should reverse it:
+
+ rm ${D}/usr/${CHOST}/bin/strip; mv ${D}/usr/bin/strip ${D}/usr/${CHOST}/bin/strip
+ # The strip symlink gets created in the loop below
+
+ # By default ar, as, ld, nm, ranlib and strip are in two places; create
+ # symlinks. This will reduce the size of the tbz2 significantly. We also
+ # move all the stuff in /usr/bin to /usr/${CHOST}/bin and create the
+ # appropriate symlinks. Things are cleaner that way.
+ cd ${D}/usr/bin
+ local x=""
+ for x in * strip
+ do
+ if [ ! -e ../${CHOST}/bin/${x} ]
+ then
+ mv ${x} ../${CHOST}/bin/${x}
+ else
+ rm -f ${x}
+ fi
+ ln -s ../${CHOST}/bin/${x} ${x}
+ done
+
+ cd ${S}
+ if [ -z "`use build`" ]
+ then
+ make prefix=${D}/usr \
+ mandir=${D}/usr/share/man \
+ infodir=${D}/usr/share/info \
+ install-info || die
+
+ dodoc COPYING* README
+ docinto bfd
+ dodoc bfd/ChangeLog* bfd/COPYING bfd/README bfd/PORTING bfd/TODO
+ docinto binutils
+ dodoc binutils/ChangeLog binutils/NEWS binutils/README
+ docinto gas
+ dodoc gas/ChangeLog* gas/CONTRIBUTORS gas/COPYING gas/NEWS gas/README*
+ docinto gprof
+ dodoc gprof/ChangeLog* gprof/TEST gprof/TODO
+ docinto ld
+ dodoc ld/ChangeLog* ld/README ld/NEWS ld/TODO
+ docinto libiberty
+ dodoc libiberty/ChangeLog* libiberty/COPYING.LIB libiberty/README
+ docinto opcodes
+ dodoc opcodes/ChangeLog*
+ # Install pre-generated manpages .. currently we do not ...
+ else
+ rm -rf ${D}/usr/share/man
+ fi
+}
+
diff --git a/sys-devel/binutils/files/2.13/binutils-2.13.90.0.16-array-sects-compat.patch b/sys-devel/binutils/files/2.13/binutils-2.13.90.0.16-array-sects-compat.patch
new file mode 100644
index 000000000000..2f2993ffe5b3
--- /dev/null
+++ b/sys-devel/binutils/files/2.13/binutils-2.13.90.0.16-array-sects-compat.patch
@@ -0,0 +1,20 @@
+--- ld/scripttempl/elf.sc.array-sects-compat~ 2003-01-03 22:21:16.000000000 -0200
++++ ld/scripttempl/elf.sc 2003-01-03 22:27:42.000000000 -0200
+@@ -288,6 +288,17 @@
+ ${CREATE_SHLIB-${RELOCATING+. = ${DATA_ADDR-${DATA_SEGMENT_ALIGN}};}}
+ ${CREATE_SHLIB+${RELOCATING+. = ${SHLIB_DATA_ADDR-${DATA_SEGMENT_ALIGN}};}}
+
++ /* For backward-compatibility with tools that don't support the
++ *_array_* sections below, our glibc's crt files contain weak
++ definitions of symbols that they reference. We don't want to use
++ them, though, unless they're strictly necessary, because they'd
++ bring us empty sections, unlike PROVIDE below, so we drop the
++ sections from the crt files here. */
++ /DISCARD/ : {
++ */crti.o(.init_array .fini_array .preinit_array)
++ */crtn.o(.init_array .fini_array .preinit_array)
++ }
++
+ /* Ensure the __preinit_array_start label is properly aligned. We
+ could instead move the label definition inside the section, but
+ the linker would then create the section even if it turns out to
diff --git a/sys-devel/binutils/files/2.13/binutils-2.13.90.0.16-sparc-nonpic.patch b/sys-devel/binutils/files/2.13/binutils-2.13.90.0.16-sparc-nonpic.patch
new file mode 100644
index 000000000000..2639a82e92fe
--- /dev/null
+++ b/sys-devel/binutils/files/2.13/binutils-2.13.90.0.16-sparc-nonpic.patch
@@ -0,0 +1,96 @@
+2002-04-20 Jakub Jelinek <jakub@redhat.com>
+
+ * elf32-sparc.c (elf32_sparc_relocate_section): Find real output
+ section with SEC_MERGE.
+ * elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
+
+--- bfd/elf32-sparc.c.jj Sat Apr 20 22:11:57 2002
++++ bfd/elf32-sparc.c Sat Apr 20 23:06:33 2002
+@@ -1144,7 +1144,7 @@ elf32_sparc_relocate_section (output_bfd
+ struct elf_link_hash_entry *h;
+ Elf_Internal_Sym *sym;
+ asection *sec;
+- bfd_vma relocation, off;
++ bfd_vma relocation, off, orig_addend = 0;
+ bfd_reloc_status_type r;
+ boolean is_plt = false;
+ boolean unresolved_reloc;
+@@ -1192,6 +1192,7 @@ elf32_sparc_relocate_section (output_bfd
+ {
+ sym = local_syms + r_symndx;
+ sec = local_sections[r_symndx];
++ orig_addend = rel->r_addend;
+ relocation = _bfd_elf_rela_local_sym (output_bfd, sym, sec, rel);
+ }
+ else
+@@ -1527,6 +1528,25 @@ elf32_sparc_relocate_section (output_bfd
+ asection *osec;
+
+ osec = sec->output_section;
++ /* FIXME: As soon as making sections zero size
++ is possible, this if can go away. */
++ if (bfd_is_abs_section (osec)
++ && h == NULL
++ && (sec->flags & SEC_MERGE)
++ && ELF_ST_TYPE (sym->st_info) == STT_SECTION
++ && (elf_section_data (sec)->sec_info_type
++ == ELF_INFO_TYPE_MERGE))
++ {
++ asection *msec;
++
++ msec = sec;
++ _bfd_merged_section_offset (output_bfd, &msec,
++ elf_section_data (sec)->sec_info,
++ sym->st_value + orig_addend,
++ (bfd_vma) 0);
++ osec = msec->output_section;
++ }
++
+ indx = elf_section_data (osec)->dynindx;
+
+ /* FIXME: we really should be able to link non-pic
+--- bfd/elf64-sparc.c.jj Sat Apr 20 22:11:57 2002
++++ bfd/elf64-sparc.c Sat Apr 20 23:12:18 2002
+@@ -1939,7 +1939,7 @@ sparc64_elf_relocate_section (output_bfd
+ struct elf_link_hash_entry *h;
+ Elf_Internal_Sym *sym;
+ asection *sec;
+- bfd_vma relocation, off;
++ bfd_vma relocation, off, orig_addend = 0;
+ bfd_reloc_status_type r;
+ boolean is_plt = false;
+ boolean unresolved_reloc;
+@@ -1982,6 +1982,7 @@ sparc64_elf_relocate_section (output_bfd
+ {
+ sym = local_syms + r_symndx;
+ sec = local_sections[r_symndx];
++ orig_addend = rel->r_addend;
+ relocation = _bfd_elf_rela_local_sym (output_bfd, sym, sec, rel);
+ }
+ else
+@@ -2211,6 +2212,25 @@ sparc64_elf_relocate_section (output_bfd
+ asection *osec;
+
+ osec = sec->output_section;
++ /* FIXME: As soon as making sections zero size
++ is possible, this if can go away. */
++ if (bfd_is_abs_section (osec)
++ && h == NULL
++ && (sec->flags & SEC_MERGE)
++ && ELF_ST_TYPE (sym->st_info) == STT_SECTION
++ && (elf_section_data (sec)->sec_info_type
++ == ELF_INFO_TYPE_MERGE))
++ {
++ asection *msec;
++
++ msec = sec;
++ _bfd_merged_section_offset (output_bfd, &msec,
++ elf_section_data (sec)->sec_info,
++ sym->st_value + orig_addend,
++ (bfd_vma) 0);
++ osec = msec->output_section;
++ }
++
+ indx = elf_section_data (osec)->dynindx;
+
+ /* FIXME: we really should be able to link non-pic
diff --git a/sys-devel/binutils/files/digest-binutils-2.13.90.0.18 b/sys-devel/binutils/files/digest-binutils-2.13.90.0.18
new file mode 100644
index 000000000000..a07b33c1f3e4
--- /dev/null
+++ b/sys-devel/binutils/files/digest-binutils-2.13.90.0.18
@@ -0,0 +1 @@
+MD5 422a6fc64ebf785cad64a76defd4a4b6 binutils-2.13.90.0.18.tar.bz2 9849479