[U-Boot] [PATCH 0/6] Tidy up ARM link scripts

The ARM link scripts are very similar but each CPU has its own. This series adds support for a default link script across an architecture in arch/<arch>/cpu/u-boot.lds.
It is then possible to remove most of the ARM link scripts. This will make it easier to maintain these.
Simon Glass (6): Allow arch directory to contain .lds without requiring Makefile arm: Remove jornada link script arm: Remove unneeded setting of LDCSRIPT Define CPUDIR for the .lds link script arm: add a common .lds link script arm: Use common .lds file where possible
Makefile | 13 ++++- arch/arm/config.mk | 7 --- arch/arm/cpu/arm1136/u-boot.lds | 89 ----------------------------------- arch/arm/cpu/arm1176/u-boot.lds | 78 ------------------------------ arch/arm/cpu/arm720t/u-boot.lds | 79 ------------------------------- arch/arm/cpu/arm920t/u-boot.lds | 88 ---------------------------------- arch/arm/cpu/arm925t/u-boot.lds | 83 -------------------------------- arch/arm/cpu/arm926ejs/u-boot.lds | 80 ------------------------------- arch/arm/cpu/arm946es/u-boot.lds | 80 ------------------------------- arch/arm/cpu/arm_intcm/u-boot.lds | 80 ------------------------------- arch/arm/cpu/lh7a40x/u-boot.lds | 80 ------------------------------- arch/arm/cpu/pxa/u-boot.lds | 80 ------------------------------- arch/arm/cpu/s3c44b0/u-boot.lds | 80 ------------------------------- arch/arm/cpu/sa1100/u-boot.lds | 83 -------------------------------- arch/arm/cpu/{armv7 => }/u-boot.lds | 5 +- board/jornada/u-boot.lds | 58 ----------------------- 16 files changed, 13 insertions(+), 1050 deletions(-) delete mode 100644 arch/arm/cpu/arm1136/u-boot.lds delete mode 100644 arch/arm/cpu/arm1176/u-boot.lds delete mode 100644 arch/arm/cpu/arm720t/u-boot.lds delete mode 100644 arch/arm/cpu/arm920t/u-boot.lds delete mode 100644 arch/arm/cpu/arm925t/u-boot.lds delete mode 100644 arch/arm/cpu/arm926ejs/u-boot.lds delete mode 100644 arch/arm/cpu/arm946es/u-boot.lds delete mode 100644 arch/arm/cpu/arm_intcm/u-boot.lds delete mode 100644 arch/arm/cpu/lh7a40x/u-boot.lds delete mode 100644 arch/arm/cpu/pxa/u-boot.lds delete mode 100644 arch/arm/cpu/s3c44b0/u-boot.lds delete mode 100644 arch/arm/cpu/sa1100/u-boot.lds rename arch/arm/cpu/{armv7 => }/u-boot.lds (94%) delete mode 100644 board/jornada/u-boot.lds

The Makefile for a CPU is in arch/($ARCH)/cpu/$(CPU). We want to support having an .lds file in arch/$(ARCH)/cpu without requiring an additional Makefile there. This change makes it clear that we expect a Makefile in the same directory as the link script except in this case.
Signed-off-by: Simon Glass sjg@chromium.org --- Makefile | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/Makefile b/Makefile index 294c762..e7da1c0 100644 --- a/Makefile +++ b/Makefile @@ -174,6 +174,8 @@ include $(TOPDIR)/config.mk # that (or fail if absent). Otherwise, search for a linker script in a # standard location.
+LDSCRIPT_MAKEFILE_DIR = $(dir $(LDSCRIPT)) + ifndef LDSCRIPT #LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot.lds.debug ifdef CONFIG_SYS_LDSCRIPT @@ -196,6 +198,11 @@ ifndef LDSCRIPT LDSCRIPT := $(TOPDIR)/$(CPUDIR)/u-boot.lds endif ifeq ($(wildcard $(LDSCRIPT)),) + LDSCRIPT := $(TOPDIR)/arch/$(ARCH)/cpu/u-boot.lds + # We don't expect a Makefile here + LDSCRIPT_MAKEFILE_DIR = + endif + ifeq ($(wildcard $(LDSCRIPT)),) $(error could not find linker script) endif endif @@ -498,7 +505,7 @@ depend dep: $(TIMESTAMP_FILE) $(VERSION_FILE) \ $(obj)include/autoconf.mk \ $(obj)include/generated/generic-asm-offsets.h \ $(obj)include/generated/asm-offsets.h - for dir in $(SUBDIRS) $(CPUDIR) $(dir $(LDSCRIPT)) ; do \ + for dir in $(SUBDIRS) $(CPUDIR) $(LDSCRIPT_MAKEFILE_DIR) ; do \ $(MAKE) -C $$dir _depend ; done
TAG_SUBDIRS = $(SUBDIRS)

The Makefile for a CPU is in arch/($ARCH)/cpu/$(CPU). We want to support having an .lds file in arch/$(ARCH)/cpu without requiring an additional Makefile there. This change makes it clear that we expect a Makefile in the same directory as the link script except in this case.
Signed-off-by: Simon Glass sjg@chromium.org
Makefile | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/Makefile b/Makefile index 294c762..e7da1c0 100644 --- a/Makefile +++ b/Makefile @@ -174,6 +174,8 @@ include $(TOPDIR)/config.mk # that (or fail if absent). Otherwise, search for a linker script in a # standard location.
+LDSCRIPT_MAKEFILE_DIR = $(dir $(LDSCRIPT))
ifndef LDSCRIPT #LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot.lds.debug ifdef CONFIG_SYS_LDSCRIPT @@ -196,6 +198,11 @@ ifndef LDSCRIPT LDSCRIPT := $(TOPDIR)/$(CPUDIR)/u-boot.lds endif ifeq ($(wildcard $(LDSCRIPT)),)
LDSCRIPT := $(TOPDIR)/arch/$(ARCH)/cpu/u-boot.lds
# We don't expect a Makefile here
LDSCRIPT_MAKEFILE_DIR =
- endif
- ifeq ($(wildcard $(LDSCRIPT)),)
Do I see the same ifeq... twice in here ? I understand what you do here, but it'd be good to add a comment please.
$(error could not find linker script) endif endif @@ -498,7 +505,7 @@ depend dep: $(TIMESTAMP_FILE) $(VERSION_FILE) \ $(obj)include/autoconf.mk \ $(obj)include/generated/generic-asm-offsets.h \ $(obj)include/generated/asm-offsets.h
for dir in $(SUBDIRS) $(CPUDIR) $(dir $(LDSCRIPT)) ; do \
for dir in $(SUBDIRS) $(CPUDIR) $(LDSCRIPT_MAKEFILE_DIR) ; do \ $(MAKE) -C $$dir _depend ; done
TAG_SUBDIRS = $(SUBDIRS)

