mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-09 19:53:53 +09:00
![Thomas Petazzoni](/assets/img/avatar_default.png)
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>
86 lines
1.5 KiB
Plaintext
86 lines
1.5 KiB
Plaintext
/*
|
|
* Copyright (C) 2016 Vladimir Zapolskiy <vz@mleia.com>
|
|
* Copyright (C) 2008-2009 Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
|
|
* Copyright (C) 2008 Mark Jonas <mark.jonas@de.bosch.com>
|
|
* Copyright (C) 2007 Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0+
|
|
*/
|
|
|
|
#include "config.h"
|
|
|
|
#ifdef CONFIG_SYS_BIG_ENDIAN
|
|
OUTPUT_FORMAT("elf32-shbig-linux", "elf32-shbig-linux", "elf32-sh-linux")
|
|
#else
|
|
OUTPUT_FORMAT("elf32-sh-linux", "elf32-sh-linux", "elf32-sh-linux")
|
|
#endif
|
|
|
|
OUTPUT_ARCH(sh)
|
|
|
|
MEMORY
|
|
{
|
|
ram : ORIGIN = CONFIG_SYS_SDRAM_BASE, LENGTH = CONFIG_SYS_SDRAM_SIZE
|
|
}
|
|
|
|
ENTRY(_start)
|
|
|
|
SECTIONS
|
|
{
|
|
reloc_dst = .;
|
|
|
|
PROVIDE (_ftext = .);
|
|
PROVIDE (_fcode = .);
|
|
PROVIDE (_start = .);
|
|
|
|
.text :
|
|
{
|
|
KEEP(*/start.o (.text))
|
|
KEEP(CONFIG_BOARDDIR/lowlevel_init.o (.text .spiboot1.text))
|
|
KEEP(*(.spiboot2.text))
|
|
. = ALIGN(8192);
|
|
*(.text)
|
|
. = ALIGN(4);
|
|
} >ram =0xFF
|
|
PROVIDE (_ecode = .);
|
|
.rodata :
|
|
{
|
|
*(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
|
|
. = ALIGN(4);
|
|
} >ram
|
|
PROVIDE (_etext = .);
|
|
|
|
|
|
PROVIDE (_fdata = .);
|
|
.data :
|
|
{
|
|
*(.data)
|
|
. = ALIGN(4);
|
|
} >ram
|
|
PROVIDE (_edata = .);
|
|
|
|
PROVIDE (_fgot = .);
|
|
.got :
|
|
{
|
|
*(.got.plt) *(.got)
|
|
. = ALIGN(4);
|
|
} >ram
|
|
PROVIDE (_egot = .);
|
|
|
|
.u_boot_list : {
|
|
KEEP(*(SORT(.u_boot_list*)));
|
|
} >ram
|
|
|
|
PROVIDE (__init_end = .);
|
|
PROVIDE (reloc_dst_end = .);
|
|
|
|
PROVIDE (bss_start = .);
|
|
PROVIDE (__bss_start = .);
|
|
.bss :
|
|
{
|
|
*(.bss)
|
|
. = ALIGN(4);
|
|
} >ram
|
|
PROVIDE (bss_end = .);
|
|
PROVIDE (__bss_end = .);
|
|
}
|