This is an automated email from the ASF dual-hosted git repository.

acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit 113a47cb709e5d2eaac4170196de169b254db5d3
Author: Marco Casaroli <[email protected]>
AuthorDate: Wed Oct 21 10:09:00 2026 +0200

    arch/risc-v: Give --oformat to the linker with -Xlinker.
    
    LDELFFLAGS has "--oformat elf32-littleriscv" (or elf64), an option of
    the linker.  The link of an ELF program uses MODULELD, which is LD by
    default, and with clang, or with gcc and CONFIG_LTO_FULL, LD is the
    compiler driver.  The driver stops: "riscv-none-elf-gcc: error:
    unrecognized command-line option '--oformat'", "clang: error: unknown
    argument: '--oformat'".
    
    The branches that set LD to a driver now set LDXLINKER to -Xlinker, and
    LDELFFLAGS has "$(LDXLINKER) --oformat=elf32-littleriscv" (or elf64).
    With ld the option is the same as before.
    
    Assisted-by: Claude Code:claude-opus-5-5
    Signed-off-by: Marco Casaroli <[email protected]>
---
 arch/risc-v/src/common/Toolchain.defs | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/arch/risc-v/src/common/Toolchain.defs 
b/arch/risc-v/src/common/Toolchain.defs
index ab8f08ff0e7..bf9f890d0a8 100644
--- a/arch/risc-v/src/common/Toolchain.defs
+++ b/arch/risc-v/src/common/Toolchain.defs
@@ -366,6 +366,10 @@ ifeq ($(CONFIG_ARCH_TOOLCHAIN_CLANG),y)
 
   ARCHOPTIMIZATION += -fshort-enums
 
+  # LD is the compiler driver: give it the options of the linker with -Xlinker
+
+  LDXLINKER = -Xlinker
+
 # Default toolchain
 
 else
@@ -395,6 +399,7 @@ else
 
       LDMODULELTOFLAGS = -flinker-output=nolto-rel $(CMODULEFLAGS)
       LDELFLTOFLAGS = -flinker-output=nolto-rel $(CELFFLAGS)
+      LDXLINKER = -Xlinker
     endif
   endif
 
@@ -467,9 +472,9 @@ ifeq ($(CONFIG_BINFMT_ELF_RELOCATABLE),y)
 endif
 
 ifeq ($(CONFIG_ARCH_RV32),y)
-  LDELFFLAGS += --oformat elf32-littleriscv
+  LDELFFLAGS += $(LDXLINKER) --oformat=elf32-littleriscv
 else
-  LDELFFLAGS += --oformat elf64-littleriscv
+  LDELFFLAGS += $(LDXLINKER) --oformat=elf64-littleriscv
 endif
 
 ifneq ($(CONFIG_BUILD_KERNEL),y)

Reply via email to