Hi Marek,
On Sat, Nov 19, 2011 at 8:07 PM, Marek Vasut marek.vasut@gmail.com wrote:
The Makefile for a CPU is in arch/($ARCH)/cpu/$(CPU). We want to support having an .lds file in arch/$(ARCH)/cpu without requiring an additional Makefile there. This change makes it clear that we expect a Makefile in the same directory as the link script except in this case.
Signed-off-by: Simon Glass sjg@chromium.org
Makefile | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/Makefile b/Makefile index 294c762..e7da1c0 100644 --- a/Makefile +++ b/Makefile @@ -174,6 +174,8 @@ include $(TOPDIR)/config.mk # that (or fail if absent). Otherwise, search for a linker script in a # standard location.
+LDSCRIPT_MAKEFILE_DIR = $(dir $(LDSCRIPT))
ifndef LDSCRIPT #LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot.lds.debug ifdef CONFIG_SYS_LDSCRIPT @@ -196,6 +198,11 @@ ifndef LDSCRIPT LDSCRIPT := $(TOPDIR)/$(CPUDIR)/u-boot.lds endif ifeq ($(wildcard $(LDSCRIPT)),)
- LDSCRIPT := $(TOPDIR)/arch/$(ARCH)/cpu/u-boot.lds
- # We don't expect a Makefile here
- LDSCRIPT_MAKEFILE_DIR =
- endif
- ifeq ($(wildcard $(LDSCRIPT)),)
Do I see the same ifeq... twice in here ? I understand what you do here, but it'd be good to add a comment please.
Actually it is in there 3 times, and I added a 4th! It is just trying to find a link script. I will add a comment to the top.
Regards, Simon
$(error could not find linker script) endif endif @@ -498,7 +505,7 @@ depend dep: $(TIMESTAMP_FILE) $(VERSION_FILE) \ $(obj)include/autoconf.mk \ $(obj)include/generated/generic-asm-offsets.h \ $(obj)include/generated/asm-offsets.h
- for dir in $(SUBDIRS) $(CPUDIR) $(dir $(LDSCRIPT)) ; do \
- for dir in $(SUBDIRS) $(CPUDIR) $(LDSCRIPT_MAKEFILE_DIR) ; do \
$(MAKE) -C $$dir _depend ; done
TAG_SUBDIRS = $(SUBDIRS)

On Saturday 19 November 2011 23:07:08 Marek Vasut wrote:
LDSCRIPT := $(TOPDIR)/$(CPUDIR)/u-boot.lds
endif ifeq ($(wildcard $(LDSCRIPT)),)
LDSCRIPT := $(TOPDIR)/arch/$(ARCH)/cpu/u-boot.lds
# We don't expect a Makefile here
LDSCRIPT_MAKEFILE_DIR =
- endif
- ifeq ($(wildcard $(LDSCRIPT)),)
Do I see the same ifeq... twice in here ? I understand what you do here, but it'd be good to add a comment please.
in the larger context, it makes sense -mike

This link script seems old and incompatible with relocation and its own sa1000 start.S file. It isn't used because the CPU's link script was picked up in preference to this.
Signed-off-by: Simon Glass sjg@chromium.org --- board/jornada/u-boot.lds | 58 ---------------------------------------------- 1 files changed, 0 insertions(+), 58 deletions(-) delete mode 100644 board/jornada/u-boot.lds
diff --git a/board/jornada/u-boot.lds b/board/jornada/u-boot.lds deleted file mode 100644 index c75b21f..0000000 --- a/board/jornada/u-boot.lds +++ /dev/null @@ -1,58 +0,0 @@ -/* - * (C) Copyright 2000-2004 - * Wolfgang Denk, DENX Software Engineering, wd@denx.de. - * 2004 (c) MontaVista Software, Inc. - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") -OUTPUT_ARCH(arm) -ENTRY(_start) -SECTIONS -{ - . = 0x00000000; - - . = ALIGN(4); - .text : - { - cpu/sa1100/start.o (.text) - *(.text) - } - - . = ALIGN(4); - .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } - - . = ALIGN(4); - .data : { *(.data) } - - . = ALIGN(4); - .got : { *(.got) } - - - . = .; - __u_boot_cmd_start = .; - .u_boot_cmd : { *(.u_boot_cmd) } - __u_boot_cmd_end = .; - - . = ALIGN(4); - __bss_start = .; - .bss (NOLOAD) : { *(.bss) . = ALIGN(4); } - __bss_end__ = .; -}

This link script seems old and incompatible with relocation and its own sa1000 start.S file. It isn't used because the CPU's link script was picked up in preference to this.
Signed-off-by: Simon Glass sjg@chromium.org
board/jornada/u-boot.lds | 58 ---------------------------------------------- 1 files changed, 0 insertions(+), 58 deletions(-) delete mode 100644 board/jornada/u-boot.lds
diff --git a/board/jornada/u-boot.lds b/board/jornada/u-boot.lds deleted file mode 100644 index c75b21f..0000000 --- a/board/jornada/u-boot.lds +++ /dev/null @@ -1,58 +0,0 @@ -/*
- (C) Copyright 2000-2004
- Wolfgang Denk, DENX Software Engineering, wd@denx.de.
- 2004 (c) MontaVista Software, Inc.
- See file CREDITS for list of people who contributed to this
- project.
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of
- the License, or (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- MA 02111-1307 USA
- */
-OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") -OUTPUT_ARCH(arm) -ENTRY(_start) -SECTIONS -{
- . = 0x00000000;
- . = ALIGN(4);
- .text :
- {
cpu/sa1100/start.o (.text)
*(.text)
- }
- . = ALIGN(4);
- .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
- . = ALIGN(4);
- .data : { *(.data) }
- . = ALIGN(4);
- .got : { *(.got) }
- . = .;
- __u_boot_cmd_start = .;
- .u_boot_cmd : { *(.u_boot_cmd) }
- __u_boot_cmd_end = .;
- . = ALIGN(4);
- __bss_start = .;
- .bss (NOLOAD) : { *(.bss) . = ALIGN(4); }
- __bss_end__ = .;
-}
Please CC jornada guy next time. Anyway, it looks ok to me, but IMO needs some testing.
M

Acked
On Thu, Nov 17, 2011 at 07:10:46PM +0100, Marek Vasut wrote:
This link script seems old and incompatible with relocation and its own sa1000 start.S file. It isn't used because the CPU's link script was picked up in preference to this.
Signed-off-by: Simon Glass sjg@chromium.org
board/jornada/u-boot.lds | 58 ---------------------------------------------- 1 files changed, 0 insertions(+), 58 deletions(-) delete mode 100644 board/jornada/u-boot.lds
diff --git a/board/jornada/u-boot.lds b/board/jornada/u-boot.lds deleted file mode 100644 index c75b21f..0000000 --- a/board/jornada/u-boot.lds +++ /dev/null @@ -1,58 +0,0 @@ -/*
- (C) Copyright 2000-2004
- Wolfgang Denk, DENX Software Engineering, wd@denx.de.
- 2004 (c) MontaVista Software, Inc.
- See file CREDITS for list of people who contributed to this
- project.
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of
- the License, or (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- MA 02111-1307 USA
- */
-OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") -OUTPUT_ARCH(arm) -ENTRY(_start) -SECTIONS -{
- . = 0x00000000;
- . = ALIGN(4);
- .text :
- {
cpu/sa1100/start.o (.text)
*(.text)
- }
- . = ALIGN(4);
- .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
- . = ALIGN(4);
- .data : { *(.data) }
- . = ALIGN(4);
- .got : { *(.got) }
- . = .;
- __u_boot_cmd_start = .;
- .u_boot_cmd : { *(.u_boot_cmd) }
- __u_boot_cmd_end = .;
- . = ALIGN(4);
- __bss_start = .;
- .bss (NOLOAD) : { *(.bss) . = ALIGN(4); }
- __bss_end__ = .;
-}
Please CC jornada guy next time. Anyway, it looks ok to me, but IMO needs some testing.
M

