From 8afcd1092f3dc822aa255685b98c815eb3642819 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Wed, 9 Oct 2019 17:13:05 +0200 Subject: lm32: try to build kernel for qemu --- toolchain/binutils/patches/2.32/lm32.patch | 25 ++++ toolchain/elf2flt/Makefile.inc | 6 - .../0001-lm32.patch | 159 --------------------- .../0002-sh2.patch | 43 ------ ...003-Makefile-fix-build-with-Binutils-2.31.patch | 34 ----- .../0001-lm32.patch | 159 +++++++++++++++++++++ .../0002-sh2.patch | 43 ++++++ toolchain/gcc/Makefile.inc | 8 ++ 8 files changed, 235 insertions(+), 242 deletions(-) create mode 100644 toolchain/binutils/patches/2.32/lm32.patch delete mode 100644 toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0001-lm32.patch delete mode 100644 toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0002-sh2.patch delete mode 100644 toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0003-Makefile-fix-build-with-Binutils-2.31.patch create mode 100644 toolchain/elf2flt/patches/7e33f28df198c46764021ed14408bd262751e148/0001-lm32.patch create mode 100644 toolchain/elf2flt/patches/7e33f28df198c46764021ed14408bd262751e148/0002-sh2.patch (limited to 'toolchain') diff --git a/toolchain/binutils/patches/2.32/lm32.patch b/toolchain/binutils/patches/2.32/lm32.patch new file mode 100644 index 000000000..176f09982 --- /dev/null +++ b/toolchain/binutils/patches/2.32/lm32.patch @@ -0,0 +1,25 @@ +diff -Nur binutils-2.32.orig/bfd/config.bfd binutils-2.32/bfd/config.bfd +--- binutils-2.32.orig/bfd/config.bfd 2019-01-19 17:01:32.000000000 +0100 ++++ binutils-2.32/bfd/config.bfd 2019-10-08 18:05:48.695171206 +0200 +@@ -787,7 +787,7 @@ + ;; + + lm32-*-*linux*) +- targ_defvec=lm32_elf32_fdpic_vec ++ targ_defvec=lm32_elf32_vec + targ_selvecs=lm32_elf32_vec + ;; + +diff -Nur binutils-2.32.orig/ld/configure.tgt binutils-2.32/ld/configure.tgt +--- binutils-2.32.orig/ld/configure.tgt 2019-01-19 17:01:33.000000000 +0100 ++++ binutils-2.32/ld/configure.tgt 2019-10-08 18:04:50.170788572 +0200 +@@ -388,7 +388,8 @@ + ;; + iq2000-*-elf) targ_emul=elf32iq2000 ; targ_extra_emuls="elf32iq10" + ;; +-lm32-*-*linux*) targ_emul=elf32lm32fd ;; ++lm32-*-*linux*) targ_emul=elf32lm32 ++ ;; + lm32-*-*) targ_emul=elf32lm32 ; targ_extra_emuls="elf32lm32fd" + ;; + m32c-*-elf | m32c-*-rtems*) diff --git a/toolchain/elf2flt/Makefile.inc b/toolchain/elf2flt/Makefile.inc index ca12e5ff7..30a3cebfe 100644 --- a/toolchain/elf2flt/Makefile.inc +++ b/toolchain/elf2flt/Makefile.inc @@ -12,9 +12,3 @@ PKG_GIT:= branch PKG_RELEASE:= 1 PKG_SITES:= git://git.osdn.net/gitroot/uclinux-h8/elf2flt.git endif -ifeq ($(ADK_TARGET_ARCH_LM32),y) -PKG_VERSION:= 3051fec89bbd30de6f952dc3100712feff3ca076 -PKG_GIT:= hash -PKG_RELEASE:= 1 -PKG_SITES:= https://github.com/m-labs/elf2flt-lm32.git -endif diff --git a/toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0001-lm32.patch b/toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0001-lm32.patch deleted file mode 100644 index 44757171b..000000000 --- a/toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0001-lm32.patch +++ /dev/null @@ -1,159 +0,0 @@ -diff -Nur elf2flt-6d80ab6c93409e796f85da404bde84b841231531.orig/elf2flt.c elf2flt-6d80ab6c93409e796f85da404bde84b841231531/elf2flt.c ---- elf2flt-6d80ab6c93409e796f85da404bde84b841231531.orig/elf2flt.c 2017-09-27 06:06:04.000000000 +0200 -+++ elf2flt-6d80ab6c93409e796f85da404bde84b841231531/elf2flt.c 2017-09-27 06:07:51.032597579 +0200 -@@ -61,6 +61,8 @@ - #include - #elif defined(TARGET_h8300) - #include -+#elif defined(TARGET_lm32) -+#include - #elif defined(TARGET_m68k) - #include - #elif defined(TARGET_microblaze) -@@ -120,6 +122,11 @@ - #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 -@@ -357,7 +364,7 @@ - int bad_relocs = 0; - asymbol **symb; - long nsymb; --#ifdef TARGET_bfin -+#if defined (TARGET_bfin) || defined (TARGET_lm32) - unsigned long persistent_data = 0; - #endif - -@@ -682,6 +689,36 @@ - 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; -@@ -1459,6 +1496,63 @@ - #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); -@@ -1596,6 +1690,13 @@ - 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 -diff -Nur elf2flt-6d80ab6c93409e796f85da404bde84b841231531.orig/elf2flt.ld.in elf2flt-6d80ab6c93409e796f85da404bde84b841231531/elf2flt.ld.in ---- elf2flt-6d80ab6c93409e796f85da404bde84b841231531.orig/elf2flt.ld.in 2017-09-27 06:06:04.000000000 +0200 -+++ elf2flt-6d80ab6c93409e796f85da404bde84b841231531/elf2flt.ld.in 2017-09-29 18:11:30.999698955 +0200 -@@ -34,6 +34,7 @@ - W_RODAT *(.rodata1) - W_RODAT *(.rodata.*) - W_RODAT *(.gnu.linkonce.r*) -+W_RODAT *(.rofixup) - - /* .ARM.extab name sections containing exception unwinding information */ - *(.ARM.extab* .gnu.linkonce.armextab.*) diff --git a/toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0002-sh2.patch b/toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0002-sh2.patch deleted file mode 100644 index 59e263bc0..000000000 --- a/toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0002-sh2.patch +++ /dev/null @@ -1,43 +0,0 @@ -diff -Nur elf2flt-6d80ab6c93409e796f85da404bde84b841231531.orig/elf2flt.c elf2flt-6d80ab6c93409e796f85da404bde84b841231531/elf2flt.c ---- elf2flt-6d80ab6c93409e796f85da404bde84b841231531.orig/elf2flt.c 2017-10-03 10:36:02.718919968 +0200 -+++ elf2flt-6d80ab6c93409e796f85da404bde84b841231531/elf2flt.c 2017-10-03 10:37:42.402568044 +0200 -@@ -74,7 +74,7 @@ - #define FLAT_NIOS2_R_HIADJ_LO 2 - #define FLAT_NIOS2_R_CALL26 4 - #include --#elif defined(TARGET_sh) -+#elif defined(TARGET_sh2) || defined(TARGET_sh2eb) - #include - #elif defined(TARGET_sparc) - #include -@@ -108,8 +108,10 @@ - #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) -@@ -1309,7 +1311,7 @@ - #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); -@@ -1320,7 +1322,7 @@ - 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) diff --git a/toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0003-Makefile-fix-build-with-Binutils-2.31.patch b/toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0003-Makefile-fix-build-with-Binutils-2.31.patch deleted file mode 100644 index 825582550..000000000 --- a/toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0003-Makefile-fix-build-with-Binutils-2.31.patch +++ /dev/null @@ -1,34 +0,0 @@ -From faf1a1646093fbc5ed279bae1c7250c7dfea56f8 Mon Sep 17 00:00:00 2001 -From: Romain Naour -Date: Tue, 17 Jul 2018 16:36:16 +0200 -Subject: [PATCH] Makefile: fix build with Binutils 2.31 - -Binutils added diagnostics.h to bfd.h [1], so elf2flt must create a symlink -for this header. - -Fixes: -https://gitlab.com/free-electrons/toolchains-builder/-/jobs/82284139 - -[1] https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commitdiff;h=95da9854466ada2572b42f5528711a06a2d42db1 - -Signed-off-by: Romain Naour ---- - Makefile.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile.in b/Makefile.in -index cfad06c..164e306 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -127,7 +127,7 @@ bfd-headers/.stamp: - rm -rf bfd-headers - mkdir bfd-headers - ln -sf $(BFD_INCLUDE_DIR)/bfd.h bfd-headers/bfd.h -- for f in ansidecl filenames hashtab libiberty symcat; do \ -+ for f in ansidecl diagnostics filenames hashtab libiberty symcat; do \ - ln -sf $(BINUTILS_INCLUDE_DIR)/$$f.h bfd-headers/$$f.h || exit 1; \ - done - ln -sf $(BINUTILS_INCLUDE_DIR)/elf bfd-headers/elf --- -2.7.4 - diff --git a/toolchain/elf2flt/patches/7e33f28df198c46764021ed14408bd262751e148/0001-lm32.patch b/toolchain/elf2flt/patches/7e33f28df198c46764021ed14408bd262751e148/0001-lm32.patch new file mode 100644 index 000000000..44757171b --- /dev/null +++ b/toolchain/elf2flt/patches/7e33f28df198c46764021ed14408bd262751e148/0001-lm32.patch @@ -0,0 +1,159 @@ +diff -Nur elf2flt-6d80ab6c93409e796f85da404bde84b841231531.orig/elf2flt.c elf2flt-6d80ab6c93409e796f85da404bde84b841231531/elf2flt.c +--- elf2flt-6d80ab6c93409e796f85da404bde84b841231531.orig/elf2flt.c 2017-09-27 06:06:04.000000000 +0200 ++++ elf2flt-6d80ab6c93409e796f85da404bde84b841231531/elf2flt.c 2017-09-27 06:07:51.032597579 +0200 +@@ -61,6 +61,8 @@ + #include + #elif defined(TARGET_h8300) + #include ++#elif defined(TARGET_lm32) ++#include + #elif defined(TARGET_m68k) + #include + #elif defined(TARGET_microblaze) +@@ -120,6 +122,11 @@ + #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 +@@ -357,7 +364,7 @@ + int bad_relocs = 0; + asymbol **symb; + long nsymb; +-#ifdef TARGET_bfin ++#if defined (TARGET_bfin) || defined (TARGET_lm32) + unsigned long persistent_data = 0; + #endif + +@@ -682,6 +689,36 @@ + 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; +@@ -1459,6 +1496,63 @@ + #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); +@@ -1596,6 +1690,13 @@ + 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 +diff -Nur elf2flt-6d80ab6c93409e796f85da404bde84b841231531.orig/elf2flt.ld.in elf2flt-6d80ab6c93409e796f85da404bde84b841231531/elf2flt.ld.in +--- elf2flt-6d80ab6c93409e796f85da404bde84b841231531.orig/elf2flt.ld.in 2017-09-27 06:06:04.000000000 +0200 ++++ elf2flt-6d80ab6c93409e796f85da404bde84b841231531/elf2flt.ld.in 2017-09-29 18:11:30.999698955 +0200 +@@ -34,6 +34,7 @@ + W_RODAT *(.rodata1) + W_RODAT *(.rodata.*) + W_RODAT *(.gnu.linkonce.r*) ++W_RODAT *(.rofixup) + + /* .ARM.extab name sections containing exception unwinding information */ + *(.ARM.extab* .gnu.linkonce.armextab.*) diff --git a/toolchain/elf2flt/patches/7e33f28df198c46764021ed14408bd262751e148/0002-sh2.patch b/toolchain/elf2flt/patches/7e33f28df198c46764021ed14408bd262751e148/0002-sh2.patch new file mode 100644 index 000000000..59e263bc0 --- /dev/null +++ b/toolchain/elf2flt/patches/7e33f28df198c46764021ed14408bd262751e148/0002-sh2.patch @@ -0,0 +1,43 @@ +diff -Nur elf2flt-6d80ab6c93409e796f85da404bde84b841231531.orig/elf2flt.c elf2flt-6d80ab6c93409e796f85da404bde84b841231531/elf2flt.c +--- elf2flt-6d80ab6c93409e796f85da404bde84b841231531.orig/elf2flt.c 2017-10-03 10:36:02.718919968 +0200 ++++ elf2flt-6d80ab6c93409e796f85da404bde84b841231531/elf2flt.c 2017-10-03 10:37:42.402568044 +0200 +@@ -74,7 +74,7 @@ + #define FLAT_NIOS2_R_HIADJ_LO 2 + #define FLAT_NIOS2_R_CALL26 4 + #include +-#elif defined(TARGET_sh) ++#elif defined(TARGET_sh2) || defined(TARGET_sh2eb) + #include + #elif defined(TARGET_sparc) + #include +@@ -108,8 +108,10 @@ + #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) +@@ -1309,7 +1311,7 @@ + #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); +@@ -1320,7 +1322,7 @@ + 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) diff --git a/toolchain/gcc/Makefile.inc b/toolchain/gcc/Makefile.inc index 409fd2daa..6b626715f 100644 --- a/toolchain/gcc/Makefile.inc +++ b/toolchain/gcc/Makefile.inc @@ -49,6 +49,14 @@ PKG_RELEASE:= 1 DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz LIBSTDCXXVER:= 19 endif +ifeq ($(ADK_TOOLCHAIN_GCC_LM32),y) +PKG_VERSION:= 4.5.2 +PKG_HASH:= 07b880faf29f3f9d9c0953717002ac29f5d061427797d2487a7c9c169e6395b3 +PKG_SITES:= https://ftp.gnu.org/gnu/gcc/gcc-$(PKG_VERSION)/ +PKG_RELEASE:= 1 +DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz +LIBSTDCXXVER:= 19 +endif ifeq ($(ADK_TOOLCHAIN_GCC_NDS32),y) PKG_VERSION:= nds32-6.3.0-open PKG_HASH:= b23ce96df25dfdd5526496a3c2cd7ee1da4ed4094971a2e0c47c73ad7e1ad30a -- cgit v1.2.3