From c53051c921cd1b92ae2233e3654bc759e27f3098 Mon Sep 17 00:00:00 2001 From: Michael Olbrich Date: Wed, 5 Dec 2012 16:34:38 +0100 Subject: elf2flt-20110404-g40f0d17 patches Signed-off-by: Michael Olbrich --- .../0001-Arm-support-update-exidx-sections.patch | 115 +++++++++++++++++++++ .../0002-add-R_ARM_THM_JUMP24.patch | 21 ++++ patches/elf2flt-20110404-g40f0d17/series | 5 + 3 files changed, 141 insertions(+) create mode 100644 patches/elf2flt-20110404-g40f0d17/0001-Arm-support-update-exidx-sections.patch create mode 100644 patches/elf2flt-20110404-g40f0d17/0002-add-R_ARM_THM_JUMP24.patch create mode 100644 patches/elf2flt-20110404-g40f0d17/series diff --git a/patches/elf2flt-20110404-g40f0d17/0001-Arm-support-update-exidx-sections.patch b/patches/elf2flt-20110404-g40f0d17/0001-Arm-support-update-exidx-sections.patch new file mode 100644 index 0000000..ccb1d59 --- /dev/null +++ b/patches/elf2flt-20110404-g40f0d17/0001-Arm-support-update-exidx-sections.patch @@ -0,0 +1,115 @@ +From: Paul Chavent +Date: Thu, 17 May 2012 08:10:44 +0200 +Subject: [PATCH] Arm support update (exidx sections). + +--- + .gitignore | 1 + + elf2flt.c | 27 +++++++++++++++++++++++++++ + elf2flt.ld.in | 17 ++++++++++++++--- + 3 files changed, 42 insertions(+), 3 deletions(-) + +diff --git a/.gitignore b/.gitignore +index 92ff5f6..e0e0bd5 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -22,3 +22,4 @@ elf2flt + elf2flt.ld + flthdr + ld-elf2flt ++ld-elf2flt.sh +\ No newline at end of file +diff --git a/elf2flt.c b/elf2flt.c +index 2fea9b5..1a7ef88 100644 +--- a/elf2flt.c ++++ b/elf2flt.c +@@ -54,6 +54,8 @@ const char *elf2flt_progname; + + #if defined(TARGET_h8300) + #include /* TARGET_* ELF support for the BFD library */ ++#elif defined(TARGET_arm) ++#include "elf/arm.h" + #elif defined(__CYGWIN__) || defined(__MINGW32__) || defined(TARGET_nios) || defined(TARGET_nios2) + #include "cygwin-elf.h" /* Cygwin uses a local copy */ + #elif defined(TARGET_microblaze) +@@ -639,12 +641,16 @@ dump_symbols(symbols, number_of_symbols); + relocation_needed = 1; + break; + case R_ARM_REL32: ++ case R_ARM_JUMP24: ++ case R_ARM_CALL: + case R_ARM_THM_PC11: + case R_ARM_THM_PC22: + case R_ARM_PC24: + case R_ARM_PLT32: + case R_ARM_GOTPC: + case R_ARM_GOT32: ++ case R_ARM_PREL31: ++ case R_ARM_NONE: + relocation_needed = 0; + break; + default: +@@ -1702,6 +1708,27 @@ int main(int argc, char *argv[]) + } + } + ++ if (verbose) { ++ printf(" verbose = %d\n" ++ " load_to_ram = %d\n" ++ " ktrace = %d\n" ++ " docompress = %d\n" ++ " pfile = \"%s\"\n" ++ " ofile = \"%s\"\n" ++ " use_resolved = %d\n" ++ " stack = %d\n" ++ " rel_file = \"%s\\n", ++ verbose , ++ load_to_ram , ++ ktrace , ++ docompress , ++ pfile , ++ ofile , ++ use_resolved, ++ stack , ++ rel_file ); ++ } ++ + /* + * if neither the -r or -p options was given, default to + * a RAM load as that is the only option that makes sense. +diff --git a/elf2flt.ld.in b/elf2flt.ld.in +index c7e01a6..56b8f96 100644 +--- a/elf2flt.ld.in ++++ b/elf2flt.ld.in +@@ -32,6 +32,8 @@ W_RODAT *(.rodata1) + W_RODAT *(.rodata.*) + W_RODAT *(.gnu.linkonce.r*) + ++ /* .ARM.extab name sections containing exception unwinding information */ ++ *(.ARM.extab* .gnu.linkonce.armextab.*) + /* This is special code area at the end of the normal + text section. It contains a small lookup table at + the start followed by the code pointed to by entries +@@ -40,11 +42,20 @@ W_RODAT *(.gnu.linkonce.r*) + PROVIDE(@SYMBOL_PREFIX@__ctbp = .); + *(.call_table_data) + *(.call_table_text) +- +- . = ALIGN(0x20) ; +- @SYMBOL_PREFIX@_etext = . ; + } > flatmem :text + ++ /* .ARM.exidx name sections containing index entries for section unwinding */ ++ /* .ARM.exidx is sorted, so has to go in its own output section. */ ++ @SYMBOL_PREFIX@__exidx_start = .; ++ .ARM.exidx : ++ { ++ *(.ARM.exidx* .gnu.linkonce.armexidx.*) ++ } > flatmem ++ @SYMBOL_PREFIX@__exidx_end = .; ++ ++ . = ALIGN(0x20) ; ++ @SYMBOL_PREFIX@_etext = . ; ++ + .data : { + . = ALIGN(0x4) ; + @SYMBOL_PREFIX@_sdata = . ; diff --git a/patches/elf2flt-20110404-g40f0d17/0002-add-R_ARM_THM_JUMP24.patch b/patches/elf2flt-20110404-g40f0d17/0002-add-R_ARM_THM_JUMP24.patch new file mode 100644 index 0000000..17b7335 --- /dev/null +++ b/patches/elf2flt-20110404-g40f0d17/0002-add-R_ARM_THM_JUMP24.patch @@ -0,0 +1,21 @@ +From: Michael Olbrich +Date: Wed, 5 Dec 2012 13:20:04 +0100 +Subject: [PATCH] add R_ARM_THM_JUMP24 + +Signed-off-by: Michael Olbrich +--- + elf2flt.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/elf2flt.c b/elf2flt.c +index 1a7ef88..4d372ad 100644 +--- a/elf2flt.c ++++ b/elf2flt.c +@@ -645,6 +645,7 @@ dump_symbols(symbols, number_of_symbols); + case R_ARM_CALL: + case R_ARM_THM_PC11: + case R_ARM_THM_PC22: ++ case R_ARM_THM_JUMP24: + case R_ARM_PC24: + case R_ARM_PLT32: + case R_ARM_GOTPC: diff --git a/patches/elf2flt-20110404-g40f0d17/series b/patches/elf2flt-20110404-g40f0d17/series new file mode 100644 index 0000000..cf649cf --- /dev/null +++ b/patches/elf2flt-20110404-g40f0d17/series @@ -0,0 +1,5 @@ +# generated by git-ptx-patches +#tag:base --start-number 1 +0001-Arm-support-update-exidx-sections.patch +0002-add-R_ARM_THM_JUMP24.patch +# d95a8cceb02c7aa3122ef7b5f9531791 - git-ptx-patches magic -- cgit v1.2.3