Acked
Ok, so how shall we handle SA1110 ? I can pick it up, then send pullrq to albert ?
M
On Thu, Nov 17, 2011 at 07:10:46PM +0100, Marek Vasut wrote:
This link script seems old and incompatible with relocation and its own sa1000 start.S file. It isn't used because the CPU's link script was picked up in preference to this.
Signed-off-by: Simon Glass sjg@chromium.org
board/jornada/u-boot.lds | 58
---------------------------------------------- 1 files changed, 0 insertions(+), 58 deletions(-)
delete mode 100644 board/jornada/u-boot.lds
diff --git a/board/jornada/u-boot.lds b/board/jornada/u-boot.lds deleted file mode 100644 index c75b21f..0000000 --- a/board/jornada/u-boot.lds +++ /dev/null @@ -1,58 +0,0 @@ -/*
- (C) Copyright 2000-2004
- Wolfgang Denk, DENX Software Engineering, wd@denx.de.
- 2004 (c) MontaVista Software, Inc.
- See file CREDITS for list of people who contributed to this
- project.
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of
- the License, or (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- MA 02111-1307 USA
- */
-OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") -OUTPUT_ARCH(arm) -ENTRY(_start) -SECTIONS -{
- . = 0x00000000;
- . = ALIGN(4);
- .text :
- {
cpu/sa1100/start.o (.text)
*(.text)
- }
- . = ALIGN(4);
- .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
- . = ALIGN(4);
- .data : { *(.data) }
- . = ALIGN(4);
- .got : { *(.got) }
- . = .;
- __u_boot_cmd_start = .;
- .u_boot_cmd : { *(.u_boot_cmd) }
- __u_boot_cmd_end = .;
- . = ALIGN(4);
- __bss_start = .;
- .bss (NOLOAD) : { *(.bss) . = ALIGN(4); }
- __bss_end__ = .;
-}
Please CC jornada guy next time. Anyway, it looks ok to me, but IMO needs some testing.
M

On Sat, Nov 19, 2011 at 11:27 AM, Marek Vasut marek.vasut@gmail.com wrote:
Acked
Ok, so how shall we handle SA1110 ? I can pick it up, then send pullrq to albert ?
SGTM - Simon
M
On Thu, Nov 17, 2011 at 07:10:46PM +0100, Marek Vasut wrote:
This link script seems old and incompatible with relocation and its own sa1000 start.S file. It isn't used because the CPU's link script was picked up in preference to this.
Signed-off-by: Simon Glass sjg@chromium.org
board/jornada/u-boot.lds | 58
---------------------------------------------- 1 files changed, 0 insertions(+), 58 deletions(-)
delete mode 100644 board/jornada/u-boot.lds
diff --git a/board/jornada/u-boot.lds b/board/jornada/u-boot.lds deleted file mode 100644 index c75b21f..0000000 --- a/board/jornada/u-boot.lds +++ /dev/null @@ -1,58 +0,0 @@ -/*
- (C) Copyright 2000-2004
- Wolfgang Denk, DENX Software Engineering, wd@denx.de.
- 2004 (c) MontaVista Software, Inc.
- See file CREDITS for list of people who contributed to this
- project.
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of
- the License, or (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- MA 02111-1307 USA
- */
-OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") -OUTPUT_ARCH(arm) -ENTRY(_start) -SECTIONS -{
- . = 0x00000000;
- . = ALIGN(4);
- .text :
- {
- cpu/sa1100/start.o (.text)
- *(.text)
- }
- . = ALIGN(4);
- .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
- . = ALIGN(4);
- .data : { *(.data) }
- . = ALIGN(4);
- .got : { *(.got) }
- . = .;
- __u_boot_cmd_start = .;
- .u_boot_cmd : { *(.u_boot_cmd) }
- __u_boot_cmd_end = .;
- . = ALIGN(4);
- __bss_start = .;
- .bss (NOLOAD) : { *(.bss) . = ALIGN(4); }
- __bss_end__ = .;
-}
Please CC jornada guy next time. Anyway, it looks ok to me, but IMO needs some testing.
M

This is set by the top level Makefile anyway, so drop it. This does have the effect of changing the order - now the board link script will have preference over the CPU one. But this seems more correct anyway.
Signed-off-by: Simon Glass sjg@chromium.org --- arch/arm/config.mk | 7 ------- 1 files changed, 0 insertions(+), 7 deletions(-)
diff --git a/arch/arm/config.mk b/arch/arm/config.mk index 45f9dca..3c5f987 100644 --- a/arch/arm/config.mk +++ b/arch/arm/config.mk @@ -70,13 +70,6 @@ PLATFORM_LIBS := $(OBJTREE)/arch/arm/lib/eabi_compat.o \ endif endif
-ifdef CONFIG_SYS_LDSCRIPT -# need to strip off double quotes -LDSCRIPT := $(subst ",,$(CONFIG_SYS_LDSCRIPT)) -else -LDSCRIPT := $(SRCTREE)/$(CPUDIR)/u-boot.lds -endif - # needed for relocation ifndef CONFIG_NAND_SPL LDFLAGS_u-boot += -pie

Most link scripts differ only in directory containing the start.o file. Make this a #define to remove this last difference.
Signed-off-by: Simon Glass sjg@chromium.org --- Makefile | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/Makefile b/Makefile index e7da1c0..a207e85 100644 --- a/Makefile +++ b/Makefile @@ -474,7 +474,9 @@ $(LDSCRIPT): depend $(MAKE) -C $(dir $@) $(notdir $@)
$(obj)u-boot.lds: $(LDSCRIPT) - $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@ + $(CPP) $(CPPFLAGS) $(LDPPFLAGS) \ + -DCPUDIR=$(CPUDIR) \ + -ansi -D__ASSEMBLY__ -P - <$^ >$@
nand_spl: $(TIMESTAMP_FILE) $(VERSION_FILE) depend $(MAKE) -C nand_spl/board/$(BOARDDIR) all

Hi,
On Fri, Nov 11, 2011 at 1:47 PM, Simon Glass sjg@chromium.org wrote:
Most link scripts differ only in directory containing the start.o file. Make this a #define to remove this last difference.
Signed-off-by: Simon Glass sjg@chromium.org
Makefile | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/Makefile b/Makefile index e7da1c0..a207e85 100644 --- a/Makefile +++ b/Makefile @@ -474,7 +474,9 @@ $(LDSCRIPT): depend $(MAKE) -C $(dir $@) $(notdir $@)
$(obj)u-boot.lds: $(LDSCRIPT)
- $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
- $(CPP) $(CPPFLAGS) $(LDPPFLAGS) \
- -DCPUDIR=$(CPUDIR) \
One more thought - this maintains current behaviour, but perhaps we could require that there be no other start.o in U-Boot? If so, then we should be able to omit the directory name from start.o.
Regards, Simon
- -ansi -D__ASSEMBLY__ -P - <$^ >$@
nand_spl: $(TIMESTAMP_FILE) $(VERSION_FILE) depend $(MAKE) -C nand_spl/board/$(BOARDDIR) all -- 1.7.3.1

