mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-15 16:56:54 +07:00
fd593d1277
Print the addresses of non-absolute symbols relative to _text so that ld will generate relocations. Allowing a relocatable kernel to relocate them. We can't actually use the symbol names because kallsyms includes static symbols that are not exported from their object files. Add the _text symbol definitions to the architectures which don't define it otherwise linker will fail. Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com> Signed-off-by: Andi Kleen <ak@suse.de>
167 lines
2.7 KiB
ArmAsm
167 lines
2.7 KiB
ArmAsm
#define VMLINUX_SYMBOL(_sym_) _##_sym_
|
|
#include <asm-generic/vmlinux.lds.h>
|
|
|
|
/* target memory map */
|
|
#ifdef CONFIG_H8300H_GENERIC
|
|
#define ROMTOP 0x000000
|
|
#define ROMSIZE 0x400000
|
|
#define RAMTOP 0x400000
|
|
#define RAMSIZE 0x400000
|
|
#endif
|
|
|
|
#ifdef CONFIG_H8300H_AKI3068NET
|
|
#define ROMTOP 0x000000
|
|
#define ROMSIZE 0x080000
|
|
#define RAMTOP 0x400000
|
|
#define RAMSIZE 0x200000
|
|
#endif
|
|
|
|
#ifdef CONFIG_H8300H_H8MAX
|
|
#define ROMTOP 0x000000
|
|
#define ROMSIZE 0x080000
|
|
#define RAMTOP 0x400000
|
|
#define RAMSIZE 0x200000
|
|
#endif
|
|
|
|
#ifdef CONFIG_H8300H_SIM
|
|
#define ROMTOP 0x000000
|
|
#define ROMSIZE 0x400000
|
|
#define RAMTOP 0x400000
|
|
#define RAMSIZE 0x400000
|
|
#endif
|
|
|
|
#ifdef CONFIG_H8S_SIM
|
|
#define ROMTOP 0x000000
|
|
#define ROMSIZE 0x400000
|
|
#define RAMTOP 0x400000
|
|
#define RAMSIZE 0x800000
|
|
#endif
|
|
|
|
#ifdef CONFIG_H8S_EDOSK2674
|
|
#define ROMTOP 0x000000
|
|
#define ROMSIZE 0x400000
|
|
#define RAMTOP 0x400000
|
|
#define RAMSIZE 0x800000
|
|
#endif
|
|
|
|
#if defined(CONFIG_H8300H_SIM) || defined(CONFIG_H8S_SIM)
|
|
INPUT(romfs.o)
|
|
#endif
|
|
|
|
_jiffies = _jiffies_64 + 4;
|
|
|
|
ENTRY(__start)
|
|
|
|
SECTIONS
|
|
{
|
|
#if defined(CONFIG_ROMKERNEL)
|
|
. = ROMTOP;
|
|
.vectors :
|
|
{
|
|
__vector = . ;
|
|
*(.vectors*)
|
|
}
|
|
#else
|
|
. = RAMTOP;
|
|
.bootvec :
|
|
{
|
|
*(.bootvec)
|
|
}
|
|
#endif
|
|
.text :
|
|
{
|
|
_text = .;
|
|
#if defined(CONFIG_ROMKERNEL)
|
|
*(.int_redirect)
|
|
#endif
|
|
__stext = . ;
|
|
*(.text)
|
|
SCHED_TEXT
|
|
LOCK_TEXT
|
|
__etext = . ;
|
|
. = ALIGN(16); /* Exception table */
|
|
___start___ex_table = .;
|
|
*(__ex_table)
|
|
___stop___ex_table = .;
|
|
}
|
|
|
|
RODATA
|
|
#if defined(CONFIG_ROMKERNEL)
|
|
SECURITY_INIT
|
|
#endif
|
|
ROEND = .;
|
|
#if defined(CONFIG_ROMKERNEL)
|
|
. = RAMTOP;
|
|
.data : AT(ROEND)
|
|
#else
|
|
.data :
|
|
#endif
|
|
{
|
|
__sdata = . ;
|
|
___data_start = . ;
|
|
|
|
. = ALIGN(0x2000) ;
|
|
*(.data.init_task)
|
|
. = ALIGN(0x4) ;
|
|
*(.data)
|
|
. = ALIGN(0x4) ;
|
|
*(.data.*)
|
|
|
|
. = ALIGN(0x4) ;
|
|
___init_begin = .;
|
|
__sinittext = .;
|
|
*(.init.text)
|
|
__einittext = .;
|
|
*(.init.data)
|
|
. = ALIGN(0x4) ;
|
|
___setup_start = .;
|
|
*(.init.setup)
|
|
. = ALIGN(0x4) ;
|
|
___setup_end = .;
|
|
___initcall_start = .;
|
|
INITCALLS
|
|
___initcall_end = .;
|
|
___con_initcall_start = .;
|
|
*(.con_initcall.init)
|
|
___con_initcall_end = .;
|
|
*(.exit.text)
|
|
*(.exit.data)
|
|
. = ALIGN(4);
|
|
___initramfs_start = .;
|
|
*(.init.ramfs)
|
|
___initramfs_end = .;
|
|
. = ALIGN(0x4) ;
|
|
___init_end = .;
|
|
__edata = . ;
|
|
}
|
|
#if defined(CONFIG_RAMKERNEL)
|
|
SECURITY_INIT
|
|
#endif
|
|
__begin_data = LOADADDR(.data);
|
|
.bss :
|
|
{
|
|
. = ALIGN(0x4) ;
|
|
__sbss = . ;
|
|
*(.bss*)
|
|
. = ALIGN(0x4) ;
|
|
*(COMMON)
|
|
. = ALIGN(0x4) ;
|
|
__ebss = . ;
|
|
__end = . ;
|
|
__ramstart = .;
|
|
}
|
|
/DISCARD/ : {
|
|
*(.exitcall.exit)
|
|
}
|
|
.romfs :
|
|
{
|
|
*(.romfs*)
|
|
}
|
|
. = RAMTOP+RAMSIZE;
|
|
.dummy :
|
|
{
|
|
COMMAND_START = . - 0x200 ;
|
|
__ramend = . ;
|
|
}
|
|
}
|