summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Olbrich <m.olbrich@pengutronix.de>2012-12-05 16:34:38 +0100
committerMichael Olbrich <m.olbrich@pengutronix.de>2012-12-05 16:50:49 +0100
commitc53051c921cd1b92ae2233e3654bc759e27f3098 (patch)
tree2ff6e8e35aca95c32faa0175b47854cbcb1a6e04
parent1006906dc27621b942f6094a5d8409aa0ef45a67 (diff)
downloadOSELAS.Toolchain-c53051c921cd1b92ae2233e3654bc759e27f3098.tar.gz
OSELAS.Toolchain-c53051c921cd1b92ae2233e3654bc759e27f3098.tar.xz
elf2flt-20110404-g40f0d17 patches
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-rw-r--r--patches/elf2flt-20110404-g40f0d17/0001-Arm-support-update-exidx-sections.patch115
-rw-r--r--patches/elf2flt-20110404-g40f0d17/0002-add-R_ARM_THM_JUMP24.patch21
-rw-r--r--patches/elf2flt-20110404-g40f0d17/series5
3 files changed, 141 insertions, 0 deletions
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 <paul.chavent@fnac.net>
+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 <elf/h8.h> /* 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 <m.olbrich@pengutronix.de>
+Date: Wed, 5 Dec 2012 13:20:04 +0100
+Subject: [PATCH] add R_ARM_THM_JUMP24
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ 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