summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Schwierzeck <daniel.schwierzeck@gmail.com>2018-09-23 19:15:17 +0200
committerDaniel Schwierzeck <daniel.schwierzeck@gmail.com>2018-11-18 16:02:23 +0100
commit1bef0c530beaaba08b8ca7a9ec6ce6dc25f62dfb (patch)
tree01a796e2be480b2590af9357f2926968b0050db6
parentd3a9ba7f959fac65815e3308510afd4b79f47dc0 (diff)
downloadu-boot-1bef0c530beaaba08b8ca7a9ec6ce6dc25f62dfb.tar.gz
u-boot-1bef0c530beaaba08b8ca7a9ec6ce6dc25f62dfb.tar.bz2
u-boot-1bef0c530beaaba08b8ca7a9ec6ce6dc25f62dfb.zip
MIPS: fix linking of standalone programs
Use the global MIPS specific u-boot.lds for linking standalone programs instead of the outdated ones in examples/standalone/. Also pass --gc-sections in LDFLAGS_STANDALONE to optimize the size of standalone programs. Finally remove the deprecated config.mk files in arch/mips/cpu/mips[32,64]/. Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
-rw-r--r--arch/mips/config.mk4
-rw-r--r--arch/mips/cpu/mips32/config.mk7
-rw-r--r--arch/mips/cpu/mips64/config.mk7
-rw-r--r--examples/standalone/mips.lds42
-rw-r--r--examples/standalone/mips64.lds42
5 files changed, 4 insertions, 98 deletions
diff --git a/arch/mips/config.mk b/arch/mips/config.mk
index 22223a0f3e..9d3a84539a 100644
--- a/arch/mips/config.mk
+++ b/arch/mips/config.mk
@@ -25,12 +25,14 @@ ifdef CONFIG_32BIT
PLATFORM_CPPFLAGS += -mabi=32
PLATFORM_LDFLAGS += -m $(32bit-emul)
OBJCOPYFLAGS += -O $(32bit-bfd)
+CONFIG_STANDALONE_LOAD_ADDR ?= 0x80200000
endif
ifdef CONFIG_64BIT
PLATFORM_CPPFLAGS += -mabi=64
PLATFORM_LDFLAGS += -m$(64bit-emul)
OBJCOPYFLAGS += -O $(64bit-bfd)
+CONFIG_STANDALONE_LOAD_ADDR ?= 0xffffffff80200000
endif
PLATFORM_CPPFLAGS += -D__MIPS__
@@ -65,3 +67,5 @@ PLATFORM_LDFLAGS += -G 0 -static -n -nostdlib
PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections
LDFLAGS_FINAL += --gc-sections
OBJCOPYFLAGS += -j .text -j .rodata -j .data -j .u_boot_list
+
+LDFLAGS_STANDALONE += --gc-sections
diff --git a/arch/mips/cpu/mips32/config.mk b/arch/mips/cpu/mips32/config.mk
deleted file mode 100644
index 662e4f8fc8..0000000000
--- a/arch/mips/cpu/mips32/config.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0+
-#
-# (C) Copyright 2003
-# Wolfgang Denk, DENX Software Engineering, <wd@denx.de>
-
-CONFIG_STANDALONE_LOAD_ADDR ?= 0x80200000
-LDFLAGS_STANDALONE += -T $(srctree)/examples/standalone/mips.lds
diff --git a/arch/mips/cpu/mips64/config.mk b/arch/mips/cpu/mips64/config.mk
deleted file mode 100644
index 6a53976b5c..0000000000
--- a/arch/mips/cpu/mips64/config.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0+
-#
-# (C) Copyright 2003
-# Wolfgang Denk, DENX Software Engineering, <wd@denx.de>
-
-CONFIG_STANDALONE_LOAD_ADDR ?= 0xffffffff80200000
-LDFLAGS_STANDALONE += -T $(srctree)/examples/standalone/mips64.lds
diff --git a/examples/standalone/mips.lds b/examples/standalone/mips.lds
deleted file mode 100644
index 163d6efefd..0000000000
--- a/examples/standalone/mips.lds
+++ /dev/null
@@ -1,42 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
-/*
- * (C) Copyright 2003
- * Wolfgang Denk Engineering, <wd@denx.de>
- */
-
-/*
-OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips", "elf32-bigmips")
-*/
-OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips", "elf32-tradlittlemips")
-OUTPUT_ARCH(mips)
-SECTIONS
-{
- .text :
- {
- *(.text*)
- }
-
- . = ALIGN(4);
- .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
-
- . = ALIGN(4);
- .data : { *(.data*) }
-
- . = .;
- _gp = ALIGN(16) + 0x7ff0;
-
- .got : {
- __got_start = .;
- *(.got)
- __got_end = .;
- }
-
- .sdata : { *(.sdata*) }
-
- . = ALIGN(4);
- __bss_start = .;
- .sbss (NOLOAD) : { *(.sbss*) }
- .bss (NOLOAD) : { *(.bss*) . = ALIGN(4); }
-
- _end = .;
-}
diff --git a/examples/standalone/mips64.lds b/examples/standalone/mips64.lds
deleted file mode 100644
index d67396ab71..0000000000
--- a/examples/standalone/mips64.lds
+++ /dev/null
@@ -1,42 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
-/*
- * (C) Copyright 2003
- * Wolfgang Denk Engineering, <wd@denx.de>
- */
-
-/*
-OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips", "elf32-bigmips")
-*/
-OUTPUT_FORMAT("elf64-tradbigmips", "elf64-tradbigmips", "elf64-tradlittlemips")
-OUTPUT_ARCH(mips)
-SECTIONS
-{
- .text :
- {
- *(.text*)
- }
-
- . = ALIGN(4);
- .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
-
- . = ALIGN(4);
- .data : { *(.data*) }
-
- . = .;
- _gp = ALIGN(16) + 0x7ff0;
-
- .got : {
- __got_start = .;
- *(.got)
- __got_end = .;
- }
-
- .sdata : { *(.sdata*) }
-
- . = ALIGN(4);
- __bss_start = .;
- .sbss (NOLOAD) : { *(.sbss*) }
- .bss (NOLOAD) : { *(.bss*) . = ALIGN(4); }
-
- _end = .;
-}