summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Wourms <dragon@gentoo.org>2003-03-22 16:34:31 +0000
committerNicholas Wourms <dragon@gentoo.org>2003-03-22 16:34:31 +0000
commitdf8a894547cd367a2774b666768c730cc2e038dc (patch)
tree7872bfa5ccefc6ffd233dee9db31579d6cee043b /sys-devel
parentmissing ~ppc (diff)
downloadgentoo-2-df8a894547cd367a2774b666768c730cc2e038dc.tar.gz
gentoo-2-df8a894547cd367a2774b666768c730cc2e038dc.tar.bz2
gentoo-2-df8a894547cd367a2774b666768c730cc2e038dc.zip
Bump the binutils ebuild to a new beta to resolve critical mips gas issues. Made keywords "-arch" for all other platforms.
Diffstat (limited to 'sys-devel')
-rw-r--r--sys-devel/binutils/ChangeLog17
-rw-r--r--sys-devel/binutils/binutils-2.13.90.0.20.ebuild164
-rw-r--r--sys-devel/binutils/files/2.13/binutils-2.13.90.0.10-x86_64-gotpcrel.patch4
-rw-r--r--sys-devel/binutils/files/2.13/binutils-2.13.90.0.18-testsuite-Wall-fixes.patch32
-rw-r--r--sys-devel/binutils/files/2.13/binutils-2.13.90.0.20-array-sects-compat.patch20
-rw-r--r--sys-devel/binutils/files/2.13/binutils-2.13.90.0.20-gas-mips-gprel.patch21
-rw-r--r--sys-devel/binutils/files/digest-binutils-2.13.90.0.201
7 files changed, 258 insertions, 1 deletions
diff --git a/sys-devel/binutils/ChangeLog b/sys-devel/binutils/ChangeLog
index 52fddb11c8ee..d36b810f8099 100644
--- a/sys-devel/binutils/ChangeLog
+++ b/sys-devel/binutils/ChangeLog
@@ -1,6 +1,21 @@
# ChangeLog for sys-devel/binutils
# Copyright 2002-2003 Gentoo Technologies, Inc.; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/binutils/ChangeLog,v 1.37 2003/03/09 02:51:07 azarah Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/binutils/ChangeLog,v 1.38 2003/03/22 16:34:31 dragon Exp $
+
+*binutils-2.13.90.0.20 (22 Mar 2003)
+
+ 22 Mar 2003; Nicholas Wourms <dragon@gentoo.org>
+ binutils-2.13.90.0.20.ebuild,
+ files/2.13/binutils-2.13.90.0.10-x86_64-gotpcrel.patch,
+ files/2.13/binutils-2.13.90.0.18-testsuite-Wall-fixes.patch,
+ files/2.13/binutils-2.13.90.0.20-array-sects-compat.patch,
+ files/2.13/binutils-2.13.90.0.20-gas-mips-gprel.patch:
+ Bump to new beta version. This release contains a boatload of fixes for
+ a wide variety of platforms. It also fixes a critical bug in the previous
+ version for the mips platform. Due to the beta nature of this version and
+ the proximity to a new gentoo release, I have set keywords to "-arch" for
+ all platforms except mips. However, it should be tested on these other
+ platforms and keywords modified as necessary.
*binutils-2.13.90.0.18-r1 (08 Mar 2003)
diff --git a/sys-devel/binutils/binutils-2.13.90.0.20.ebuild b/sys-devel/binutils/binutils-2.13.90.0.20.ebuild
new file mode 100644
index 000000000000..5299a1873367
--- /dev/null
+++ b/sys-devel/binutils/binutils-2.13.90.0.20.ebuild
@@ -0,0 +1,164 @@
+# Copyright 1999-2003 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.20.ebuild,v 1.1 2003/03/22 16:34:31 dragon Exp $
+
+IUSE="nls bootstrap 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 -fssa"
+
+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 -hppa -arm"
+
+DEPEND="virtual/glibc
+ >=sys-apps/portage-2.0.21
+ nls? ( sys-devel/gettext )
+ || ( dev-lang/perl
+ ( !build? ( dev-lang/perl ) )
+ ( !bootstrap? ( dev-lang/perl ) )
+ )"
+# This is a hairy one. Basically depend on dev-lang/perl
+# if "build" or "bootstrap" not in USE.
+
+
+# filter CFLAGS=".. -O2 .." on arm
+if [ "${ARCH}" = "arm" ]; then
+ CFLAGS="$(echo "${CFLAGS}" | sed -e 's,-O[2-9] ,-O1 ,')"
+fi
+
+src_unpack() {
+
+ unpack ${A}
+
+ cd ${S}
+ # Various patches from Redhat/Mandrake...
+ epatch ${FILESDIR}/2.13/${PN}-2.13.90.0.10-glibc21.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
+ epatch ${FILESDIR}/2.13/${PN}-2.13.90.0.18-eh-frame-ro.patch
+ epatch ${FILESDIR}/2.13/${PN}-2.13.90.0.18-ltconfig-multilib.patch
+ epatch ${FILESDIR}/2.13/${PN}-2.13.90.0.18-testsuite-Wall-fixes.patch
+ use x86 &> /dev/null \
+ && epatch ${FILESDIR}/2.13/${P}-array-sects-compat.patch
+ epatch ${FILESDIR}/2.13/${PN}-2.13.90.0.18-s390-file-loc.patch
+
+ # Add patches for mips
+ if [ "${ARCH}" = "mips" ]
+ then
+ epatch ${FILESDIR}/2.13/${P}-gas-mips-gprel.patch
+ 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
+ emake tooldir="${ROOT}/usr/bin" \
+ all || die
+
+ 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.10-x86_64-gotpcrel.patch b/sys-devel/binutils/files/2.13/binutils-2.13.90.0.10-x86_64-gotpcrel.patch
index 263e7920966e..9c895d45a3dc 100644
--- a/sys-devel/binutils/files/2.13/binutils-2.13.90.0.10-x86_64-gotpcrel.patch
+++ b/sys-devel/binutils/files/2.13/binutils-2.13.90.0.10-x86_64-gotpcrel.patch
@@ -1,3 +1,7 @@
+2002-08-26 Jan Hubicka <jh@suse.cz>
+
+ * tc-i386.c (tc_i386_fix_adjustable): Recognize GOTPCREL properly.
+
--- binutils-2.13.90.0.10/gas/config/tc-i386.c.x86_64-gotpcrel 2002-11-15 15:16:42.000000000 +0100
+++ binutils-2.13.90.0.10/gas/config/tc-i386.c 2002-11-15 15:22:40.000000000 +0100
@@ -1220,6 +1220,12 @@ tc_i386_fix_adjustable (fixP)
diff --git a/sys-devel/binutils/files/2.13/binutils-2.13.90.0.18-testsuite-Wall-fixes.patch b/sys-devel/binutils/files/2.13/binutils-2.13.90.0.18-testsuite-Wall-fixes.patch
new file mode 100644
index 000000000000..213c2032effb
--- /dev/null
+++ b/sys-devel/binutils/files/2.13/binutils-2.13.90.0.18-testsuite-Wall-fixes.patch
@@ -0,0 +1,32 @@
+2003-02-15 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com>
+
+ * ld/testsuite/ld-shared/main.c (main): -Wall fixes.
+
+--- binutils-2.13.90.0.18/ld/testsuite/ld-shared/main.c.testsuite-Wall-fixes 2001-06-09 03:13:02.000000000 -0400
++++ binutils-2.13.90.0.18/ld/testsuite/ld-shared/main.c 2003-02-15 03:47:05.000000000 -0500
+@@ -38,8 +38,6 @@ shlib_overriddencall2 ()
+ int
+ main ()
+ {
+- int (*p) ();
+-
+ printf ("mainvar == %d\n", mainvar);
+ printf ("overriddenvar == %d\n", overriddenvar);
+ printf ("shlibvar1 == %d\n", shlibvar1);
+@@ -62,6 +60,8 @@ main ()
+ printf ("shlib_checkfunptr2 (main_called) == %d\n",
+ shlib_checkfunptr2 (main_called));
+ #endif
++ {
++ int (*p) ();
+ p = shlib_getfunptr1 ();
+ printf ("shlib_getfunptr1 () ");
+ if (p == shlib_shlibvar1)
+@@ -78,6 +78,7 @@ main ()
+ printf ("!=");
+ printf (" main_called\n");
+ #endif
++ }
+ #endif
+ printf ("shlib_check () == %d\n", shlib_check ());
+ return 0;
diff --git a/sys-devel/binutils/files/2.13/binutils-2.13.90.0.20-array-sects-compat.patch b/sys-devel/binutils/files/2.13/binutils-2.13.90.0.20-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.20-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.20-gas-mips-gprel.patch b/sys-devel/binutils/files/2.13/binutils-2.13.90.0.20-gas-mips-gprel.patch
new file mode 100644
index 000000000000..2b1c637d9f19
--- /dev/null
+++ b/sys-devel/binutils/files/2.13/binutils-2.13.90.0.20-gas-mips-gprel.patch
@@ -0,0 +1,21 @@
+diff -Naurp binutils-2.13.90.0.18.orig/gas/config/tc-mips.c binutils-2.13.90.0.18/gas/config/tc-mips.c
+--- binutils-2.13.90.0.18.orig/gas/config/tc-mips.c 2003-02-28 11:22:14.000000000 -0500
++++ binutils-2.13.90.0.18/gas/config/tc-mips.c 2003-02-28 11:23:28.000000000 -0500
+@@ -13402,7 +13402,16 @@ tc_gen_reloc (section, fixp)
+ && (code == BFD_RELOC_GPREL16 || code == BFD_RELOC_MIPS16_GPREL)
+ && reloc->addend != 0
+ && mips_need_elf_addend_fixup (fixp))
+- reloc->addend += S_GET_VALUE (fixp->fx_addsy);
++ {
++ /* gbl: in o32 GPREL16 is always inplace, but in n32 and 64
++ it isn't. I wish someone would get rid of this "fix". */
++ reloc_howto_type *howto;
++
++ howto = bfd_reloc_type_lookup (stdoutput, fixp->fx_r_type);
++ if (howto->partial_inplace) {
++ reloc->addend += S_GET_VALUE (fixp->fx_addsy);
++ }
++ }
+ #endif
+
+ reloc->howto = bfd_reloc_type_lookup (stdoutput, code);
diff --git a/sys-devel/binutils/files/digest-binutils-2.13.90.0.20 b/sys-devel/binutils/files/digest-binutils-2.13.90.0.20
new file mode 100644
index 000000000000..f6bf489a3570
--- /dev/null
+++ b/sys-devel/binutils/files/digest-binutils-2.13.90.0.20
@@ -0,0 +1 @@
+MD5 cfbad8b279410a3edbcdea9684943015 binutils-2.13.90.0.20.tar.bz2 10157139