laforge has submitted this change. ( 
https://gerrit.osmocom.org/c/osmocom-bb/+/35089?usp=email )

Change subject: firmware: -nostartfiles -nodefaultlibs are not flags of LD but 
flags of GCC
......................................................................

firmware: -nostartfiles -nodefaultlibs are not flags of LD but flags of GCC

It seems that those flags have always been gcc flags, and not ld flags.

After decades of tolerating this, binutils 2.36.x no longer tolerates
those flags but prints an error:

arm-none-eabi-ld: Error: unable to disambiguate: -nostartfiles (did you mean 
--nostartfiles ?)

See also https://github.com/apache/nuttx/issues/3826 and the related
https://github.com/apache/nuttx/pull/3836 how this was solved in another
project - I adopted that solution here 1:1

Change-Id: Id199e4d03d5aae07a347c98f47791f42c12008c6
---
M src/target/firmware/Makefile.inc
1 file changed, 24 insertions(+), 4 deletions(-)

Approvals:
  Jenkins Builder: Verified
  Hoernchen: Looks good to me, approved
  fixeria: Looks good to me, but someone else must approve




diff --git a/src/target/firmware/Makefile.inc b/src/target/firmware/Makefile.inc
index 2be240d..86e8f3c 100644
--- a/src/target/firmware/Makefile.inc
+++ b/src/target/firmware/Makefile.inc
@@ -4,7 +4,7 @@
 CROSS_COMPILE?=arm-none-eabi-

 CC=gcc
-LD=ld
+LD=gcc
 AR=ar
 SIZE=size
 OBJCOPY=objcopy
@@ -22,7 +22,7 @@
 #ASFLAGS=--g$(DEBUGF) $(INCLUDES) -D__ASSEMBLY__
 ASFLAGS=$(INCLUDES) -D__ASSEMBLY__

-LDFLAGS = -nostartfiles -nostdlib -nodefaultlibs --gc-sections --cref
+LDFLAGS = -nostartfiles -nostdlib -nodefaultlibs -Wl,--gc-sections -Wl,--cref

 #### QUIET OUTPUT ####

@@ -99,8 +99,8 @@
 # define compilation rule, also generates map file
 board/$(2)/$(1).$(3).elf board/$(2)/$(1).$(3).map: $$($(1)_$(2)_$(3)_OBJS) 
$$($(1)_$(2)_$(3)_LIBS) $$(ENV_$(3)_LDS)
        $$(Q_LD)$(CROSS_COMPILE)$(LD) $(LDFLAGS) -T $$(ENV_$(3)_LDS) -Bstatic \
-               -Map board/$(2)/$(1).$(3).map -o board/$(2)/$(1).$(3).elf \
-               --start-group $$($(1)_$(2)_$(3)_OBJS) $$($(1)_$(2)_$(3)_LIBS) 
--end-group
+               -Wl,-Map board/$(2)/$(1).$(3).map -o board/$(2)/$(1).$(3).elf \
+               -Wl,--start-group $$($(1)_$(2)_$(3)_OBJS) 
$$($(1)_$(2)_$(3)_LIBS) -Wl,--end-group

 # define size rule
 board/$(2)/$(1).$(3).size: board/$(2)/$(1).$(3).elf

--
To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/35089?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmocom-bb
Gerrit-Branch: master
Gerrit-Change-Id: Id199e4d03d5aae07a347c98f47791f42c12008c6
Gerrit-Change-Number: 35089
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <[email protected]>
Gerrit-Reviewer: Hoernchen <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <[email protected]>
Gerrit-Reviewer: laforge <[email protected]>
Gerrit-MessageType: merged

Reply via email to