summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Gabert <pappy@gentoo.org>2003-09-20 21:51:05 +0000
committerAlexander Gabert <pappy@gentoo.org>2003-09-20 21:51:05 +0000
commit3a3c0aa578e7eaa1552d35686bd20d2c2f093039 (patch)
treec9674e6e731b206044ad8cf15dad264b84478acc /sys-devel
parentadded hppa static fpic bugfix by tausq (diff)
downloadgentoo-2-3a3c0aa578e7eaa1552d35686bd20d2c2f093039.tar.gz
gentoo-2-3a3c0aa578e7eaa1552d35686bd20d2c2f093039.tar.bz2
gentoo-2-3a3c0aa578e7eaa1552d35686bd20d2c2f093039.zip
added hppa static fpic bugfix by tausq
Diffstat (limited to 'sys-devel')
-rw-r--r--sys-devel/binutils/ChangeLog6
-rw-r--r--sys-devel/binutils/Manifest4
-rw-r--r--sys-devel/binutils/binutils-2.14.90.0.6-r3.ebuild7
-rw-r--r--sys-devel/binutils/files/2.14/binutils-2.14.90.0.6-hppa-static.diff88
4 files changed, 101 insertions, 4 deletions
diff --git a/sys-devel/binutils/ChangeLog b/sys-devel/binutils/ChangeLog
index 570491a33d82..bc758c776183 100644
--- a/sys-devel/binutils/ChangeLog
+++ b/sys-devel/binutils/ChangeLog
@@ -1,6 +1,10 @@
# 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.72 2003/09/20 18:32:04 solar Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/binutils/ChangeLog,v 1.73 2003/09/20 21:50:58 pappy Exp $
+
+ 20 Sep 2003; Alexander Gabert <pappy@gentoo.org>
+ binutils-2.14.90.0.6-r3.ebuild:
+ added hppa static fpic bugfix by tausq
20 Sep 2003; <solar@gentoo.org> binutils-2.14.90.0.6-r3.ebuild,
files/2.14/binutils-2.14.90.0.6-bfd-elf-interp.patch:
diff --git a/sys-devel/binutils/Manifest b/sys-devel/binutils/Manifest
index 16730d4e6fab..85160bb7ed13 100644
--- a/sys-devel/binutils/Manifest
+++ b/sys-devel/binutils/Manifest
@@ -4,12 +4,12 @@ MD5 6d2fe81a47256f8c2cc53c0d9696ed84 binutils-2.14.90.0.2.ebuild 5330
MD5 0128e4349da81a9b35d368f3f5457d08 binutils-2.14.90.0.6-r1.ebuild 5115
MD5 87e2477ba1072a1fc76af67ab531b0a2 binutils-2.14.90.0.4.1-r1.ebuild 6288
MD5 e56840c0286c1b40a114e80ced64dc45 binutils-2.13.90.0.18.ebuild 4572
-MD5 98ed699e4bf028b14cd4d8cab5f64a02 binutils-2.14.90.0.6-r3.ebuild 5918
+MD5 e52e7c69c718ccce62d22974cc9029f4 binutils-2.14.90.0.6-r3.ebuild 5918
MD5 92e0fa5133dbba4ffefc25a217f28686 binutils-2.14.90.0.5-r1.ebuild 5781
MD5 180a5724a39c60a76cce5d23a40b23f7 binutils-2.13.90.0.18-r1.ebuild 5367
MD5 1b11085f74185bfe7061a6fb01d62ebd binutils-2.12.90.0.15.ebuild 3501
MD5 0d3d8558697ba9460ac9b932bcdf9c1e binutils-2.14.90.0.6-r2.ebuild 5606
-MD5 450040e15afa9ab30266912e57d83e69 ChangeLog 15996
+MD5 e481db552ca8eb28d0294e4ab6a207a7 ChangeLog 15996
MD5 b7db6fb32b4653b2832c60bc12dce7a1 binutils-2.11.92.0.7.ebuild 2325
MD5 6c32de9a9503293bb03048f09dadc182 files/digest-binutils-2.11.92.0.7 74
MD5 fe5fb935b171a472f5eb1a8bca63c136 files/binutils-2.12.90.0.14-glibc21.patch 7936
diff --git a/sys-devel/binutils/binutils-2.14.90.0.6-r3.ebuild b/sys-devel/binutils/binutils-2.14.90.0.6-r3.ebuild
index 0e51c822adbb..f329d8b388e1 100644
--- a/sys-devel/binutils/binutils-2.14.90.0.6-r3.ebuild
+++ b/sys-devel/binutils/binutils-2.14.90.0.6-r3.ebuild
@@ -1,6 +1,6 @@
# 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.14.90.0.6-r3.ebuild,v 1.3 2003/09/20 18:32:04 solar Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/binutils/binutils-2.14.90.0.6-r3.ebuild,v 1.4 2003/09/20 21:50:58 pappy Exp $
IUSE="nls bootstrap build"
@@ -70,6 +70,11 @@ src_unpack() {
epatch ${FILESDIR}/2.14/${PN}-2.14.90.0.6-cxx-speedup.patch
epatch ${FILESDIR}/2.14/${PN}-2.14.90.0.6-bfd-elf-interp.patch
+ if [ "${ARCH}" == "hppa" ] || [ "${ARCH}" == "hppa64" ]
+ then
+ epatch ${FILESDIR}/2.14/${PN}-2.14.90.0.6-hppa-static.diff
+ fi
+
use x86 &> /dev/null \
&& epatch ${FILESDIR}/2.13/${PN}-2.13.90.0.20-array-sects-compat.patch
diff --git a/sys-devel/binutils/files/2.14/binutils-2.14.90.0.6-hppa-static.diff b/sys-devel/binutils/files/2.14/binutils-2.14.90.0.6-hppa-static.diff
new file mode 100644
index 000000000000..54781022db27
--- /dev/null
+++ b/sys-devel/binutils/files/2.14/binutils-2.14.90.0.6-hppa-static.diff
@@ -0,0 +1,88 @@
+Index: bfd/elf32-hppa.c
+===================================================================
+RCS file: /cvs/src/src/bfd/elf32-hppa.c,v
+retrieving revision 1.104
+diff -u -p -r1.104 elf32-hppa.c
+--- bfd/elf32-hppa.c 21 Aug 2003 14:00:05 -0000 1.104
++++ bfd/elf32-hppa.c 27 Aug 2003 06:58:29 -0000
+@@ -3126,10 +3126,12 @@ final_link_relocate (asection *input_sec
+ bfd_vma value,
+ struct elf32_hppa_link_hash_table *htab,
+ asection *sym_sec,
+- struct elf32_hppa_link_hash_entry *h)
++ struct elf32_hppa_link_hash_entry *h,
++ struct bfd_link_info *info)
+ {
+ int insn;
+ unsigned int r_type = ELF32_R_TYPE (rel->r_info);
++ unsigned int orig_r_type = r_type;
+ reloc_howto_type *howto = elf_hppa_howto_table + r_type;
+ int r_format = howto->bitsize;
+ enum hppa_reloc_field_selector_type_alt r_field;
+@@ -3152,6 +3154,25 @@ final_link_relocate (asection *input_sec
+ input_section->output_offset +
+ input_section->output_section->vma);
+
++ /* If we are linking statically, convert DLT relocs to DPREL relocs */
++ if (info->static_link)
++ {
++ switch (r_type)
++ {
++ case R_PARISC_DLTIND21L:
++ r_type = R_PARISC_DPREL21L;
++ break;
++
++ case R_PARISC_DLTIND14R:
++ r_type = R_PARISC_DPREL14R;
++ break;
++
++ case R_PARISC_DLTIND14F:
++ r_type = R_PARISC_DPREL14F;
++ break;
++ }
++ }
++
+ switch (r_type)
+ {
+ case R_PARISC_PCREL12F:
+@@ -3373,6 +3394,16 @@ final_link_relocate (asection *input_sec
+ break;
+ }
+
++ if (info->static_link)
++ {
++ if (orig_r_type == R_PARISC_DLTIND21L)
++ {
++ /* addil LR'0(%dp),%r1 */
++ insn = 0x2b600000;
++ }
++ /* don't have to touch the RHS */
++ }
++
+ insn = hppa_rebuild_insn (insn, val, r_format);
+
+ /* Update the instruction word. */
+@@ -3806,7 +3837,7 @@ elf32_hppa_relocate_section (bfd *output
+ }
+
+ r = final_link_relocate (input_section, contents, rel, relocation,
+- htab, sym_sec, h);
++ htab, sym_sec, h, info);
+
+ if (r == bfd_reloc_ok)
+ continue;
+Index: ld/lexsup.c
+===================================================================
+RCS file: /cvs/src/src/ld/lexsup.c,v
+retrieving revision 1.66
+diff -u -p -r1.66 lexsup.c
+--- ld/lexsup.c 20 Aug 2003 08:37:15 -0000 1.66
++++ ld/lexsup.c 27 Aug 2003 06:58:31 -0000
+@@ -675,6 +675,7 @@ parse_args (unsigned argc, char **argv)
+ link_info.unresolved_syms_in_objects = how_to_report_unresolved_symbols;
+ if (link_info.unresolved_syms_in_shared_libs == RM_NOT_YET_SET)
+ link_info.unresolved_syms_in_shared_libs = how_to_report_unresolved_symbols;
++ link_info.static_link = TRUE;
+ break;
+ case OPTION_CREF:
+ command_line.cref = TRUE;