Most ARM CPUs use a very similar link script. This adds a basic script that can be used by most CPUs.
Signed-off-by: Simon Glass sjg@chromium.org --- arch/arm/cpu/u-boot.lds | 84 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 84 insertions(+), 0 deletions(-) create mode 100644 arch/arm/cpu/u-boot.lds
diff --git a/arch/arm/cpu/u-boot.lds b/arch/arm/cpu/u-boot.lds new file mode 100644 index 0000000..25d68f1 --- /dev/null +++ b/arch/arm/cpu/u-boot.lds @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2004-2008 Texas Instruments + * + * (C) Copyright 2002 + * Gary Jennejohn, DENX Software Engineering, garyj@denx.de + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") +OUTPUT_ARCH(arm) +ENTRY(_start) +SECTIONS +{ + . = 0x00000000; + + . = ALIGN(4); + .text : + { + CPUDIR/start.o (.text) + *(.text) + } + + . = ALIGN(4); + .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } + + . = ALIGN(4); + .data : { + *(.data) + } + + . = ALIGN(4); + + . = .; + __u_boot_cmd_start = .; + .u_boot_cmd : { *(.u_boot_cmd) } + __u_boot_cmd_end = .; + + . = ALIGN(4); + + __image_copy_end = .; + + .rel.dyn : { + __rel_dyn_start = .; + *(.rel*) + __rel_dyn_end = .; + } + + .dynsym : { + __dynsym_start = .; + *(.dynsym) + } + + _end = .; + + .bss __rel_dyn_start (OVERLAY) : { + __bss_start = .; + *(.bss) + . = ALIGN(4); + __bss_end__ = .; + } + + /DISCARD/ : { *(.dynstr*) } + /DISCARD/ : { *(.dynamic*) } + /DISCARD/ : { *(.plt*) } + /DISCARD/ : { *(.interp*) } + /DISCARD/ : { *(.gnu*) } +}

