summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2024-04-14 14:10:10 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2024-04-14 14:10:10 +0200
commit4d6636f6b22718a4181833db4579a003c0893683 (patch)
tree3bc6bb9da8e97ac483da56e1f517833be9664bc2
parent48591e2a259d84247ae38f050bd58e6f7450bb77 (diff)
riscv32: allow ELF PIE noMMU build
-rw-r--r--extra/Configs/Config.in3
-rw-r--r--extra/Configs/Config.in.arch2
-rw-r--r--libc/sysdeps/linux/riscv32/crt1.S7
3 files changed, 5 insertions, 7 deletions
diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in
index 716c4e06c..b814449b4 100644
--- a/extra/Configs/Config.in
+++ b/extra/Configs/Config.in
@@ -336,7 +336,8 @@ config STATIC_PIE
depends on DOPIC && !UCLIBC_FORMAT_FDPIC_ELF && \
(TARGET_aarch64 || TARGET_arm || TARGET_i386 || \
TARGET_m68k || TARGET_mips || TARGET_powerpc || \
- TARGET_riscv64 || TARGET_x86_64 || TARGET_xtensa)
+ TARGET_riscv32 || TARGET_riscv64 || TARGET_x86_64 \
+ || TARGET_xtensa)
config ARCH_HAS_NO_SHARED
bool
diff --git a/extra/Configs/Config.in.arch b/extra/Configs/Config.in.arch
index 4bcf3ff3f..895663d1d 100644
--- a/extra/Configs/Config.in.arch
+++ b/extra/Configs/Config.in.arch
@@ -13,7 +13,7 @@ choice
config UCLIBC_FORMAT_ELF
bool "ELF (using ELF_FDPIC loader)"
depends on !ARCH_USE_MMU && (TARGET_arm || TARGET_m68k || \
- TARGET_riscv64)
+ TARGET_riscv32 || TARGET_riscv64)
select DOPIC
select STATIC_PIE
select ARCH_HAS_NO_SHARED
diff --git a/libc/sysdeps/linux/riscv32/crt1.S b/libc/sysdeps/linux/riscv32/crt1.S
index 15aa0763c..5e33046d4 100644
--- a/libc/sysdeps/linux/riscv32/crt1.S
+++ b/libc/sysdeps/linux/riscv32/crt1.S
@@ -45,9 +45,6 @@
.globl _start
.type _start,%function
- .weak _init
- .weak _fini
-
_start:
call .Lload_gp
mv a5, a0 /* rtld_fini. */
@@ -55,9 +52,9 @@ _start:
la a0, main
REG_L a1, 0(sp) /* argc. */
addi a2, sp, SZREG /* argv. */
+ mv a3, zero
+ mv a4, zero
andi sp, sp, ALMASK /* Align stack. */
- lla a3, _init
- lla a4, _fini
mv a6, sp /* stack_end. */
tail __uClibc_main@plt