From 4d6636f6b22718a4181833db4579a003c0893683 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Sun, 14 Apr 2024 14:10:10 +0200 Subject: riscv32: allow ELF PIE noMMU build --- extra/Configs/Config.in | 3 ++- extra/Configs/Config.in.arch | 2 +- 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 -- cgit v1.2.3