mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-16 17:23:55 +08:00
a538d184e3
Both .dynamic and .got are RELRO sections and should be placed together, and LLD emits an error: ld.lld: error: section: .got is not contiguous with other relro sections Place them together to avoid this. Signed-off-by: Bill Wendling <morbo@google.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20201017000151.150788-1-morbo@google.com
101 lines
1.4 KiB
ArmAsm
101 lines
1.4 KiB
ArmAsm
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#include <asm-generic/vmlinux.lds.h>
|
|
|
|
#ifdef CONFIG_PPC64_BOOT_WRAPPER
|
|
OUTPUT_ARCH(powerpc:common64)
|
|
#else
|
|
OUTPUT_ARCH(powerpc:common)
|
|
#endif
|
|
ENTRY(_zimage_start)
|
|
EXTERN(_zimage_start)
|
|
SECTIONS
|
|
{
|
|
.text :
|
|
{
|
|
_start = .;
|
|
*(.text)
|
|
*(.fixup)
|
|
_etext = .;
|
|
}
|
|
. = ALIGN(4096);
|
|
.data :
|
|
{
|
|
*(.rodata*)
|
|
*(.data*)
|
|
*(.sdata*)
|
|
#ifndef CONFIG_PPC64_BOOT_WRAPPER
|
|
*(.got2)
|
|
#endif
|
|
}
|
|
.dynsym : { *(.dynsym) }
|
|
.dynstr : { *(.dynstr) }
|
|
.dynamic :
|
|
{
|
|
__dynamic_start = .;
|
|
*(.dynamic)
|
|
}
|
|
|
|
#ifdef CONFIG_PPC64_BOOT_WRAPPER
|
|
. = ALIGN(256);
|
|
.got :
|
|
{
|
|
__toc_start = .;
|
|
*(.got)
|
|
*(.toc)
|
|
}
|
|
#endif
|
|
|
|
.hash : { *(.hash) }
|
|
.interp : { *(.interp) }
|
|
.rela.dyn :
|
|
{
|
|
#ifdef CONFIG_PPC64_BOOT_WRAPPER
|
|
__rela_dyn_start = .;
|
|
#endif
|
|
*(.rela*)
|
|
}
|
|
|
|
. = ALIGN(8);
|
|
.kernel:dtb :
|
|
{
|
|
_dtb_start = .;
|
|
*(.kernel:dtb)
|
|
_dtb_end = .;
|
|
}
|
|
|
|
. = ALIGN(4096);
|
|
.kernel:vmlinux.strip :
|
|
{
|
|
_vmlinux_start = .;
|
|
*(.kernel:vmlinux.strip)
|
|
_vmlinux_end = .;
|
|
}
|
|
|
|
. = ALIGN(4096);
|
|
.kernel:initrd :
|
|
{
|
|
_initrd_start = .;
|
|
*(.kernel:initrd)
|
|
_initrd_end = .;
|
|
}
|
|
|
|
. = ALIGN(4096);
|
|
.kernel:esm_blob :
|
|
{
|
|
_esm_blob_start = .;
|
|
*(.kernel:esm_blob)
|
|
_esm_blob_end = .;
|
|
}
|
|
|
|
. = ALIGN(4096);
|
|
.bss :
|
|
{
|
|
_edata = .;
|
|
__bss_start = .;
|
|
*(.sbss)
|
|
*(.bss)
|
|
*(COMMON)
|
|
_end = . ;
|
|
}
|
|
}
|