]> Git Repo - buildroot-mgba.git/commitdiff
package/elf2flt: fix riscv64 noMMU build
authorWaldemar Brodkorb <[email protected]>
Wed, 24 Apr 2024 16:11:36 +0000 (18:11 +0200)
committerRomain Naour <[email protected]>
Wed, 24 Apr 2024 19:39:06 +0000 (21:39 +0200)
Fixes:
https://gitlab.com/buildroot.org/buildroot/-/jobs/6655119961

Signed-off-by: Waldemar Brodkorb <[email protected]>
Signed-off-by: Romain Naour <[email protected]>
package/elf2flt/0001-fix-alignment-for-new-style-ctors-when-using-riscv64.patch [new file with mode: 0644]

diff --git a/package/elf2flt/0001-fix-alignment-for-new-style-ctors-when-using-riscv64.patch b/package/elf2flt/0001-fix-alignment-for-new-style-ctors-when-using-riscv64.patch
new file mode 100644 (file)
index 0000000..fea726d
--- /dev/null
@@ -0,0 +1,34 @@
+From eead8d5e9f3911243182311f16178c25c6ea03c4 Mon Sep 17 00:00:00 2001
+From: Waldemar Brodkorb <[email protected]>
+Date: Sat, 23 Mar 2024 07:23:45 +0100
+Subject: [PATCH] fix alignment for new-style ctors when using riscv64
+
+Recently uClibc-ng enabled UCLIBC_CTOR_DTOR for riscv64, so
+that f.e. C++ applications are running fine. As a side effect
+this breaks noMMU support. The problem is the alignment for
+the ctors in elf2flt. This patch fixes it.
+
+Tested with Qemu for ARM, M68k and Xtensa with no regressions.
+
+Signed-off-by: Waldemar Brodkorb <[email protected]>
+Upstream: https://github.com/uclinux-dev/elf2flt/commit/eead8d5e9f3911243182311f16178c25c6ea03c4
+---
+ elf2flt.ld.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/elf2flt.ld.in b/elf2flt.ld.in
+index a99c69e..230c382 100644
+--- a/elf2flt.ld.in
++++ b/elf2flt.ld.in
+@@ -139,7 +139,7 @@ R_RODAT:   *(.gnu.linkonce.r*)
+               @SYMBOL_PREFIX@_ssro_size = @SYMBOL_PREFIX@_essro - @SYMBOL_PREFIX@_ssro;
+               PROVIDE(@SYMBOL_PREFIX@_SDA2_BASE_ = @SYMBOL_PREFIX@_ssro + (@SYMBOL_PREFIX@_ssro_size / 2));
+-              . = ALIGN(4) ;
++              . = ALIGN(8) ;
+ TOR:          @SYMBOL_PREFIX@__CTOR_LIST__ = .;
+ TOR:          LONG((@SYMBOL_PREFIX@__CTOR_END__ - @SYMBOL_PREFIX@__CTOR_LIST__) / 4 - 2)
+ SINGLE_LINK:  /* gcc uses crtbegin.o to find the start of
+-- 
+2.30.2
+
This page took 0.035274 seconds and 4 git commands to generate.