aos/kernel/arch/armv8/cpu.lds.in
Daniel Schwyn 6d444bf552 Main handout
Signed-off-by: Daniel Schwyn <daniel.schwyn@inf.ethz.ch>
2022-03-03 14:57:51 +01:00

65 lines
1.7 KiB
Plaintext

/*
* Copyright (c) 2007, 2008, 2016, ETH Zurich.
* All rights reserved.
*
* This file is distributed under the terms in the attached LICENSE file. If
* you do not find this file, copies can be found by writing to: ETH Zurich
* D-INFK, Universitaetstrasse 6, CH-8092 Zurich. Attn: Systems Group.
*/
#include <offsets.h>
OUTPUT_FORMAT("elf64-littleaarch64")
OUTPUT_ARCH("aarch64")
ENTRY(arch_init)
PHDRS {
load PT_LOAD ;
dynamic PT_DYNAMIC ;
note PT_NOTE ;
}
SECTIONS {
/* This is a relocatable executable, its actual link address is
* irrelevant. */
. = 0x0;
HIDDEN(kernel_first_byte = .);
.text : { *(.text); } :load
HIDDEN(kernel_text_final_byte = .);
.rodata . : { *(.rodata); }
/* Align the non-readonly data sections to a page boundary, so that text
* and readonly data can be shared. */
. = ALIGN(4k);
.data . : { *(.data); }
.bss . : { *(.bss); }
/* The linker also spits out a useless GOT and PLT, with nothing in
* them. Unfortunately, we can't discard them without the linker
* complaining about it. We just waste 32B, and forget about them. */
.got . : { *(.got); }
.got.plt . : { *(.got.plt); }
.rela.dyn . : { *(.rela.dyn); }
.dynamic . : { *(.dynamic); } :load :dynamic
HIDDEN(kernel_final_byte = .);
.note.gnu.build-id . : { *(.note.gnu.build-id) ; } :note
/* These sections get discarded */
/DISCARD/ :
{
/* The interpreter section will ask for ld.so, which is wrong. */
*(.interp);
/* The dynamic symbol table generated by the linker just has section
* addresses in it - we don't need it. */
*(.dynsym);
*(.dynstr);
*(.hash);
}
}