summaryrefslogtreecommitdiff
path: root/toolchain/binutils
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2005-03-02 12:30:29 +0000
committerEric Andersen <andersen@codepoet.org>2005-03-02 12:30:29 +0000
commitcd2388d5b308df21fe0c36f61ef65defbd5e195d (patch)
tree21ccc8f3a75fc3e0e2b7d6daf331f183e1627a04 /toolchain/binutils
parent5968b7e4de1fe31f1d3e6704503b0b2a2edf3eeb (diff)
Fix things the other way round. Instead of restoring the mips
embedded pic support into binutils, instead fixup gcc to not emit any embedded pic relocations.
Diffstat (limited to 'toolchain/binutils')
-rw-r--r--toolchain/binutils/2.15.94.0.2.2/117_mips_symbolic_link.patch44
-rw-r--r--toolchain/binutils/2.15.94.0.2.2/450-mips-restore-embedded-pic.patch75
2 files changed, 0 insertions, 119 deletions
diff --git a/toolchain/binutils/2.15.94.0.2.2/117_mips_symbolic_link.patch b/toolchain/binutils/2.15.94.0.2.2/117_mips_symbolic_link.patch
deleted file mode 100644
index 45d1dd5ca..000000000
--- a/toolchain/binutils/2.15.94.0.2.2/117_mips_symbolic_link.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-#! /bin/sh -e
-## 117_mips_symbolic_link.dpatch
-##
-## DP: Description: Handle symbolic multigot links. (#270619)
-## DP: Author: Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
-## DP: Upstream status: Not submitted
-## DP: Date: 2004-09-08
-
-if [ $# -lt 1 ]; then
- echo "`basename $0`: script expects -patch|-unpatch as argument" >&2
- exit 1
-fi
-
-[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-patch_opts="${patch_opts:--f --no-backup-if-mismatch} ${2:+-d $2}"
-
-case "$1" in
- -patch) patch -p1 ${patch_opts} < $0;;
- -unpatch) patch -R -p1 ${patch_opts} < $0;;
- *)
- echo "`basename $0`: script expects -patch|-unpatch as argument" >&2
- exit 1;;
-esac
-
-exit 0
-
-@DPATCH@
-diff -urpN binutils-2.15.orig/bfd/elfxx-mips.c binutils-2.15/bfd/elfxx-mips.c
---- binutils-2.15.orig/bfd/elfxx-mips.c 2004-05-17 21:36:03.000000000 +0200
-+++ binutils-2.15/bfd/elfxx-mips.c 2004-08-29 08:48:22.000000000 +0200
-@@ -3909,11 +3910,8 @@ mips_elf_create_dynamic_relocation (bfd
- /* We must now calculate the dynamic symbol table index to use
- in the relocation. */
- if (h != NULL
-- && (! info->symbolic || (h->root.elf_link_hash_flags
-- & ELF_LINK_HASH_DEF_REGULAR) == 0)
-- /* h->root.dynindx may be -1 if this symbol was marked to
-- become local. */
-- && h->root.dynindx != -1)
-+ && ((h->root.elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0
-+ || (h->root.elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0))
- {
- indx = h->root.dynindx;
- if (SGI_COMPAT (output_bfd))
diff --git a/toolchain/binutils/2.15.94.0.2.2/450-mips-restore-embedded-pic.patch b/toolchain/binutils/2.15.94.0.2.2/450-mips-restore-embedded-pic.patch
deleted file mode 100644
index 93c1c5950..000000000
--- a/toolchain/binutils/2.15.94.0.2.2/450-mips-restore-embedded-pic.patch
+++ /dev/null
@@ -1,75 +0,0 @@
---- binutils/gas/config/tc-mips.c.orig 2004-12-20 12:16:50.000000000 -0700
-+++ binutils/gas/config/tc-mips.c 2005-03-02 03:42:08.000000000 -0700
-@@ -10955,8 +10955,6 @@
-
- buf = (bfd_byte *) (fixP->fx_frag->fr_literal + fixP->fx_where);
-
-- assert (! fixP->fx_pcrel);
--
- /* Don't treat parts of a composite relocation as done. There are two
- reasons for this:
-
-@@ -11000,7 +10998,6 @@
- case BFD_RELOC_MIPS_CALL_HI16:
- case BFD_RELOC_MIPS_CALL_LO16:
- case BFD_RELOC_MIPS16_GPREL:
-- assert (! fixP->fx_pcrel);
- /* Nothing needed to do. The value comes from the reloc entry */
- break;
-
-@@ -12867,8 +12864,23 @@
- *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy);
- reloc->address = fixp->fx_frag->fr_address + fixp->fx_where;
-
-- assert (! fixp->fx_pcrel);
-- reloc->addend = fixp->fx_addnumber;
-+ if (fixp->fx_pcrel)
-+ {
-+ if (OUTPUT_FLAVOR == bfd_target_elf_flavour)
-+ {
-+ /* At this point, fx_addnumber is "symbol offset - reloc->address".
-+ Relocations want only the symbol offset. */
-+ reloc->addend = fixp->fx_addnumber + reloc->address;
-+ }
-+ else
-+ {
-+ /* A gruesome hack which is a result of the gruesome gas reloc
-+ handling. */
-+ reloc->addend = reloc->address;
-+ }
-+ }
-+ else
-+ reloc->addend = fixp->fx_addnumber;
-
- /* Since the old MIPS ELF ABI uses Rel instead of Rela, encode the vtable
- entry to be used in the relocation's section offset. */
-@@ -12879,6 +12891,16 @@
- }
-
- code = fixp->fx_r_type;
-+ if (fixp->fx_pcrel)
-+ {
-+ if (code == BFD_RELOC_32)
-+ code = BFD_RELOC_32_PCREL;
-+ else
-+ as_bad_where (fixp->fx_file, fixp->fx_line,
-+ _("Cannot make %s relocation PC relative"),
-+ bfd_get_reloc_code_name (code));
-+ }
-+
-
- /* To support a PC relative reloc, we used a Cygnus extension.
- We check for that here to make sure that we don't let such a
---- binutils/gas/config/tc-mips.h 29 Apr 2004 05:14:22 -0000 1.35
-+++ binutils/gas/config/tc-mips.h 5 May 2004 17:38:51 -0000
-@@ -58,6 +58,10 @@
-
- #define MAX_MEM_FOR_RS_ALIGN_CODE (1 + 2)
-
-+/* We permit PC relative difference expressions when generating
-+ embedded PIC code. */
-+#define DIFF_EXPR_OK
-+
- /* Tell assembler that we have an itbl_mips.h header file to include. */
- #define HAVE_ITBL_CPU
-