From 789bb2ef634c9f2a7ed9283b220c3c8b606249be Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Sun, 27 Aug 2023 12:50:36 +0200 Subject: lm32: some more hacks --- target/lm32/uclibc-ng.config | 4 +-- toolchain/binutils/patches/2.28/lm32.patch | 24 ++++++++++++++++ .../0001-.rofixup-fix.patch | 33 ++++++++++++++++++++++ 3 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 toolchain/binutils/patches/2.28/lm32.patch create mode 100644 toolchain/elf2flt/patches/3051fec89bbd30de6f952dc3100712feff3ca076/0001-.rofixup-fix.patch diff --git a/target/lm32/uclibc-ng.config b/target/lm32/uclibc-ng.config index 04fafd377..81e2779fb 100644 --- a/target/lm32/uclibc-ng.config +++ b/target/lm32/uclibc-ng.config @@ -51,7 +51,7 @@ ARCH_HAS_NO_MMU=y # Target CPU lacks a memory management unit (MMU) # UCLIBC_HAS_FLOATS=y -UCLIBC_HAS_FPU=y +# UCLIBC_HAS_FPU is not set DO_C99_MATH=y DO_XSI_MATH=y # UCLIBC_HAS_FENV is not set @@ -66,7 +66,7 @@ HAVE_DOT_CONFIG=y HAVE_NO_PIC=y ARCH_HAS_NO_SHARED=y ARCH_HAS_NO_LDSO=y -UCLIBC_CTOR_DTOR=y +# UCLIBC_CTOR_DTOR is not set # HAS_NO_THREADS is not set UCLIBC_HAS_LINUXTHREADS=y UCLIBC_HAS_THREADS=y diff --git a/toolchain/binutils/patches/2.28/lm32.patch b/toolchain/binutils/patches/2.28/lm32.patch new file mode 100644 index 000000000..962281625 --- /dev/null +++ b/toolchain/binutils/patches/2.28/lm32.patch @@ -0,0 +1,24 @@ +diff -Nur binutils-2.28.orig/bfd/config.bfd binutils-2.28/bfd/config.bfd +--- binutils-2.28.orig/bfd/config.bfd 2017-03-02 09:23:53.000000000 +0100 ++++ binutils-2.28/bfd/config.bfd 2023-08-27 11:54:08.526040118 +0200 +@@ -924,7 +924,7 @@ + ;; + + lm32-*-*linux*) +- targ_defvec=lm32_elf32_fdpic_vec ++ targ_defvec=lm32_elf32_vec + targ_selvecs=lm32_elf32_vec + ;; + +diff -Nur binutils-2.28.orig/ld/configure.tgt binutils-2.28/ld/configure.tgt +--- binutils-2.28.orig/ld/configure.tgt 2017-03-02 09:23:54.000000000 +0100 ++++ binutils-2.28/ld/configure.tgt 2023-08-27 11:54:43.882874903 +0200 +@@ -416,7 +416,7 @@ + ;; + 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/patches/3051fec89bbd30de6f952dc3100712feff3ca076/0001-.rofixup-fix.patch b/toolchain/elf2flt/patches/3051fec89bbd30de6f952dc3100712feff3ca076/0001-.rofixup-fix.patch new file mode 100644 index 000000000..79186642e --- /dev/null +++ b/toolchain/elf2flt/patches/3051fec89bbd30de6f952dc3100712feff3ca076/0001-.rofixup-fix.patch @@ -0,0 +1,33 @@ +From 270b461e88b47781b3ef9bba2779074d0eb4996b Mon Sep 17 00:00:00 2001 +From: Waldemar Brodkorb +Date: Fri, 25 Aug 2023 05:04:53 +0200 +Subject: [PATCH] .rofixup fix + +Signed-off-by: Waldemar Brodkorb +--- + elf2flt.ld.in | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/elf2flt.ld.in b/elf2flt.ld.in +index c7e01a6..c69531e 100644 +--- a/elf2flt.ld.in ++++ b/elf2flt.ld.in +@@ -31,6 +31,7 @@ W_RODAT *(.rodata) + W_RODAT *(.rodata1) + W_RODAT *(.rodata.*) + W_RODAT *(.gnu.linkonce.r*) ++W_RODAT *(.rofixup) + + /* This is special code area at the end of the normal + text section. It contains a small lookup table at +@@ -60,6 +61,7 @@ R_RODAT *(.rodata) + R_RODAT *(.rodata1) + R_RODAT *(.rodata.*) + R_RODAT *(.gnu.linkonce.r*) ++R_RODAT *(.rofixup) + *(.data) + *(.data1) + *(.data.*) +-- +2.30.2 + -- cgit v1.2.3