arch/sh: don't bring common/env_embedded.o into the link
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Fri, 28 Jul 2017 21:46:36 +0000 (23:46 +0200)
committerNobuhiro Iwamatsu <iwamatsu@nigauri.org>
Fri, 25 Aug 2017 22:40:36 +0000 (07:40 +0900)
The linker script for SuperH brings the .ppcenv and .ppcenvr section
of common/env_embedded.o into the .text section. However, the .ppcenv
section is only ever filled in by env_embedded.o when
CONFIG_SYS_USE_PPCENV is defined, but no platforms in mainline U-Boot
use this.

In addition, common/env_embedded.o is not always built (when you use
CONFIG_ENV_IS_NOWHERE for example), which causes the following build
failure:

Fixes:

  LD      u-boot
/home/thomas/sh4aeb-linux-musl/bin/sh4aeb-linux-ld.bfd: cannot find common/env_embedded.o

We fix this by no longer adding the .ppcenv and .ppcenvr sections from
common/env_embedded.o into the .text section.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
arch/sh/cpu/u-boot.lds

index bd4fde9..2f2bdb5 100644 (file)
@@ -38,10 +38,6 @@ SECTIONS
                KEEP(CONFIG_BOARDDIR/lowlevel_init.o    (.text .spiboot1.text))
                KEEP(*(.spiboot2.text))
                . = ALIGN(8192);
-               env/embedded.o  (.ppcenv)
-               . = ALIGN(8192);
-               env/embedded.o  (.ppcenvr)
-               . = ALIGN(8192);
                *(.text)
                . = ALIGN(4);
        } >ram =0xFF