Commit 1d3b97c94eb562fa1071abd50b3a4cb4cca7f203

Authored by Daniel Schwierzeck
1 parent 101860ef69

Kbuild: add LDFLAGS_STANDALONE

Introduce a new Makefile variable for passing LDFLAGS to standalone
programs. Currently the variable CONFIG_STANDALONE_LOAD_ADDR is
misued on some archs to pass a specific linker script.

Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Rick Chen <rick@andestech.com>

Showing 7 changed files with 14 additions and 10 deletions Side-by-side Diff

arch/mips/cpu/mips32/config.mk
... ... @@ -3,6 +3,6 @@
3 3 # (C) Copyright 2003
4 4 # Wolfgang Denk, DENX Software Engineering, <wd@denx.de>
5 5  
6   -CONFIG_STANDALONE_LOAD_ADDR ?= 0x80200000 \
7   - -T $(srctree)/examples/standalone/mips.lds
  6 +CONFIG_STANDALONE_LOAD_ADDR ?= 0x80200000
  7 +LDFLAGS_STANDALONE += -T $(srctree)/examples/standalone/mips.lds
arch/mips/cpu/mips64/config.mk
... ... @@ -3,6 +3,6 @@
3 3 # (C) Copyright 2003
4 4 # Wolfgang Denk, DENX Software Engineering, <wd@denx.de>
5 5  
6   -CONFIG_STANDALONE_LOAD_ADDR ?= 0xffffffff80200000 \
7   - -T $(srctree)/examples/standalone/mips64.lds
  6 +CONFIG_STANDALONE_LOAD_ADDR ?= 0xffffffff80200000
  7 +LDFLAGS_STANDALONE += -T $(srctree)/examples/standalone/mips64.lds
arch/nds32/config.mk
... ... @@ -12,8 +12,8 @@
12 12 CROSS_COMPILE := nds32le-linux-
13 13 endif
14 14  
15   -CONFIG_STANDALONE_LOAD_ADDR = 0x300000 \
16   - -T $(srctree)/examples/standalone/nds32.lds
  15 +CONFIG_STANDALONE_LOAD_ADDR = 0x300000
  16 +LDFLAGS_STANDALONE += -T $(srctree)/examples/standalone/nds32.lds
17 17  
18 18 PLATFORM_RELFLAGS += -fno-common -mrelax
19 19 PLATFORM_RELFLAGS += -gdwarf-2
arch/riscv/config.mk
... ... @@ -27,8 +27,8 @@
27 27 EFI_LDS := elf_riscv64_efi.lds
28 28 endif
29 29  
30   -CONFIG_STANDALONE_LOAD_ADDR = 0x00000000 \
31   - -T $(srctree)/examples/standalone/riscv.lds
  30 +CONFIG_STANDALONE_LOAD_ADDR = 0x00000000
  31 +LDFLAGS_STANDALONE += -T $(srctree)/examples/standalone/riscv.lds
32 32  
33 33 PLATFORM_CPPFLAGS += -ffixed-gp -fpic
34 34 PLATFORM_RELFLAGS += -fno-common -gdwarf-2 -ffunction-sections
... ... @@ -9,7 +9,7 @@
9 9  
10 10 CONFIG_STANDALONE_LOAD_ADDR ?= 0x8C000000
11 11 ifeq ($(CPU),sh2)
12   -CONFIG_STANDALONE_LOAD_ADDR += -EB
  12 +LDFLAGS_STANDALONE += -EB
13 13 endif
14 14  
15 15 PLATFORM_CPPFLAGS += -DCONFIG_SH -D__SH__
... ... @@ -15,6 +15,7 @@
15 15 PLATFORM_LDFLAGS :=
16 16 LDFLAGS :=
17 17 LDFLAGS_FINAL :=
  18 +LDFLAGS_STANDALONE :=
18 19 OBJCOPYFLAGS :=
19 20 # clear VENDOR for tcsh
20 21 VENDOR :=
... ... @@ -75,5 +76,6 @@
75 76 export PLATFORM_CPPFLAGS
76 77 export RELFLAGS
77 78 export LDFLAGS_FINAL
  79 +export LDFLAGS_STANDALONE
78 80 export CONFIG_STANDALONE_LOAD_ADDR
examples/standalone/Makefile
... ... @@ -45,6 +45,8 @@
45 45 # source file.
46 46 ccflags-y += $(call cc-option,-fno-toplevel-reorder)
47 47  
  48 +LDFLAGS_STANDALONE += -Ttext $(CONFIG_STANDALONE_LOAD_ADDR)
  49 +
48 50 #########################################################################
49 51  
50 52 quiet_cmd_link_lib = LD $@
... ... @@ -54,7 +56,7 @@
54 56 $(call if_changed,link_lib)
55 57  
56 58 quiet_cmd_link_elf = LD $@
57   - cmd_link_elf = $(LD) $(LDFLAGS) -g -Ttext $(CONFIG_STANDALONE_LOAD_ADDR) \
  59 + cmd_link_elf = $(LD) $(LDFLAGS) $(LDFLAGS_STANDALONE) -g \
58 60 -o $@ -e $(SYM_PREFIX)$(@F) $< $(LIB) $(PLATFORM_LIBGCC)
59 61  
60 62 $(ELF): $(obj)/%: $(obj)/%.o $(LIB) FORCE