[U-Boot] [PATCH] sh: unify sh2/sh3/sh4 linker scripts

Nobuhiro Iwamatsu iwamatsu at nigauri.org
Tue Jun 24 01:08:41 CEST 2014


Hi,

Thanks for your patch.
I applied to next branch of u-boot-sh.

Best regards,
  Nobuhiro

2014-06-20 16:40 GMT+09:00 Masahiro Yamada <yamada.m at jp.panasonic.com>:
> The linker scripts of sh2/sh3/sh4 are almost the same.
> The difference among them is essentially only one line.
>
> They can be consolidated into a single file, arch/sh/cpu/u-boot.lds
> by re-writing the diffrent line as follows:
>
>         KEEP(*/start.o  (.text))
>
> Signed-off-by: Masahiro Yamada <yamada.m at jp.panasonic.com>
> Cc: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj at renesas.com>
> ---
>
> I built all SuperH boards and comprared MD5SUM.
> I confirmed the same output binaries are produced with/without
> this patch.
>
>
>  arch/sh/cpu/sh2/u-boot.lds       | 76 --------------------------------------
>  arch/sh/cpu/sh4/u-boot.lds       | 80 ----------------------------------------
>  arch/sh/cpu/{sh3 => }/u-boot.lds |  8 ++--
>  3 files changed, 4 insertions(+), 160 deletions(-)
>  delete mode 100644 arch/sh/cpu/sh2/u-boot.lds
>  delete mode 100644 arch/sh/cpu/sh4/u-boot.lds
>  rename arch/sh/cpu/{sh3 => }/u-boot.lds (95%)
>
> diff --git a/arch/sh/cpu/sh2/u-boot.lds b/arch/sh/cpu/sh2/u-boot.lds
> deleted file mode 100644
> index 254d9f2..0000000
> --- a/arch/sh/cpu/sh2/u-boot.lds
> +++ /dev/null
> @@ -1,76 +0,0 @@
> -/*
> - * Copyright (C) 2008 Nobuhiro Iwamatsu
> - * Copyright (C) 2008 Renesas Solutions Corp.
> - *
> - * SPDX-License-Identifier:    GPL-2.0+
> - */
> -
> -OUTPUT_FORMAT("elf32-sh-linux", "elf32-sh-linux", "elf32-sh-linux")
> -OUTPUT_ARCH(sh)
> -ENTRY(_start)
> -
> -SECTIONS
> -{
> -       /*
> -        * entry and reloct_dst will be provided via ldflags
> -        */
> -       . = .;
> -
> -       PROVIDE (_ftext = .);
> -       PROVIDE (_fcode = .);
> -       PROVIDE (_start = .);
> -
> -       .text :
> -       {
> -               KEEP(arch/sh/cpu/sh2/start.o    (.text))
> -               . = ALIGN(8192);
> -               common/env_embedded.o   (.ppcenv)
> -               . = ALIGN(8192);
> -               common/env_embedded.o   (.ppcenvr)
> -               . = ALIGN(8192);
> -               *(.text)
> -               . = ALIGN(4);
> -       } =0xFF
> -       PROVIDE (_ecode = .);
> -       .rodata :
> -       {
> -               *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
> -               . = ALIGN(4);
> -       }
> -       PROVIDE (_etext = .);
> -
> -
> -       PROVIDE (_fdata = .);
> -       .data :
> -       {
> -               *(.data)
> -               . = ALIGN(4);
> -       }
> -       PROVIDE (_edata = .);
> -
> -       PROVIDE (_fgot = .);
> -       .got :
> -       {
> -               *(.got)
> -               . = ALIGN(4);
> -       }
> -       PROVIDE (_egot = .);
> -
> -
> -       .u_boot_list : {
> -               KEEP(*(SORT(.u_boot_list*)));
> -       }
> -
> -       PROVIDE (reloc_dst_end = .);
> -
> -       PROVIDE (bss_start = .);
> -       PROVIDE (__bss_start = .);
> -       .bss :
> -       {
> -               *(.bss)
> -               . = ALIGN(4);
> -       }
> -       PROVIDE (bss_end = .);
> -
> -       PROVIDE (__bss_end = .);
> -}
> diff --git a/arch/sh/cpu/sh4/u-boot.lds b/arch/sh/cpu/sh4/u-boot.lds
> deleted file mode 100644
> index 57544ce..0000000
> --- a/arch/sh/cpu/sh4/u-boot.lds
> +++ /dev/null
> @@ -1,80 +0,0 @@
> -/*
> - * Copyright (C) 2007
> - * Nobuhiro Iwamatsu <iwamatsu at nigauri.org>
> - *
> - * Copyright (C) 2008-2009
> - * Yoshihiro Shimoda <shimoda.yoshihiro at renesas.com>
> - *
> - * SPDX-License-Identifier:    GPL-2.0+
> - */
> -
> -OUTPUT_FORMAT("elf32-sh-linux", "elf32-sh-linux", "elf32-sh-linux")
> -OUTPUT_ARCH(sh)
> -ENTRY(_start)
> -
> -SECTIONS
> -{
> -       /*
> -        * entry and reloct_dst will be provided via ldflags
> -        */
> -       . = .;
> -
> -       PROVIDE (_ftext = .);
> -       PROVIDE (_fcode = .);
> -       PROVIDE (_start = .);
> -
> -       .text :
> -       {
> -               KEEP(arch/sh/cpu/sh4/start.o            (.text))
> -               . = ALIGN(8192);
> -               common/env_embedded.o   (.ppcenv)
> -               . = ALIGN(8192);
> -               common/env_embedded.o   (.ppcenvr)
> -               . = ALIGN(8192);
> -               *(.text)
> -               . = ALIGN(4);
> -       } =0xFF
> -       PROVIDE (_ecode = .);
> -       .rodata :
> -       {
> -               *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
> -               . = ALIGN(4);
> -       }
> -       PROVIDE (_etext = .);
> -
> -
> -       PROVIDE (_fdata = .);
> -       .data :
> -       {
> -               *(.data)
> -               . = ALIGN(4);
> -       }
> -       PROVIDE (_edata = .);
> -
> -       PROVIDE (_fgot = .);
> -       .got :
> -       {
> -               *(.got)
> -               . = ALIGN(4);
> -       }
> -       PROVIDE (_egot = .);
> -
> -
> -       .u_boot_list : {
> -               KEEP(*(SORT(.u_boot_list*)));
> -       }
> -
> -       PROVIDE (reloc_dst_end = .);
> -       /* _reloc_dst_end = .; */
> -
> -       PROVIDE (bss_start = .);
> -       PROVIDE (__bss_start = .);
> -       .bss (NOLOAD) :
> -       {
> -               *(.bss)
> -               . = ALIGN(4);
> -       }
> -       PROVIDE (bss_end = .);
> -
> -       PROVIDE (__bss_end = .);
> -}
> diff --git a/arch/sh/cpu/sh3/u-boot.lds b/arch/sh/cpu/u-boot.lds
> similarity index 95%
> rename from arch/sh/cpu/sh3/u-boot.lds
> rename to arch/sh/cpu/u-boot.lds
> index 26de086..30c7a9d 100644
> --- a/arch/sh/cpu/sh3/u-boot.lds
> +++ b/arch/sh/cpu/u-boot.lds
> @@ -1,10 +1,10 @@
>  /*
>   * Copyright (C) 2007
> - * Yoshihiro Shimoda <shimoda.yoshihiro at renesas.com>
> - *
> - * Copyright (C) 2007
>   * Nobuhiro Iwamatsu <iwamatsu at nigauri.org>
>   *
> + * Copyright (C) 2008-2009
> + * Yoshihiro Shimoda <shimoda.yoshihiro at renesas.com>
> + *
>   * Copyright (C) 2008
>   * Mark Jonas <mark.jonas at de.bosch.com>
>   *
> @@ -28,7 +28,7 @@ SECTIONS
>
>         .text :
>         {
> -               KEEP(arch/sh/cpu/sh3/start.o    (.text))
> +               KEEP(*/start.o          (.text))
>                 . = ALIGN(8192);
>                 common/env_embedded.o   (.ppcenv)
>                 . = ALIGN(8192);
> --
> 1.9.1
>



-- 
Nobuhiro Iwamatsu
   iwamatsu at {nigauri.org / debian.org}
   GPG ID: 40AD1FA6


More information about the U-Boot mailing list