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:
		| @@ -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 | ||||||
|  |  | ||||||
		Reference in New Issue
	
	Block a user
	 Jonas Gorski
					Jonas Gorski