Each cpu directory currently has its own .lds file. This is only needed in most cases because the start.o file is in a different subdir.
Now that we can factor out this difference, we can move most cpus over to the common .lds file.
Series:cc: albert Signed-off-by: Simon Glass sjg@chromium.org --- arch/arm/cpu/arm1136/u-boot.lds | 89 ------------------------------------- arch/arm/cpu/arm1176/u-boot.lds | 78 -------------------------------- arch/arm/cpu/arm720t/u-boot.lds | 79 -------------------------------- arch/arm/cpu/arm920t/u-boot.lds | 88 ------------------------------------ arch/arm/cpu/arm925t/u-boot.lds | 83 ---------------------------------- arch/arm/cpu/arm926ejs/u-boot.lds | 80 --------------------------------- arch/arm/cpu/arm946es/u-boot.lds | 80 --------------------------------- arch/arm/cpu/arm_intcm/u-boot.lds | 80 --------------------------------- arch/arm/cpu/armv7/u-boot.lds | 85 ----------------------------------- arch/arm/cpu/lh7a40x/u-boot.lds | 80 --------------------------------- arch/arm/cpu/pxa/u-boot.lds | 80 --------------------------------- arch/arm/cpu/s3c44b0/u-boot.lds | 80 --------------------------------- arch/arm/cpu/sa1100/u-boot.lds | 83 ---------------------------------- 13 files changed, 0 insertions(+), 1065 deletions(-) delete mode 100644 arch/arm/cpu/arm1136/u-boot.lds delete mode 100644 arch/arm/cpu/arm1176/u-boot.lds delete mode 100644 arch/arm/cpu/arm720t/u-boot.lds delete mode 100644 arch/arm/cpu/arm920t/u-boot.lds delete mode 100644 arch/arm/cpu/arm925t/u-boot.lds delete mode 100644 arch/arm/cpu/arm926ejs/u-boot.lds delete mode 100644 arch/arm/cpu/arm946es/u-boot.lds delete mode 100644 arch/arm/cpu/arm_intcm/u-boot.lds delete mode 100644 arch/arm/cpu/armv7/u-boot.lds delete mode 100644 arch/arm/cpu/lh7a40x/u-boot.lds delete mode 100644 arch/arm/cpu/pxa/u-boot.lds delete mode 100644 arch/arm/cpu/s3c44b0/u-boot.lds delete mode 100644 arch/arm/cpu/sa1100/u-boot.lds
diff --git a/arch/arm/cpu/arm1136/u-boot.lds b/arch/arm/cpu/arm1136/u-boot.lds deleted file mode 100644 index d1e2851..0000000 --- a/arch/arm/cpu/arm1136/u-boot.lds +++ /dev/null @@ -1,89 +0,0 @@ -/* - * (C) Copyright 2009 - * Ilya Yanok, Emcraft Systems Ltd, yanok@emcraft.com - * - * Copyright (C) 2005-2007 Samsung Electronics - * Kyungin Park kyugnmin.park@samsung.com - * - * Copyright (c) 2004 Texas Instruments - * - * (C) Copyright 2002 - * Gary Jennejohn, DENX Software Engineering, garyj@denx.de - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") -OUTPUT_ARCH(arm) -ENTRY(_start) -SECTIONS -{ - . = 0x00000000; - - . = ALIGN(4); - .text : - { - arch/arm/cpu/arm1136/start.o (.text) - *(.text) - } - - . = ALIGN(4); - .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } - - . = ALIGN(4); - .data : { - *(.data) - } - - . = ALIGN(4); - - . = .; - __u_boot_cmd_start = .; - .u_boot_cmd : { *(.u_boot_cmd) } - __u_boot_cmd_end = .; - - . = ALIGN(4); - - .rel.dyn : { - __rel_dyn_start = .; - *(.rel*) - __rel_dyn_end = .; - } - - .dynsym : { - __dynsym_start = .; - *(.dynsym) - } - - _end = .; - - .bss __rel_dyn_start (OVERLAY) : { - __bss_start = .; - *(.bss) - . = ALIGN(4); - __bss_end__ = .; - } - - /DISCARD/ : { *(.dynstr*) } - /DISCARD/ : { *(.dynamic*) } - /DISCARD/ : { *(.plt*) } - /DISCARD/ : { *(.interp*) } - /DISCARD/ : { *(.gnu*) } -} diff --git a/arch/arm/cpu/arm1176/u-boot.lds b/arch/arm/cpu/arm1176/u-boot.lds deleted file mode 100644 index 27d6638..0000000 --- a/arch/arm/cpu/arm1176/u-boot.lds +++ /dev/null @@ -1,78 +0,0 @@ -/* - * (C) Copyright 2002-2004 - * Gary Jennejohn, DENX Software Engineering, garyj@denx.de - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") -OUTPUT_ARCH(arm) -ENTRY(_start) -SECTIONS -{ - . = 0x00000000; - - . = ALIGN(4); - .text : - { - arch/arm/cpu/arm1176/start.o (.text) - *(.text) - } - - . = ALIGN(4); - .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } - - . = ALIGN(4); - .data : { - *(.data) - } - - . = .; - __u_boot_cmd_start = .; - .u_boot_cmd : { *(.u_boot_cmd) } - __u_boot_cmd_end = .; - - . = ALIGN(4); - - .rel.dyn : { - __rel_dyn_start = .; - *(.rel*) - __rel_dyn_end = .; - } - - .dynsym : { - __dynsym_start = .; - *(.dynsym) - } - - _end = .; - - .bss __rel_dyn_start (OVERLAY) : { - __bss_start = .; - *(.bss) - . = ALIGN(4); - __bss_end__ = .; - } - - /DISCARD/ : { *(.dynstr*) } - /DISCARD/ : { *(.dynamic*) } - /DISCARD/ : { *(.plt*) } - /DISCARD/ : { *(.interp*) } - /DISCARD/ : { *(.gnu*) } -} diff --git a/arch/arm/cpu/arm720t/u-boot.lds b/arch/arm/cpu/arm720t/u-boot.lds deleted file mode 100644 index 9370fad..0000000 --- a/arch/arm/cpu/arm720t/u-boot.lds +++ /dev/null @@ -1,79 +0,0 @@ -/* - * (C) Copyright 2000-2004 - * Wolfgang Denk, DENX Software Engineering, wd@denx.de. - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") -OUTPUT_ARCH(arm) -ENTRY(_start) -SECTIONS -{ - . = 0x00000000; - - . = ALIGN(4); - .text : - { - arch/arm/cpu/arm720t/start.o (.text) - *(.text) - } - - . = ALIGN(4); - .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } - - . = ALIGN(4); - .data : { - } - - . = ALIGN(4); - - . = .; - __u_boot_cmd_start = .; - .u_boot_cmd : { *(.u_boot_cmd) } - __u_boot_cmd_end = .; - - . = ALIGN(4); - - .rel.dyn : { - __rel_dyn_start = .; - *(.rel*) - __rel_dyn_end = .; - } - - .dynsym : { - __dynsym_start = .; - *(.dynsym) - } - - _end = .; - - .bss __rel_dyn_start (OVERLAY) : { - __bss_start = .; - *(.bss) - . = ALIGN(4); - __bss_end__ = .; - } - - /DISCARD/ : { *(.dynstr*) } - /DISCARD/ : { *(.dynamic*) } - /DISCARD/ : { *(.plt*) } - /DISCARD/ : { *(.interp*) } - /DISCARD/ : { *(.gnu*) } -} diff --git a/arch/arm/cpu/arm920t/u-boot.lds b/arch/arm/cpu/arm920t/u-boot.lds deleted file mode 100644 index 17ba604..0000000 --- a/arch/arm/cpu/arm920t/u-boot.lds +++ /dev/null @@ -1,88 +0,0 @@ -/* - * (c) Copyright 2004 - * Techware Information Technology, Inc. - * Ming-Len Wu minglen_wu@techware.com.tw - * - * (C) Copyright 2000-2004 - * Wolfgang Denk, DENX Software Engineering, wd@denx.de. - * - * (C) Copyright 2002 - * Gary Jennejohn, DENX Software Engineering, gj@denx.de - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - * - */ - -OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") -OUTPUT_ARCH(arm) -ENTRY(_start) -SECTIONS -{ - . = 0x00000000; - - . = ALIGN(4); - .text : - { - arch/arm/cpu/arm920t/start.o (.text) - *(.text) - } - - . = ALIGN(4); - .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } - - . = ALIGN(4); - .data : { - *(.data) - } - - . = ALIGN(4); - - . = .; - __u_boot_cmd_start = .; - .u_boot_cmd : { *(.u_boot_cmd) } - __u_boot_cmd_end = .; - - . = ALIGN(4); - - .rel.dyn : { - __rel_dyn_start = .; - *(.rel*) - __rel_dyn_end = .; - } - - .dynsym : { - __dynsym_start = .; - *(.dynsym) - } - - _end = .; - - .bss __rel_dyn_start (OVERLAY) : { - __bss_start = .; - *(.bss) - . = ALIGN(4); - __bss_end__ = .; - } - - /DISCARD/ : { *(.dynstr*) } - /DISCARD/ : { *(.dynamic*) } - /DISCARD/ : { *(.plt*) } - /DISCARD/ : { *(.interp*) } - /DISCARD/ : { *(.gnu*) } -} diff --git a/arch/arm/cpu/arm925t/u-boot.lds b/arch/arm/cpu/arm925t/u-boot.lds deleted file mode 100644 index 64e76f5..0000000 --- a/arch/arm/cpu/arm925t/u-boot.lds +++ /dev/null @@ -1,83 +0,0 @@ -/* - * (C) Copyright 2004 - * Wolfgang Denk, DENX Software Engineering, wg@denx.de - * - * (C) Copyright 2002 - * Gary Jennejohn, DENX Software Engineering, garyj@denx.de - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") -OUTPUT_ARCH(arm) -ENTRY(_start) -SECTIONS -{ - . = 0x00000000; - - . = ALIGN(4); - .text : - { - arch/arm/cpu/arm925t/start.o (.text) - *(.text) - } - - . = ALIGN(4); - .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } - - . = ALIGN(4); - .data : { - *(.data) - } - - . = ALIGN(4); - - . = .; - __u_boot_cmd_start = .; - .u_boot_cmd : { *(.u_boot_cmd) } - __u_boot_cmd_end = .; - - . = ALIGN(4); - - .rel.dyn : { - __rel_dyn_start = .; - *(.rel*) - __rel_dyn_end = .; - } - - .dynsym : { - __dynsym_start = .; - *(.dynsym) - } - - _end = .; - - .bss __rel_dyn_start (OVERLAY) : { - __bss_start = .; - *(.bss) - . = ALIGN(4); - __bss_end__ = .; - } - - /DISCARD/ : { *(.dynstr*) } - /DISCARD/ : { *(.dynamic*) } - /DISCARD/ : { *(.plt*) } - /DISCARD/ : { *(.interp*) } - /DISCARD/ : { *(.gnu*) } -} diff --git a/arch/arm/cpu/arm926ejs/u-boot.lds b/arch/arm/cpu/arm926ejs/u-boot.lds deleted file mode 100644 index 1480e0c..0000000 --- a/arch/arm/cpu/arm926ejs/u-boot.lds +++ /dev/null @@ -1,80 +0,0 @@ -/* - * (C) Copyright 2002-2004 - * Gary Jennejohn, DENX Software Engineering, gj@denx.de - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") -OUTPUT_ARCH(arm) -ENTRY(_start) -SECTIONS -{ - . = 0x00000000; - - . = ALIGN(4); - .text : - { - arch/arm/cpu/arm926ejs/start.o (.text) - *(.text) - } - - . = ALIGN(4); - .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } - - . = ALIGN(4); - .data : { - *(.data) - } - - . = ALIGN(4); - - . = .; - __u_boot_cmd_start = .; - .u_boot_cmd : { *(.u_boot_cmd) } - __u_boot_cmd_end = .; - - . = ALIGN(4); - - .rel.dyn : { - __rel_dyn_start = .; - *(.rel*) - __rel_dyn_end = .; - } - - .dynsym : { - __dynsym_start = .; - *(.dynsym) - } - - _end = .; - - .bss __rel_dyn_start (OVERLAY) : { - __bss_start = .; - *(.bss) - . = ALIGN(4); - __bss_end__ = .; - } - - /DISCARD/ : { *(.dynstr*) } - /DISCARD/ : { *(.dynamic*) } - /DISCARD/ : { *(.plt*) } - /DISCARD/ : { *(.interp*) } - /DISCARD/ : { *(.gnu*) } -} diff --git a/arch/arm/cpu/arm946es/u-boot.lds b/arch/arm/cpu/arm946es/u-boot.lds deleted file mode 100644 index ff938e4..0000000 --- a/arch/arm/cpu/arm946es/u-boot.lds +++ /dev/null @@ -1,80 +0,0 @@ -/* - * (C) Copyright 2002 - * Gary Jennejohn, DENX Software Engineering, garyj@denx.de - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") -OUTPUT_ARCH(arm) -ENTRY(_start) -SECTIONS -{ - . = 0x00000000; - - . = ALIGN(4); - .text : - { - arch/arm/cpu/arm946es/start.o (.text) - *(.text) - } - - . = ALIGN(4); - .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } - - . = ALIGN(4); - .data : { - *(.data) - } - - . = ALIGN(4); - - . = .; - __u_boot_cmd_start = .; - .u_boot_cmd : { *(.u_boot_cmd) } - __u_boot_cmd_end = .; - - . = ALIGN(4); - - .rel.dyn : { - __rel_dyn_start = .; - *(.rel*) - __rel_dyn_end = .; - } - - .dynsym : { - __dynsym_start = .; - *(.dynsym) - } - - _end = .; - - .bss __rel_dyn_start (OVERLAY) : { - __bss_start = .; - *(.bss) - . = ALIGN(4); - __bss_end__ = .; - } - - /DISCARD/ : { *(.dynstr*) } - /DISCARD/ : { *(.dynamic*) } - /DISCARD/ : { *(.plt*) } - /DISCARD/ : { *(.interp*) } - /DISCARD/ : { *(.gnu*) } -} diff --git a/arch/arm/cpu/arm_intcm/u-boot.lds b/arch/arm/cpu/arm_intcm/u-boot.lds deleted file mode 100644 index f4a146c..0000000 --- a/arch/arm/cpu/arm_intcm/u-boot.lds +++ /dev/null @@ -1,80 +0,0 @@ -/* - * (C) Copyright 2002 - * Gary Jennejohn, DENX Software Engineering, garyj@denx.de - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") -OUTPUT_ARCH(arm) -ENTRY(_start) -SECTIONS -{ - . = 0x00000000; - - . = ALIGN(4); - .text : - { - arch/arm/cpu/arm_intcm/start.o (.text) - *(.text) - } - - . = ALIGN(4); - .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } - - . = ALIGN(4); - .data : { - *(.data) - } - - . = ALIGN(4); - - . = .; - __u_boot_cmd_start = .; - .u_boot_cmd : { *(.u_boot_cmd) } - __u_boot_cmd_end = .; - - . = ALIGN(4); - - .rel.dyn : { - __rel_dyn_start = .; - *(.rel*) - __rel_dyn_end = .; - } - - .dynsym : { - __dynsym_start = .; - *(.dynsym) - } - - _end = .; - - .bss __rel_dyn_start (OVERLAY) : { - __bss_start = .; - *(.bss) - . = ALIGN(4); - __bss_end__ = .; - } - - /DISCARD/ : { *(.dynstr*) } - /DISCARD/ : { *(.dynamic*) } - /DISCARD/ : { *(.plt*) } - /DISCARD/ : { *(.interp*) } - /DISCARD/ : { *(.gnu*) } -} diff --git a/arch/arm/cpu/armv7/u-boot.lds b/arch/arm/cpu/armv7/u-boot.lds deleted file mode 100644 index 40ecf78..0000000 --- a/arch/arm/cpu/armv7/u-boot.lds +++ /dev/null @@ -1,85 +0,0 @@ -/* - * January 2004 - Changed to support H4 device - * Copyright (c) 2004-2008 Texas Instruments - * - * (C) Copyright 2002 - * Gary Jennejohn, DENX Software Engineering, garyj@denx.de - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") -OUTPUT_ARCH(arm) -ENTRY(_start) -SECTIONS -{ - . = 0x00000000; - - . = ALIGN(4); - .text : - { - arch/arm/cpu/armv7/start.o (.text) - *(.text) - } - - . = ALIGN(4); - .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } - - . = ALIGN(4); - .data : { - *(.data) - } - - . = ALIGN(4); - - . = .; - __u_boot_cmd_start = .; - .u_boot_cmd : { *(.u_boot_cmd) } - __u_boot_cmd_end = .; - - . = ALIGN(4); - - __image_copy_end = .; - - .rel.dyn : { - __rel_dyn_start = .; - *(.rel*) - __rel_dyn_end = .; - } - - .dynsym : { - __dynsym_start = .; - *(.dynsym) - } - - _end = .; - - .bss __rel_dyn_start (OVERLAY) : { - __bss_start = .; - *(.bss) - . = ALIGN(4); - __bss_end__ = .; - } - - /DISCARD/ : { *(.dynstr*) } - /DISCARD/ : { *(.dynamic*) } - /DISCARD/ : { *(.plt*) } - /DISCARD/ : { *(.interp*) } - /DISCARD/ : { *(.gnu*) } -} diff --git a/arch/arm/cpu/lh7a40x/u-boot.lds b/arch/arm/cpu/lh7a40x/u-boot.lds deleted file mode 100644 index 30934ff..0000000 --- a/arch/arm/cpu/lh7a40x/u-boot.lds +++ /dev/null @@ -1,80 +0,0 @@ -/* - * (C) Copyright 2002 - * Gary Jennejohn, DENX Software Engineering, garyj@denx.de - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") -OUTPUT_ARCH(arm) -ENTRY(_start) -SECTIONS -{ - . = 0x00000000; - - . = ALIGN(4); - .text : - { - arch/arm/cpu/lh7a40x/start.o (.text) - *(.text) - } - - . = ALIGN(4); - .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } - - . = ALIGN(4); - .data : { - *(.data) - } - - . = ALIGN(4); - - . = .; - __u_boot_cmd_start = .; - .u_boot_cmd : { *(.u_boot_cmd) } - __u_boot_cmd_end = .; - - . = ALIGN(4); - - .rel.dyn : { - __rel_dyn_start = .; - *(.rel*) - __rel_dyn_end = .; - } - - .dynsym : { - __dynsym_start = .; - *(.dynsym) - } - - _end = .; - - .bss __rel_dyn_start (OVERLAY) : { - __bss_start = .; - *(.bss) - . = ALIGN(4); - __bss_end__ = .; - } - - /DISCARD/ : { *(.dynstr*) } - /DISCARD/ : { *(.dynamic*) } - /DISCARD/ : { *(.plt*) } - /DISCARD/ : { *(.interp*) } - /DISCARD/ : { *(.gnu*) } -} diff --git a/arch/arm/cpu/pxa/u-boot.lds b/arch/arm/cpu/pxa/u-boot.lds deleted file mode 100644 index e163369..0000000 --- a/arch/arm/cpu/pxa/u-boot.lds +++ /dev/null @@ -1,80 +0,0 @@ -/* - * (C) Copyright 2000-2005 - * Wolfgang Denk, DENX Software Engineering, wd@denx.de. - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") -OUTPUT_ARCH(arm) -ENTRY(_start) -SECTIONS -{ - . = 0x00000000; - - . = ALIGN(4); - .text : - { - arch/arm/cpu/pxa/start.o (.text) - *(.text) - } - - . = ALIGN(4); - .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } - - . = ALIGN(4); - .data : { - *(.data) - } - - . = ALIGN(4); - - . = .; - __u_boot_cmd_start = .; - .u_boot_cmd : { *(.u_boot_cmd) } - __u_boot_cmd_end = .; - - . = ALIGN(4); - - .rel.dyn : { - __rel_dyn_start = .; - *(.rel*) - __rel_dyn_end = .; - } - - .dynsym : { - __dynsym_start = .; - *(.dynsym) - } - - _end = .; - - .bss __rel_dyn_start (OVERLAY) : { - __bss_start = .; - *(.bss) - . = ALIGN(4); - __bss_end__ = .; - } - - /DISCARD/ : { *(.dynstr*) } - /DISCARD/ : { *(.dynamic*) } - /DISCARD/ : { *(.plt*) } - /DISCARD/ : { *(.interp*) } - /DISCARD/ : { *(.gnu*) } -} diff --git a/arch/arm/cpu/s3c44b0/u-boot.lds b/arch/arm/cpu/s3c44b0/u-boot.lds deleted file mode 100644 index 74a259c..0000000 --- a/arch/arm/cpu/s3c44b0/u-boot.lds +++ /dev/null @@ -1,80 +0,0 @@ -/* - * (C) Copyright 2000-2004 - * Wolfgang Denk, DENX Software Engineering, wd@denx.de. - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") -OUTPUT_ARCH(arm) -ENTRY(_start) -SECTIONS -{ - . = 0x00000000; - - . = ALIGN(4); - .text : - { - arch/arm/cpu/s3c44b0/start.o (.text) - *(.text) - } - - . = ALIGN(4); - .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } - - . = ALIGN(4); - .data : { - *(.data) - } - - . = ALIGN(4); - - . = .; - __u_boot_cmd_start = .; - .u_boot_cmd : { *(.u_boot_cmd) } - __u_boot_cmd_end = .; - - . = ALIGN(4); - - .rel.dyn : { - __rel_dyn_start = .; - *(.rel*) - __rel_dyn_end = .; - } - - .dynsym : { - __dynsym_start = .; - *(.dynsym) - } - - _end = .; - - .bss __rel_dyn_start (OVERLAY) : { - __bss_start = .; - *(.bss) - . = ALIGN(4); - __bss_end__ = .; - } - - /DISCARD/ : { *(.dynstr*) } - /DISCARD/ : { *(.dynamic*) } - /DISCARD/ : { *(.plt*) } - /DISCARD/ : { *(.interp*) } - /DISCARD/ : { *(.gnu*) } -} diff --git a/arch/arm/cpu/sa1100/u-boot.lds b/arch/arm/cpu/sa1100/u-boot.lds deleted file mode 100644 index e6381da..0000000 --- a/arch/arm/cpu/sa1100/u-boot.lds +++ /dev/null @@ -1,83 +0,0 @@ -/* - * (C) Copyright 2003-2004 - * MontaVista Software, Inc. - * - * (C) Copyright 2000-2004 - * Wolfgang Denk, DENX Software Engineering, wd@denx.de. - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") -OUTPUT_ARCH(arm) -ENTRY(_start) -SECTIONS -{ - . = 0x00000000; - - . = ALIGN(4); - .text : - { - arch/arm/cpu/sa1100/start.o (.text) - *(.text) - } - - . = ALIGN(4); - .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } - - . = ALIGN(4); - .data : { - *(.data) - } - - . = ALIGN(4); - - . = .; - __u_boot_cmd_start = .; - .u_boot_cmd : { *(.u_boot_cmd) } - __u_boot_cmd_end = .; - - . = ALIGN(4); - - .rel.dyn : { - __rel_dyn_start = .; - *(.rel*) - __rel_dyn_end = .; - } - - .dynsym : { - __dynsym_start = .; - *(.dynsym) - } - - _end = .; - - .bss __rel_dyn_start (OVERLAY) : { - __bss_start = .; - *(.bss) - . = ALIGN(4); - __bss_end__ = .; - } - - /DISCARD/ : { *(.dynstr*) } - /DISCARD/ : { *(.dynamic*) } - /DISCARD/ : { *(.plt*) } - /DISCARD/ : { *(.interp*) } - /DISCARD/ : { *(.gnu*) } -}

The ARM link scripts are very similar but each CPU has its own. This series adds support for a default link script across an architecture in arch/<arch>/cpu/u-boot.lds.
It is then possible to remove most of the ARM link scripts. This will make it easier to maintain these.
Please CC Albert Aribaud albert.u.boot@aribaud.net with such series.
Simon Glass (6): Allow arch directory to contain .lds without requiring Makefile arm: Remove jornada link script arm: Remove unneeded setting of LDCSRIPT Define CPUDIR for the .lds link script arm: add a common .lds link script arm: Use common .lds file where possible
Makefile | 13 ++++- arch/arm/config.mk | 7 --- arch/arm/cpu/arm1136/u-boot.lds | 89 ----------------------------------- arch/arm/cpu/arm1176/u-boot.lds | 78 ------------------------------ arch/arm/cpu/arm720t/u-boot.lds | 79 ------------------------------- arch/arm/cpu/arm920t/u-boot.lds | 88 ---------------------------------- arch/arm/cpu/arm925t/u-boot.lds | 83 -------------------------------- arch/arm/cpu/arm926ejs/u-boot.lds | 80 ------------------------------- arch/arm/cpu/arm946es/u-boot.lds | 80 ------------------------------- arch/arm/cpu/arm_intcm/u-boot.lds | 80 ------------------------------- arch/arm/cpu/lh7a40x/u-boot.lds | 80 ------------------------------- arch/arm/cpu/pxa/u-boot.lds | 80 ------------------------------- arch/arm/cpu/s3c44b0/u-boot.lds | 80 ------------------------------- arch/arm/cpu/sa1100/u-boot.lds | 83 -------------------------------- arch/arm/cpu/{armv7 => }/u-boot.lds | 5 +- board/jornada/u-boot.lds | 58 ----------------------- 16 files changed, 13 insertions(+), 1050 deletions(-) delete mode 100644 arch/arm/cpu/arm1136/u-boot.lds delete mode 100644 arch/arm/cpu/arm1176/u-boot.lds delete mode 100644 arch/arm/cpu/arm720t/u-boot.lds delete mode 100644 arch/arm/cpu/arm920t/u-boot.lds delete mode 100644 arch/arm/cpu/arm925t/u-boot.lds delete mode 100644 arch/arm/cpu/arm926ejs/u-boot.lds delete mode 100644 arch/arm/cpu/arm946es/u-boot.lds delete mode 100644 arch/arm/cpu/arm_intcm/u-boot.lds delete mode 100644 arch/arm/cpu/lh7a40x/u-boot.lds delete mode 100644 arch/arm/cpu/pxa/u-boot.lds delete mode 100644 arch/arm/cpu/s3c44b0/u-boot.lds delete mode 100644 arch/arm/cpu/sa1100/u-boot.lds rename arch/arm/cpu/{armv7 => }/u-boot.lds (94%) delete mode 100644 board/jornada/u-boot.lds

Hi Marek,
On Sat, Nov 19, 2011 at 8:04 PM, Marek Vasut marek.vasut@gmail.com wrote:
The ARM link scripts are very similar but each CPU has its own. This series adds support for a default link script across an architecture in arch/<arch>/cpu/u-boot.lds.
It is then possible to remove most of the ARM link scripts. This will make it easier to maintain these.
Please CC Albert Aribaud albert.u.boot@aribaud.net with such series.
Yes, I did intend to, but a typo got me. I have a new version with a few tidy-ups so will cc Albert with that one.
Regards Simon
Simon Glass (6): Allow arch directory to contain .lds without requiring Makefile arm: Remove jornada link script arm: Remove unneeded setting of LDCSRIPT Define CPUDIR for the .lds link script arm: add a common .lds link script arm: Use common .lds file where possible
Makefile | 13 ++++- arch/arm/config.mk | 7 --- arch/arm/cpu/arm1136/u-boot.lds | 89 ----------------------------------- arch/arm/cpu/arm1176/u-boot.lds | 78 ------------------------------ arch/arm/cpu/arm720t/u-boot.lds | 79 ------------------------------- arch/arm/cpu/arm920t/u-boot.lds | 88 ---------------------------------- arch/arm/cpu/arm925t/u-boot.lds | 83 -------------------------------- arch/arm/cpu/arm926ejs/u-boot.lds | 80 ------------------------------- arch/arm/cpu/arm946es/u-boot.lds | 80 ------------------------------- arch/arm/cpu/arm_intcm/u-boot.lds | 80 ------------------------------- arch/arm/cpu/lh7a40x/u-boot.lds | 80 ------------------------------- arch/arm/cpu/pxa/u-boot.lds | 80 ------------------------------- arch/arm/cpu/s3c44b0/u-boot.lds | 80 ------------------------------- arch/arm/cpu/sa1100/u-boot.lds | 83 -------------------------------- arch/arm/cpu/{armv7 => }/u-boot.lds | 5 +- board/jornada/u-boot.lds | 58 ----------------------- 16 files changed, 13 insertions(+), 1050 deletions(-) delete mode 100644 arch/arm/cpu/arm1136/u-boot.lds delete mode 100644 arch/arm/cpu/arm1176/u-boot.lds delete mode 100644 arch/arm/cpu/arm720t/u-boot.lds delete mode 100644 arch/arm/cpu/arm920t/u-boot.lds delete mode 100644 arch/arm/cpu/arm925t/u-boot.lds delete mode 100644 arch/arm/cpu/arm926ejs/u-boot.lds delete mode 100644 arch/arm/cpu/arm946es/u-boot.lds delete mode 100644 arch/arm/cpu/arm_intcm/u-boot.lds delete mode 100644 arch/arm/cpu/lh7a40x/u-boot.lds delete mode 100644 arch/arm/cpu/pxa/u-boot.lds delete mode 100644 arch/arm/cpu/s3c44b0/u-boot.lds delete mode 100644 arch/arm/cpu/sa1100/u-boot.lds rename arch/arm/cpu/{armv7 => }/u-boot.lds (94%) delete mode 100644 board/jornada/u-boot.lds

Hi Marek,
On Sat, Nov 19, 2011 at 8:04 PM, Marek Vasut marek.vasut@gmail.com wrote:
The ARM link scripts are very similar but each CPU has its own. This series adds support for a default link script across an architecture in arch/<arch>/cpu/u-boot.lds.
It is then possible to remove most of the ARM link scripts. This will make it easier to maintain these.
Please CC Albert Aribaud albert.u.boot@aribaud.net with such series.
Yes, I did intend to, but a typo got me. I have a new version with a few tidy-ups so will cc Albert with that one.
Regards Simon
Thanks!!
M
Simon Glass (6): Allow arch directory to contain .lds without requiring Makefile arm: Remove jornada link script arm: Remove unneeded setting of LDCSRIPT Define CPUDIR for the .lds link script arm: add a common .lds link script arm: Use common .lds file where possible
Makefile | 13 ++++- arch/arm/config.mk | 7 --- arch/arm/cpu/arm1136/u-boot.lds | 89 ----------------------------------- arch/arm/cpu/arm1176/u-boot.lds | 78 ------------------------------ arch/arm/cpu/arm720t/u-boot.lds | 79 ------------------------------- arch/arm/cpu/arm920t/u-boot.lds | 88 ---------------------------------- arch/arm/cpu/arm925t/u-boot.lds
| 83 -------------------------------- | arch/arm/cpu/arm926ejs/u-boot.lds
| 80 ------------------------------- arch/arm/cpu/arm946es/u-boot.lds | 80 ------------------------------- arch/arm/cpu/arm_intcm/u-boot.lds | 80 ------------------------------- arch/arm/cpu/lh7a40x/u-boot.lds | 80 ------------------------------- arch/arm/cpu/pxa/u-boot.lds | 80 ------------------------------- arch/arm/cpu/s3c44b0/u-boot.lds | 80 ------------------------------- arch/arm/cpu/sa1100/u-boot.lds | 83 -------------------------------- arch/arm/cpu/{armv7 => }/u-boot.lds | 5 +- board/jornada/u-boot.lds | 58 ----------------------- 16 files changed, 13 insertions(+), 1050 deletions(-) delete mode 100644 arch/arm/cpu/arm1136/u-boot.lds delete mode 100644 arch/arm/cpu/arm1176/u-boot.lds delete mode 100644 arch/arm/cpu/arm720t/u-boot.lds delete mode 100644 arch/arm/cpu/arm920t/u-boot.lds delete mode 100644 arch/arm/cpu/arm925t/u-boot.lds delete mode 100644 arch/arm/cpu/arm926ejs/u-boot.lds delete mode 100644 arch/arm/cpu/arm946es/u-boot.lds delete mode 100644 arch/arm/cpu/arm_intcm/u-boot.lds delete mode 100644 arch/arm/cpu/lh7a40x/u-boot.lds delete mode 100644 arch/arm/cpu/pxa/u-boot.lds delete mode 100644 arch/arm/cpu/s3c44b0/u-boot.lds delete mode 100644 arch/arm/cpu/sa1100/u-boot.lds rename arch/arm/cpu/{armv7 => }/u-boot.lds (94%) delete mode 100644 board/jornada/u-boot.lds
participants (4)
-
Kristoffer Ericson
-
Marek Vasut
-
Mike Frysinger
-
Simon Glass