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@gmail.com>
This commit is contained in:
parent
d48cc5e044
commit
5e3fb70094
1 changed files with 36 additions and 0 deletions
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue