mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
117 lines
2.0 KiB
117 lines
2.0 KiB
/* SPDX-License-Identifier: GPL-2.0 */ |
|
#include <asm-generic/vmlinux.lds.h> |
|
|
|
OUTPUT_FORMAT(CONFIG_OUTPUT_FORMAT) |
|
|
|
#undef i386 |
|
|
|
#include <asm/cache.h> |
|
#include <asm/page_types.h> |
|
|
|
#ifdef CONFIG_X86_64 |
|
OUTPUT_ARCH(i386:x86-64) |
|
ENTRY(startup_64) |
|
#else |
|
OUTPUT_ARCH(i386) |
|
ENTRY(startup_32) |
|
#endif |
|
|
|
SECTIONS |
|
{ |
|
/* Be careful parts of head_64.S assume startup_32 is at |
|
* address 0. |
|
*/ |
|
. = 0; |
|
.head.text : { |
|
_head = . ; |
|
HEAD_TEXT |
|
_ehead = . ; |
|
} |
|
.rodata..compressed : { |
|
*(.rodata..compressed) |
|
} |
|
.text : { |
|
_text = .; /* Text */ |
|
*(.text) |
|
*(.text.*) |
|
_etext = . ; |
|
} |
|
.rodata : { |
|
_rodata = . ; |
|
*(.rodata) /* read-only data */ |
|
*(.rodata.*) |
|
_erodata = . ; |
|
} |
|
.data : { |
|
_data = . ; |
|
*(.data) |
|
*(.data.*) |
|
*(.bss.efistub) |
|
_edata = . ; |
|
} |
|
. = ALIGN(L1_CACHE_BYTES); |
|
.bss : { |
|
_bss = . ; |
|
*(.bss) |
|
*(.bss.*) |
|
*(COMMON) |
|
. = ALIGN(8); /* For convenience during zeroing */ |
|
_ebss = .; |
|
} |
|
#ifdef CONFIG_X86_64 |
|
. = ALIGN(PAGE_SIZE); |
|
.pgtable : { |
|
_pgtable = . ; |
|
*(.pgtable) |
|
_epgtable = . ; |
|
} |
|
#endif |
|
. = ALIGN(PAGE_SIZE); /* keep ZO size page aligned */ |
|
_end = .; |
|
|
|
STABS_DEBUG |
|
DWARF_DEBUG |
|
ELF_DETAILS |
|
|
|
DISCARDS |
|
/DISCARD/ : { |
|
*(.dynamic) *(.dynsym) *(.dynstr) *(.dynbss) |
|
*(.hash) *(.gnu.hash) |
|
*(.note.*) |
|
} |
|
|
|
.got.plt (INFO) : { |
|
*(.got.plt) |
|
} |
|
ASSERT(SIZEOF(.got.plt) == 0 || |
|
#ifdef CONFIG_X86_64 |
|
SIZEOF(.got.plt) == 0x18, |
|
#else |
|
SIZEOF(.got.plt) == 0xc, |
|
#endif |
|
"Unexpected GOT/PLT entries detected!") |
|
|
|
/* |
|
* Sections that should stay zero sized, which is safer to |
|
* explicitly check instead of blindly discarding. |
|
*/ |
|
.got : { |
|
*(.got) |
|
} |
|
ASSERT(SIZEOF(.got) == 0, "Unexpected GOT entries detected!") |
|
|
|
.plt : { |
|
*(.plt) *(.plt.*) |
|
} |
|
ASSERT(SIZEOF(.plt) == 0, "Unexpected run-time procedure linkages detected!") |
|
|
|
.rel.dyn : { |
|
*(.rel.*) *(.rel_*) |
|
} |
|
ASSERT(SIZEOF(.rel.dyn) == 0, "Unexpected run-time relocations (.rel) detected!") |
|
|
|
.rela.dyn : { |
|
*(.rela.*) *(.rela_*) |
|
} |
|
ASSERT(SIZEOF(.rela.dyn) == 0, "Unexpected run-time relocations (.rela) detected!") |
|
}
|
|
|