[source] toolchain: unbreak glibc on MIPS

LEDE Commits lede-commits at lists.infradead.org
Mon Feb 27 03:16:58 PST 2017


jogo pushed a commit to source.git, branch master:
https://git.lede-project.org/5e3fb70094e5f87fb8dbfd4d8e979cd57293eb71

commit 5e3fb70094e5f87fb8dbfd4d8e979cd57293eb71
Author: Jonas Gorski <jonas.gorski at gmail.com>
AuthorDate: Thu Feb 23 22:16:00 2017 +0100

    toolchain: unbreak glibc on MIPS
    
    Binutils recently updated the ABI version to 5, which broke glibc, as it
    refuses to load anything > 3. Upstream reverted the ABI version update,
    so backport the commit.
    
    Fixes the following error on boot:
    
    /bin/sh: error while loading shared libraries: /lib/libcrypt.so.1: ELF file ABI version invalid
    [    0.920077] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00007f00
    [    0.920077]
    [    0.929450] Rebooting in 1 seconds..
    
    Signed-off-by: Jonas Gorski <jonas.gorski at gmail.com>
---
 .../2.27/001-MIPS_BFD_Remove_EI_ABIVERSION_5.patch | 36 ++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/toolchain/binutils/patches/2.27/001-MIPS_BFD_Remove_EI_ABIVERSION_5.patch b/toolchain/binutils/patches/2.27/001-MIPS_BFD_Remove_EI_ABIVERSION_5.patch
new file mode 100644
index 0000000..36e09b1
--- /dev/null
+++ b/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 at 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
+



More information about the lede-commits mailing list