]> rtime.felk.cvut.cz Git - omk.git/commitdiff
NuttX: use ELF_FILE_LDSCRIPT for ldscript for loadable ELF applications and modules.
authorPavel Pisa <ppisa@pikron.com>
Fri, 13 Sep 2019 20:01:44 +0000 (22:01 +0200)
committerPavel Pisa <ppisa@pikron.com>
Fri, 13 Sep 2019 20:01:44 +0000 (22:01 +0200)
Signed-off-by: Pavel Pisa <ppisa@pikron.com>
snippets/nuttx-bin.omk
snippets/nuttx-compile.omk
snippets/nuttx-kernel.omk

index ca8d1c22a52f5be38256d0e3a3eedd20aca485f2..f77234cf5b8d9d07cc1535dccfc106955319fd6a 100644 (file)
@@ -45,9 +45,12 @@ check-dir::
 $(foreach prog,$(bin_PROGRAMS),$(eval $(call ELF_template,$(prog),$(USER_BIN_DIR))))
 $(foreach prog,$(test_PROGRAMS),$(eval $(call ELF_template,$(prog),$(USER_TESTS_DIR))))
 
+ifneq ($(ELF_FILE_LDSCRIPT),)
 binary-pass-local:  $(bin_PROGRAMS:%=$(USER_BIN_DIR)/%.elf) $(test_PROGRAMS:%=$(USER_TESTS_DIR)/%.elf)
+binary-pass-local:  $(kernel_MODULES:%=$(KERN_MODULES_DIR)/%$(KERN_LINK_SUFFIX))
+endif
 
-binary-pass-local:  $(kernel_MODULES:%=$(KERN_MODULES_DIR)/%$(KERN_LINK_SUFFIX)) $(kernel_MODULES:%=$(KERN_MODULES_DIR)/lib%.ka)
+binary-pass-local:  $(kernel_MODULES:%=$(KERN_MODULES_DIR)/lib%.ka)
 
 $(foreach prog,$(bin_PROGRAMS),$(eval $(call PROGBUILTIN_template,$(prog),$(USER_REGISTRY_DIR),$(USER_REGISTRY_DIR))))
 
index 2f223a86cd83a38b9b89959aad78710847e22a68..cf830a010428f91e4119a836699177ad69edde6f 100644 (file)
@@ -59,6 +59,8 @@ CFLAGS        += -Wall
 CFLAGS += -I$(SOURCES_DIR)
 CFLAGS += -I$(INCLUDE_DIR)
 
+ELF_FILE_LDSCRIPT?=$(wildcard $(NUTTX_EXPORT)/build/gnu-elf.ld)
+
 LOADLIBES += -L$(LIB_DIR)
 LOADLIBES += $(lib_LOADLIBES:%=-l%)
 
@@ -227,12 +229,12 @@ define ELF_template
 $(2)/$(1).elf: $$($(1)_OBJS)
        @$(QUIET_CMD_ECHO) "  ELF     $$@"
        $(Q) $(LINK) \
-         -r -e main -T $(NUTTX_EXPORT)/build/gnu-elf.ld \
+         -r -e main -T $(ELF_FILE_LDSCRIPT) \
          -Map $(1).elf.map \
          $$($(1)_OBJS) $$($(1)_MOREOBJS) $$(LOADLIBES) $$($(1)_LIBS:%=-l%) \
          -o $$@
        @echo "$(2)/$(1).elf: \\" >$(OBJS_DIR)/$(1).elf.d
-       @echo "  $(NUTTX_EXPORT)/build/gnu-elf.ld \\" >>$(OBJS_DIR)/$(1).elf.d
+       @echo "  $(ELF_FILE_LDSCRIPT) \\" >>$(OBJS_DIR)/$(1).elf.d
        @$(SED4OMK) -n -e 's|^LOAD \(.*\)$$$$|  \1  \&|p' $(OBJS_DIR)/$(1).elf.map|tr '&' '\134'  >>$(OBJS_DIR)/$(1).elf.d
        @echo >>$(OBJS_DIR)/$(1).elf.d
 endef
index 07b3eec961b6f422bdbb7d307102c6ec96cab85f..ed2370f739d221b281f7f12dd06a9670b56e70e0 100644 (file)
@@ -70,12 +70,12 @@ KERN_SOURCES += $$($(1)_SOURCES)
 $(2)/$(1)$(KERN_LINK_SUFFIX): $$($(1)_OBJS)
        @$(QUIET_CMD_ECHO) "  LD [K]  $$@"
        $(Q) $(LINK) \
-         -r -e module_initialize -T $(NUTTX_EXPORT)/build/gnu-elf.ld \
+         -r -e module_initialize -T $(ELF_FILE_LDSCRIPT) \
          -Map $(1)$(KERN_LINK_SUFFIX).map \
          $$($(1)_OBJS) $$($(1)_MOREOBJS) $$(LOADLIBES) $$($(1)_LIBS:%=-l%) \
          -o $$@
        @echo "$(2)/$(1)$(KERN_LINK_SUFFIX): \\" >$(OBJS_DIR)/$(1)$(KERN_LINK_SUFFIX).d
-       @echo "  $(NUTTX_EXPORT)/build/gnu-elf.ld \\" >>$(OBJS_DIR)/$(1)$(KERN_LINK_SUFFIX).d
+       @echo "  $(ELF_FILE_LDSCRIPT) \\" >>$(OBJS_DIR)/$(1)$(KERN_LINK_SUFFIX).d
        @$(SED4OMK) -n -e 's|^LOAD \(.*\)$$$$|  \1  \&|p' $(OBJS_DIR)/$(1)$(KERN_LINK_SUFFIX).map|tr '&' '\134'  >>$(OBJS_DIR)/$(1)$(KERN_LINK_SUFFIX).d
        @echo >>$(OBJS_DIR)/$(1)$(KERN_LINK_SUFFIX).d