linker: prefer board specific linker file
First look for a custom linker file defined by a config variable, if not defined, look in the board directory. Finally look in the SoC directory. This adds flexibility and enhances modularity allowing a board to define the linker the script instead of the SoC specific one. Change-Id: Id44aa7d0e93d97234163ec858e2cfefe09768a08 Signed-off-by: Anas Nashif <anas.nashif@intel.com>
This commit is contained in:
parent
4f48ac1c20
commit
6c5509f34f
1 changed files with 13 additions and 7 deletions
20
Makefile
20
Makefile
|
@ -707,7 +707,19 @@ LDFLAGS_zephyr += $(call ld-option,--build-id=none)
|
||||||
LD_TOOLCHAIN ?= -D__GCC_LINKER_CMD__
|
LD_TOOLCHAIN ?= -D__GCC_LINKER_CMD__
|
||||||
|
|
||||||
|
|
||||||
export LD_TOOLCHAIN
|
ifdef CONFIG_HAVE_CUSTOM_LINKER_SCRIPT
|
||||||
|
KBUILD_LDS := $(subst $(DQUOTE),,$(CONFIG_CUSTOM_LINKER_SCRIPT))
|
||||||
|
else
|
||||||
|
# Try a board specific linker file
|
||||||
|
KBUILD_LDS := $(srctree)/boards/$(BOARD_NAME)/linker.cmd
|
||||||
|
|
||||||
|
# If not available, try an SoC specific linker file
|
||||||
|
ifeq ($(wildcard $(KBUILD_LDS)),)
|
||||||
|
KBUILD_LDS := $(srctree)/arch/$(ARCH)/soc/$(SOC_NAME)/linker.cmd
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
export LD_TOOLCHAIN KBUILD_LDS
|
||||||
|
|
||||||
# Default kernel image to build when no specific target is given.
|
# Default kernel image to build when no specific target is given.
|
||||||
# KBUILD_IMAGE may be overruled on the command line or
|
# KBUILD_IMAGE may be overruled on the command line or
|
||||||
|
@ -732,14 +744,8 @@ libs-y1 := $(patsubst %/, %/lib.a, $(libs-y))
|
||||||
libs-y2 := $(patsubst %/, %/built-in.o, $(libs-y))
|
libs-y2 := $(patsubst %/, %/built-in.o, $(libs-y))
|
||||||
libs-y := $(libs-y1) $(libs-y2)
|
libs-y := $(libs-y1) $(libs-y2)
|
||||||
|
|
||||||
|
|
||||||
# Externally visible symbols (used by link-zephyr.sh)
|
# Externally visible symbols (used by link-zephyr.sh)
|
||||||
export KBUILD_ZEPHYR_MAIN := $(drivers-y) $(core-y) $(libs-y) $(app-y)
|
export KBUILD_ZEPHYR_MAIN := $(drivers-y) $(core-y) $(libs-y) $(app-y)
|
||||||
ifdef CONFIG_HAVE_CUSTOM_LINKER_SCRIPT
|
|
||||||
export KBUILD_LDS := $(subst $(DQUOTE),,$(CONFIG_CUSTOM_LINKER_SCRIPT))
|
|
||||||
else
|
|
||||||
export KBUILD_LDS := $(srctree)/arch/$(ARCH)/soc/$(SOC_NAME)/linker.cmd
|
|
||||||
endif
|
|
||||||
export LDFLAGS_zephyr
|
export LDFLAGS_zephyr
|
||||||
# used by scripts/pacmage/Makefile
|
# used by scripts/pacmage/Makefile
|
||||||
export KBUILD_ALLDIRS := $(sort $(filter-out arch/%,$(zephyr-alldirs)) arch include samples scripts)
|
export KBUILD_ALLDIRS := $(sort $(filter-out arch/%,$(zephyr-alldirs)) arch include samples scripts)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue