diff options
author | Nicolas Pitre <nicolas.pitre@linaro.org> | 2018-03-01 22:17:03 -0500 |
---|---|---|
committer | Nicolas Pitre <nicolas.pitre@linaro.org> | 2018-03-09 20:20:04 -0500 |
commit | 9147095896fb321ae10ec5a5f789079318137ac9 (patch) | |
tree | 39bbbae1b96141675ad7a687826f5624c6e54bbf /arch/arm/kernel/vmlinux.lds.h | |
parent | d9a46e6e714178f6ce7fe2c536c59542a2964f6f (diff) | |
download | linux-stable-9147095896fb321ae10ec5a5f789079318137ac9.tar.gz linux-stable-9147095896fb321ae10ec5a5f789079318137ac9.tar.bz2 linux-stable-9147095896fb321ae10ec5a5f789079318137ac9.zip |
ARM: linker script: factor out vectors and stubs
Signed-off-by: Nicolas Pitre <nico@linaro.org>
Tested-by: Chris Brandt <Chris.Brandt@renesas.com>
Diffstat (limited to 'arch/arm/kernel/vmlinux.lds.h')
-rw-r--r-- | arch/arm/kernel/vmlinux.lds.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/arch/arm/kernel/vmlinux.lds.h b/arch/arm/kernel/vmlinux.lds.h index 566a7b42a02c..0a4682ecc4ac 100644 --- a/arch/arm/kernel/vmlinux.lds.h +++ b/arch/arm/kernel/vmlinux.lds.h @@ -92,3 +92,24 @@ *(.ARM.extab*) \ __stop_unwind_tab = .; \ } + +/* + * The vectors and stubs are relocatable code, and the + * only thing that matters is their relative offsets + */ +#define ARM_VECTORS \ + __vectors_start = .; \ + .vectors 0xffff0000 : AT(__vectors_start) { \ + *(.vectors) \ + } \ + . = __vectors_start + SIZEOF(.vectors); \ + __vectors_end = .; \ + \ + __stubs_start = .; \ + .stubs ADDR(.vectors) + 0x1000 : AT(__stubs_start) { \ + *(.stubs) \ + } \ + . = __stubs_start + SIZEOF(.stubs); \ + __stubs_end = .; \ + \ + PROVIDE(vector_fiq_offset = vector_fiq - ADDR(.vectors)); |