/branches/gl-inet/toolchain/binutils/patches/2.27/001-MIPS_BFD_Remove_EI_ABIVERSION_5.patch |
@@ -0,0 +1,36 @@ |
From 4d4f40e041ce7c8c7c8e50f957e0440b64ab7e95 Mon Sep 17 00:00:00 2001 |
From: "Maciej W. Rozycki" <macro@imgtec.com> |
Date: Fri, 23 Dec 2016 20:03:36 +0000 |
Subject: [PATCH] MIPS/BFD: Remove EI_ABIVERSION 5 allocation for PT_GNU_STACK |
support |
|
Revert commit 17733f5be961 ("Increment the ABIVERSION to 5 for MIPS |
objects with non-executable stacks.") and remove EI_ABIVERSION 5 |
allocation for PT_GNU_STACK support, which has not made it to glibc |
and will be reassigned. |
|
bfd/ |
* bfd/elfxx-mips.c (_bfd_mips_post_process_headers): Revert |
2016-02-23 change and remove EI_ABIVERSION 5 support. |
--- |
bfd/ChangeLog | 5 +++++ |
bfd/elfxx-mips.c | 3 --- |
2 files changed, 5 insertions(+), 3 deletions(-) |
|
diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c |
index d649676..486607c 100644 |
--- a/bfd/elfxx-mips.c |
+++ b/bfd/elfxx-mips.c |
@@ -16358,9 +16358,6 @@ _bfd_mips_post_process_headers (bfd *abfd, struct bfd_link_info *link_info) |
if (mips_elf_tdata (abfd)->abiflags.fp_abi == Val_GNU_MIPS_ABI_FP_64 |
|| mips_elf_tdata (abfd)->abiflags.fp_abi == Val_GNU_MIPS_ABI_FP_64A) |
i_ehdrp->e_ident[EI_ABIVERSION] = 3; |
- |
- if (elf_stack_flags (abfd) && !(elf_stack_flags (abfd) & PF_X)) |
- i_ehdrp->e_ident[EI_ABIVERSION] = 5; |
} |
|
int |
-- |
2.9.3 |
|
/branches/gl-inet/toolchain/binutils/patches/2.27/300-001_ld_makefile_patch.patch |
@@ -0,0 +1,22 @@ |
--- a/ld/Makefile.am |
+++ b/ld/Makefile.am |
@@ -57,7 +57,7 @@ endif |
# We put the scripts in the directory $(scriptdir)/ldscripts. |
# We can't put the scripts in $(datadir) because the SEARCH_DIR |
# directives need to be different for native and cross linkers. |
-scriptdir = $(tooldir)/lib |
+scriptdir = $(libdir) |
|
EMUL = @EMUL@ |
EMULATION_OFILES = @EMULATION_OFILES@ |
--- a/ld/Makefile.in |
+++ b/ld/Makefile.in |
@@ -451,7 +451,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS) |
# We put the scripts in the directory $(scriptdir)/ldscripts. |
# We can't put the scripts in $(datadir) because the SEARCH_DIR |
# directives need to be different for native and cross linkers. |
-scriptdir = $(tooldir)/lib |
+scriptdir = $(libdir) |
BASEDIR = $(srcdir)/.. |
BFDDIR = $(BASEDIR)/bfd |
INCDIR = $(BASEDIR)/include |
/branches/gl-inet/toolchain/binutils/patches/2.27/300-012_check_ldrunpath_length.patch |
@@ -0,0 +1,20 @@ |
--- a/ld/emultempl/elf32.em |
+++ b/ld/emultempl/elf32.em |
@@ -1244,6 +1244,8 @@ fragment <<EOF |
&& command_line.rpath == NULL) |
{ |
lib_path = (const char *) getenv ("LD_RUN_PATH"); |
+ if ((lib_path) && (strlen (lib_path) == 0)) |
+ lib_path = NULL; |
if (gld${EMULATION_NAME}_search_needed (lib_path, &n, |
force)) |
break; |
@@ -1525,6 +1527,8 @@ gld${EMULATION_NAME}_before_allocation ( |
rpath = command_line.rpath; |
if (rpath == NULL) |
rpath = (const char *) getenv ("LD_RUN_PATH"); |
+ if ((rpath) && (strlen (rpath) == 0)) |
+ rpath = NULL; |
|
for (abfd = link_info.input_bfds; abfd; abfd = abfd->link.next) |
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour) |
/branches/gl-inet/toolchain/binutils/patches/2.27/400-mips_no_dynamic_linking_sym.patch |
@@ -0,0 +1,18 @@ |
--- a/bfd/elfxx-mips.c |
+++ b/bfd/elfxx-mips.c |
@@ -7713,6 +7713,7 @@ _bfd_mips_elf_create_dynamic_sections (b |
|
name = SGI_COMPAT (abfd) ? "_DYNAMIC_LINK" : "_DYNAMIC_LINKING"; |
bh = NULL; |
+ if (0) { |
if (!(_bfd_generic_link_add_one_symbol |
(info, abfd, name, BSF_GLOBAL, bfd_abs_section_ptr, 0, |
NULL, FALSE, get_elf_backend_data (abfd)->collect, &bh))) |
@@ -7725,6 +7726,7 @@ _bfd_mips_elf_create_dynamic_sections (b |
|
if (! bfd_elf_link_record_dynamic_symbol (info, h)) |
return FALSE; |
+ } |
|
if (! mips_elf_hash_table (info)->use_rld_obj_head) |
{ |
/branches/gl-inet/toolchain/binutils/patches/2.27/500-Change-default-emulation-for-mips64-linux.patch |
@@ -0,0 +1,37 @@ |
--- a/bfd/config.bfd |
+++ b/bfd/config.bfd |
@@ -1101,12 +1101,12 @@ case "${targ}" in |
targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_be_vec mips_ecoff_le_vec" |
;; |
mips64*el-*-linux*) |
- targ_defvec=mips_elf32_ntrad_le_vec |
- targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec" |
+ targ_defvec=mips_elf64_trad_le_vec |
+ targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_be_vec" |
;; |
mips64*-*-linux*) |
- targ_defvec=mips_elf32_ntrad_be_vec |
- targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec" |
+ targ_defvec=mips_elf64_trad_be_vec |
+ targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_le_vec" |
;; |
mips*el-*-linux*) |
targ_defvec=mips_elf32_trad_le_vec |
--- a/ld/configure.tgt |
+++ b/ld/configure.tgt |
@@ -513,11 +513,11 @@ mips*el-*-vxworks*) targ_emul=elf32elmip |
mips*-*-vxworks*) targ_emul=elf32ebmipvxworks |
targ_extra_emuls="elf32elmipvxworks" ;; |
mips*-*-windiss) targ_emul=elf32mipswindiss ;; |
-mips64*el-*-linux-*) targ_emul=elf32ltsmipn32 |
- targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip" |
+mips64*el-*-linux-*) targ_emul=elf64ltsmip |
+ targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32ltsmip elf32btsmip elf64btsmip" |
targ_extra_libpath=$targ_extra_emuls ;; |
-mips64*-*-linux-*) targ_emul=elf32btsmipn32 |
- targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip" |
+mips64*-*-linux-*) targ_emul=elf64btsmip |
+ targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32btsmip elf32ltsmip elf64ltsmip" |
targ_extra_libpath=$targ_extra_emuls ;; |
mips*el-*-linux-*) targ_emul=elf32ltsmip |
targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip" |