LDNAME := $$(LDSCRIPT)
endif
-LD_SCRIPT ?= $$(NUTTX_EXPORT)/scripts/$$(LDNAME)
+LD_SCRIPT ?= $$(LDNAME:%=$$(NUTTX_EXPORT)/scripts/%)
ifneq ($$(filter-out clean distclean, $$(MAKECMDGOALS)),)
ifeq ($(LDNAME),)
endif
endif
-LD_SCRIPT = $$(NUTTX_EXPORT)/scripts/$$(LDNAME)
-
ELF_FILE_LDSCRIPT?=$$(wildcard $$(NUTTX_EXPORT)/scripts/gnu-elf.ld)
LOADLIBES += -L$$(LIB_DIR)
$(1)$(3:%=-%)_LD_SCRIPT = $$($(1)$(3:%=-%)_LD_SCRIPT_FN)
endif
-$(1)$(3:%=-%)_LDFLAGS = $$(CC_LD_OPTION)-T$$(LD_OPTION_SEP)$$($(1)$(3:%=-%)_LD_SCRIPT)
+$(1)$(3:%=-%)_LDFLAGS = $$($(1)$(3:%=-%)_LD_SCRIPT:%=$$(CC_LD_OPTION)-T$$(LD_OPTION_SEP)%)
$(2)/$(1)$(3:%=-%): $$($(1)_OBJS) $$($(1)_BUILTINTABLE:%.c=%$$(OBJ_EXT)) $$($(1)_BUILTINWRAPMAIN:%.c=%$$(OBJ_EXT)) $$($(1)_PROGBUILTIN_LDAT) $$($(1)$(3:%=-%)_LD_SCRIPT) $$($(1)_KMODBUILTIN_LIBS)
@$(QUIET_CMD_ECHO) " LINK $$@"
$$(LD) \
) \
$$(OMK_LDFLAGS) $$(LDFLAGS) $$($(1)$(3:%=-%)_LDFLAGS) $$(CC_LD_OPTION)-Map$$(LD_OPTION_SEP)$(1)$(3:%=-%).map \
+ $$(HEAD_OBJ:%=$$(NUTTX_EXPORT)/startup/%) \
$$($(1)_OBJS) $$($(1)_MOREOBJS) $$($(1)_BUILTINTABLE:%.c=%$$(OBJ_EXT)) $$($(1)_BUILTINWRAPMAIN:%.c=%$$(OBJ_EXT)) \
$$($(1)_PROGBUILTIN_PBI) $$(LOADLIBES) $$($(1)_LIBS:%=-l%) $$($(1)_KMODBUILTIN_LIBS) \
$$(shell for i in $$($(1)_PROGBUILTIN_LDAT); do cat $$$$i ; done) $$(NUTTXLIBES) \
$(2)/$(1).elf: $$($(1)_OBJS)
@$(QUIET_CMD_ECHO) " ELF $$@"
- $(Q) $(LD_RAW) \
- -r -e main -T $(ELF_FILE_LDSCRIPT) \
+ $(Q) $$(LD_RAW) \
+ $$(filter -m%,$$(LDFLAGS:$$(CC_LD_OPTION)%=%)) \
+ -r -e main -T $$(ELF_FILE_LDSCRIPT) \
-Map $(1).elf.map \
$$($(1)_OBJS) $$($(1)_MOREOBJS) $$(LOADLIBES) $$($(1)_LIBS:%=-l%) \
-o $$@
$(2)/$(1).pbi: $$($(1)_OBJS)
@$(QUIET_CMD_ECHO) " PROGMOD $$@"
$(Q) $(LD_RAW) \
+ $$(filter -m%,$$(LDFLAGS:$$(CC_LD_OPTION)%=%)) \
-r -x --defsym=$(1)_main=main \
-Map $(1).pbi.map \
$$($(1)_OBJS) $$($(1)_MOREOBJS) \
$(LIB_DIR)/lib$(1).so: $$($(1)_OBJSLO)
@$(QUIET_CMD_ECHO) " LINK $$@"
- $(Q) $(LD_RAW) --shared --soname=lib$(1).so -o $$@ $$^
+ $(Q) $(LD_RAW) \
+ $$(filter -m%,$$(LDFLAGS:$$(CC_LD_OPTION)%=%) \
+ --shared --soname=lib$(1).so -o $$@ $$^
endef
ifneq ($(bin_PROGRAMS),)
$(2)$$(OBJ_EXT): $(2)
@$(QUIET_CMD_ECHO) " ROMFS $$@"
$(Q) $(LD_RAW) -r --accept-unknown-input-arch -b binary \
+ $$(filter -m%,$$(LDFLAGS:$$(CC_LD_OPTION)%=%)) \
--defsym=$(2)_size=_binary_$(2)_size \
--defsym=$(2)_start=_binary_$(2)_start \
--defsym=$(2)_end=_binary_$(2)_end \