kumquat-buildroot/package/uclibc/0002-microblaze-handle-R_MICROBLAZE_NONE-for-ld.so-bootst.patch
Waldemar Brodkorb 6278263355 uclibc: fix microblaze runtime error
With binutils 2.29 a runtime error is seen:
Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100

Backport upstream patch to fix the issue.

Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2017-08-08 17:47:55 +02:00

43 lines
1.1 KiB
Diff

From 9db18d93811153fc9a70c9844fadc6fdf7cbbb64 Mon Sep 17 00:00:00 2001
From: Waldemar Brodkorb <wbx@uclibc-ng.org>
Date: Sun, 6 Aug 2017 21:15:50 +0200
Subject: [PATCH] microblaze: handle R_MICROBLAZE_NONE for ld.so bootstrap
Latest binutils 2.29 release emits a R_MICROBLAZE_NONE
relocation, which breaks shared library loader bootstrap
relocation.
Signed-off-by: Waldemar Brodkorb <wbx@uclibc-ng.org>
---
ldso/ldso/microblaze/dl-startup.h | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/ldso/ldso/microblaze/dl-startup.h b/ldso/ldso/microblaze/dl-startup.h
index 720c53a..16d5762 100644
--- a/ldso/ldso/microblaze/dl-startup.h
+++ b/ldso/ldso/microblaze/dl-startup.h
@@ -82,18 +82,15 @@ static __always_inline
void PERFORM_BOOTSTRAP_RELOC(ELF_RELOC *rpnt, unsigned long *reloc_addr,
unsigned long symbol_addr, unsigned long load_addr, attribute_unused Elf32_Sym *symtab)
{
-
switch (ELF_R_TYPE(rpnt->r_info))
{
case R_MICROBLAZE_REL:
-
*reloc_addr = load_addr + rpnt->r_addend;
break;
-
+ case R_MICROBLAZE_NONE:
+ break;
default:
_dl_exit(1);
break;
-
}
-
}
--
2.1.4