diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2024-04-14 14:10:10 +0200 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2024-04-14 14:10:10 +0200 |
commit | 4d6636f6b22718a4181833db4579a003c0893683 (patch) | |
tree | 3bc6bb9da8e97ac483da56e1f517833be9664bc2 | |
parent | 48591e2a259d84247ae38f050bd58e6f7450bb77 (diff) |
riscv32: allow ELF PIE noMMU build
-rw-r--r-- | extra/Configs/Config.in | 3 | ||||
-rw-r--r-- | extra/Configs/Config.in.arch | 2 | ||||
-rw-r--r-- | libc/sysdeps/linux/riscv32/crt1.S | 7 |
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 |