diff options
| author | Waldemar Brodkorb <wbx@openadk.org> | 2017-08-06 21:30:43 +0200 |
|---|---|---|
| committer | Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> | 2017-08-08 17:47:55 +0200 |
| commit | 62782633558acf93658f9c0debd02e87f581d1fd (patch) | |
| tree | 811d62ee743f1455bd32052c6ebad12eb4c67bb6 | |
| parent | 0cfe1332d816d791b86ff353fc0ea99d55d8f2c7 (diff) | |
| download | buildroot-62782633558acf93658f9c0debd02e87f581d1fd.tar.gz buildroot-62782633558acf93658f9c0debd02e87f581d1fd.zip | |
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>
| -rw-r--r-- | package/uclibc/0002-microblaze-handle-R_MICROBLAZE_NONE-for-ld.so-bootst.patch | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/package/uclibc/0002-microblaze-handle-R_MICROBLAZE_NONE-for-ld.so-bootst.patch b/package/uclibc/0002-microblaze-handle-R_MICROBLAZE_NONE-for-ld.so-bootst.patch new file mode 100644 index 0000000000..9886efd879 --- /dev/null +++ b/package/uclibc/0002-microblaze-handle-R_MICROBLAZE_NONE-for-ld.so-bootst.patch @@ -0,0 +1,42 @@ +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 + |

