diff options
Diffstat (limited to 'toolchain')
2 files changed, 0 insertions, 214 deletions
diff --git a/toolchain/elf2flt/patches/a87f68ae9e879360a9624f2a02999e67cfbe5a2f/0001-fix-sh2-toolchain-building.patch b/toolchain/elf2flt/patches/a87f68ae9e879360a9624f2a02999e67cfbe5a2f/0001-fix-sh2-toolchain-building.patch deleted file mode 100644 index 11d3a1e5f..000000000 --- a/toolchain/elf2flt/patches/a87f68ae9e879360a9624f2a02999e67cfbe5a2f/0001-fix-sh2-toolchain-building.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 123fe2e98cce5c82d81d2a350529a1ea712a4058 Mon Sep 17 00:00:00 2001 -From: Waldemar Brodkorb <wbx@openadk.org> -Date: Sat, 26 Mar 2016 10:26:56 +0100 -Subject: [PATCH] fix sh2 toolchain building - - -Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> ---- - elf2flt.c | 10 ++++++---- - 1 file changed, 6 insertions(+), 4 deletions(-) - -diff --git a/elf2flt.c b/elf2flt.c -index 7d0e639..3546341 100644 ---- a/elf2flt.c -+++ b/elf2flt.c -@@ -101,8 +101,10 @@ const char *elf2flt_progname; - #define ARCH "sparc" - #elif defined(TARGET_v850) - #define ARCH "v850" --#elif defined(TARGET_sh) --#define ARCH "sh" -+#elif defined(TARGET_sh2) -+#define ARCH "sh2" -+#elif defined(TARGET_sh2eb) -+#define ARCH "sh2" - #elif defined(TARGET_h8300) - #define ARCH "h8300" - #elif defined(TARGET_microblaze) -@@ -1260,7 +1262,7 @@ NIOS2_RELOC_ERR: - #endif /* TARGET_sparc */ - - --#ifdef TARGET_sh -+#if defined(TARGET_sh2) || defined(TARGET_sh2eb) - case R_SH_DIR32: - relocation_needed = 1; - sym_vma = bfd_section_vma(abs_bfd, sym_section); -@@ -1271,7 +1273,7 @@ NIOS2_RELOC_ERR: - sym_addr += sym_vma + q->addend; - sym_addr -= q->address; - break; --#endif /* TARGET_sh */ -+#endif /* TARGET_sh2 / TARGET_sh2eb */ - - #ifdef TARGET_e1 - #define htoe1l(x) htonl(x) --- -1.7.10.4 - diff --git a/toolchain/elf2flt/patches/a87f68ae9e879360a9624f2a02999e67cfbe5a2f/0001-lm32-add-support-for-architecture.patch b/toolchain/elf2flt/patches/a87f68ae9e879360a9624f2a02999e67cfbe5a2f/0001-lm32-add-support-for-architecture.patch deleted file mode 100644 index 2bb9e13e1..000000000 --- a/toolchain/elf2flt/patches/a87f68ae9e879360a9624f2a02999e67cfbe5a2f/0001-lm32-add-support-for-architecture.patch +++ /dev/null @@ -1,165 +0,0 @@ -From f5d1ee11dfc74dba39110cbefde93c53ae1cf3df Mon Sep 17 00:00:00 2001 -From: Waldemar Brodkorb <wbx@openadk.org> -Date: Sat, 19 Mar 2016 18:35:06 +0100 -Subject: [PATCH] lm32: add support for architecture - -Add lm32 support patch from: -https://github.com/m-labs/elf2flt-lm32 - -Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> ---- - elf2flt.c | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- - 1 file changed, 102 insertions(+), 1 deletion(-) - -diff --git a/elf2flt.c b/elf2flt.c -index 7d0e639..3b59b92 100644 ---- a/elf2flt.c -+++ b/elf2flt.c -@@ -62,6 +62,8 @@ const char *elf2flt_progname; - #include "cygwin-elf.h" /* Cygwin uses a local copy */ - #elif defined(TARGET_xtensa) - #include <elf/xtensa.h> /* TARGET_* ELF support for the BFD library */ -+#elif defined(TARGET_lm32) -+#include <elf/lm32.h> - #elif defined(TARGET_microblaze) - #include <elf/microblaze.h> /* TARGET_* ELF support for the BFD library */ - #elif defined(TARGET_v850) -@@ -115,6 +117,11 @@ const char *elf2flt_progname; - #define ARCH "nios" - #elif defined(TARGET_nios2) - #define ARCH "nios2" -+#elif defined(TARGET_lm32) -+#define ARCH "lm32" -+#define FLAT_LM32_RELOC_TYPE_32_BIT 0 -+#define FLAT_LM32_RELOC_TYPE_HI16_BIT 1 -+#define FLAT_LM32_RELOC_TYPE_LO16_BIT 2 - #elif defined(TARGET_xtensa) - #define ARCH "xtensa" - #else -@@ -345,7 +352,7 @@ output_relocs ( - int bad_relocs = 0; - asymbol **symb; - long nsymb; --#ifdef TARGET_bfin -+#if defined (TARGET_bfin) || defined (TARGET_lm32) - unsigned long persistent_data = 0; - #endif - -@@ -669,6 +676,36 @@ dump_symbols(symbols, number_of_symbols); - break; - default: - goto bad_resolved_reloc; -+#elif defined(TARGET_lm32) -+ case R_LM32_HI16: -+ case R_LM32_LO16: -+ if (q->howto->type == R_LM32_HI16) { -+ pflags = FLAT_LM32_RELOC_TYPE_HI16_BIT << 29; -+ } else { -+ pflags = FLAT_LM32_RELOC_TYPE_LO16_BIT << 29; -+ } -+ -+ relocation_needed = 1; -+ -+ /* remember the upper 16 bits */ -+ if ((0xffff0000 & sym_addr) != persistent_data) { -+ flat_relocs = (uint32_t *) -+ (realloc (flat_relocs, (flat_reloc_count + 1) * sizeof (uint32_t))); -+ if (verbose) -+ printf ("New persistent data for %08lx\n", sym_addr); -+ persistent_data = 0xffff0000 & sym_addr; -+ flat_relocs[flat_reloc_count++] = (sym_addr >> 16) | (3 << 29); -+ } -+ break; -+ case R_LM32_32: -+ pflags = FLAT_LM32_RELOC_TYPE_32_BIT << 29; -+ relocation_needed = 1; -+ break; -+ case R_LM32_CALL: -+ relocation_needed = 0; -+ break; -+ default: -+ goto bad_resolved_reloc; - #elif defined(TARGET_m68k) - case R_68K_32: - goto good_32bit_resolved_reloc; -@@ -1447,6 +1484,63 @@ DIS29_RELOCATION: - #undef _30BITS_RELOC - #undef _28BITS_RELOC - #endif -+#ifdef TARGET_lm32 -+ case R_LM32_32: -+ { -+ pflags = FLAT_LM32_RELOC_TYPE_32_BIT << 29; -+ sym_vma = bfd_section_vma(abs_bfd, sym_section); -+ sym_addr += sym_vma + q->addend; -+ relocation_needed = 1; -+ break; -+ } -+ case R_LM32_CALL: -+ { -+ sym_vma = 0; -+ sym_addr += sym_vma + q->addend; -+ sym_addr -= q->address; -+ sym_addr = (int32_t)sym_addr >> q->howto->rightshift; -+ -+ if ((int32_t)sym_addr < -0x8000000 || (int32_t)sym_addr > 0x7ffffff) { -+ printf("ERROR: Relocation overflow for R_LM32_CALL relocation against %s\n", sym_name); -+ bad_relocs++; -+ continue; -+ } -+ -+ r_mem[0] |= (sym_addr >> 24) & 0x03; -+ r_mem[1] = (sym_addr >> 16) & 0xff; -+ r_mem[2] = (sym_addr >> 8) & 0xff; -+ r_mem[3] = sym_addr & 0xff; -+ break; -+ } -+ case R_LM32_HI16: -+ case R_LM32_LO16: -+ { -+ if (q->howto->type == R_LM32_HI16) { -+ pflags = FLAT_LM32_RELOC_TYPE_HI16_BIT << 29; -+ } else { -+ pflags = FLAT_LM32_RELOC_TYPE_LO16_BIT << 29; -+ } -+ -+ sym_vma = bfd_section_vma(abs_bfd, sym_section); -+ sym_addr += sym_vma + q->addend; -+ -+ relocation_needed = 1; -+ -+ /* remember the upper 16 bits */ -+ if ((0xffff0000 & sym_addr) != persistent_data) { -+ flat_relocs = (uint32_t *) -+ (realloc (flat_relocs, (flat_reloc_count + 1) * sizeof (uint32_t))); -+ if (verbose) -+ printf ("New persistent data for %08lx\n", sym_addr); -+ persistent_data = 0xffff0000 & sym_addr; -+ flat_relocs[flat_reloc_count++] = (sym_addr >> 16) | (3 << 29); -+ } -+ -+ r_mem[2] = (sym_addr >> 8) & 0xff; -+ r_mem[3] = sym_addr & 0xff; -+ break; -+ } -+#endif /* TARGET_lm32 */ - default: - /* missing support for other types of relocs */ - printf("ERROR: bad reloc type %d\n", (*p)->howto->type); -@@ -1584,6 +1678,13 @@ DIS29_RELOCATION: - break; - #endif - -+#ifdef TARGET_lm32 -+ case R_LM32_HI16: -+ case R_LM32_LO16: -+ case R_LM32_CALL: -+ /* entry has already been written */ -+ break; -+#endif - default: - /* The alignment of the build host - might be stricter than that of the --- -2.1.4 - |