diff options
| author | Tony Lindgren <tony@atomide.com> | 2021-05-18 09:45:08 +0300 |
|---|---|---|
| committer | Tony Lindgren <tony@atomide.com> | 2021-05-18 09:45:08 +0300 |
| commit | 85ebe5aeef9b0bf4c91ff91652b32f9c54f71d34 (patch) | |
| tree | dc6b176404218efac28a4a1a0c240cb36f1e9173 /include/asm-generic/vmlinux.lds.h | |
| parent | e9aa9c75c58e2e16be16ec2b5db5e14804d07213 (diff) | |
| parent | 040ab72ee10ea88e1883ad143b3e2b77596abc31 (diff) | |
| download | lwn-85ebe5aeef9b0bf4c91ff91652b32f9c54f71d34.tar.gz lwn-85ebe5aeef9b0bf4c91ff91652b32f9c54f71d34.zip | |
Merge branch 'fixes-rc1' into fixes
Diffstat (limited to 'include/asm-generic/vmlinux.lds.h')
| -rw-r--r-- | include/asm-generic/vmlinux.lds.h | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index 0331d5d49551..40a9c101565e 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h @@ -544,6 +544,22 @@ . = ALIGN((align)); \ __end_rodata = .; + +/* + * .text..L.cfi.jumptable.* contain Control-Flow Integrity (CFI) + * jump table entries. + */ +#ifdef CONFIG_CFI_CLANG +#define TEXT_CFI_JT \ + . = ALIGN(PMD_SIZE); \ + __cfi_jt_start = .; \ + *(.text..L.cfi.jumptable .text..L.cfi.jumptable.*) \ + . = ALIGN(PMD_SIZE); \ + __cfi_jt_end = .; +#else +#define TEXT_CFI_JT +#endif + /* * Non-instrumentable text section */ @@ -570,6 +586,7 @@ NOINSTR_TEXT \ *(.text..refcount) \ *(.ref.text) \ + TEXT_CFI_JT \ MEM_KEEP(init.text*) \ MEM_KEEP(exit.text*) \ @@ -974,7 +991,8 @@ * keep any .init_array.* sections. * https://bugs.llvm.org/show_bug.cgi?id=46478 */ -#if defined(CONFIG_GCOV_KERNEL) || defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KCSAN) +#if defined(CONFIG_GCOV_KERNEL) || defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KCSAN) || \ + defined(CONFIG_CFI_CLANG) # ifdef CONFIG_CONSTRUCTORS # define SANITIZER_DISCARDS \ *(.eh_frame) |
