Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 asm updates from Ingo Molnar: "The main changes in this cycle were: - Cross-arch changes to move the linker sections for NOTES and EXCEPTION_TABLE into the RO_DATA area, where they belong on most architectures. (Kees Cook) - Switch the x86 linker fill byte from x90 (NOP) to 0xcc (INT3), to trap jumps into the middle of those padding areas instead of sliding execution. (Kees Cook) - A thorough cleanup of symbol definitions within x86 assembler code. The rather randomly named macros got streamlined around a (hopefully) straightforward naming scheme: SYM_START(name, linkage, align...) SYM_END(name, sym_type) SYM_FUNC_START(name) SYM_FUNC_END(name) SYM_CODE_START(name) SYM_CODE_END(name) SYM_DATA_START(name) SYM_DATA_END(name) etc - with about three times of these basic primitives with some label, local symbol or attribute variant, expressed via postfixes. No change in functionality intended. (Jiri Slaby) - Misc other changes, cleanups and smaller fixes" * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (67 commits) x86/entry/64: Remove pointless jump in paranoid_exit x86/entry/32: Remove unused resume_userspace label x86/build/vdso: Remove meaningless CFLAGS_REMOVE_*.o m68k: Convert missed RODATA to RO_DATA x86/vmlinux: Use INT3 instead of NOP for linker fill bytes x86/mm: Report actual image regions in /proc/iomem x86/mm: Report which part of kernel image is freed x86/mm: Remove redundant address-of operators on addresses xtensa: Move EXCEPTION_TABLE to RO_DATA segment powerpc: Move EXCEPTION_TABLE to RO_DATA segment parisc: Move EXCEPTION_TABLE to RO_DATA segment microblaze: Move EXCEPTION_TABLE to RO_DATA segment ia64: Move EXCEPTION_TABLE to RO_DATA segment h8300: Move EXCEPTION_TABLE to RO_DATA segment c6x: Move EXCEPTION_TABLE to RO_DATA segment arm64: Move EXCEPTION_TABLE to RO_DATA segment alpha: Move EXCEPTION_TABLE to RO_DATA segment x86/vmlinux: Move EXCEPTION_TABLE to RO_DATA segment x86/vmlinux: Actually use _etext for the end of the text segment vmlinux.lds.h: Allow EXCEPTION_TABLE to live in RO_DATA ...
This commit is contained in:
@@ -5,6 +5,9 @@
|
||||
#include <asm/pgtable.h>
|
||||
#include <asm/thread_info.h>
|
||||
|
||||
#define EMITS_PT_NOTE
|
||||
#define RO_EXCEPTION_TABLE_ALIGN 16
|
||||
|
||||
#include <asm-generic/vmlinux.lds.h>
|
||||
|
||||
OUTPUT_FORMAT("elf64-ia64-little")
|
||||
@@ -13,7 +16,7 @@ ENTRY(phys_start)
|
||||
jiffies = jiffies_64;
|
||||
|
||||
PHDRS {
|
||||
code PT_LOAD;
|
||||
text PT_LOAD;
|
||||
percpu PT_LOAD;
|
||||
data PT_LOAD;
|
||||
note PT_NOTE;
|
||||
@@ -36,7 +39,7 @@ SECTIONS {
|
||||
phys_start = _start - LOAD_OFFSET;
|
||||
|
||||
code : {
|
||||
} :code
|
||||
} :text
|
||||
. = KERNEL_START;
|
||||
|
||||
_text = .;
|
||||
@@ -68,11 +71,6 @@ SECTIONS {
|
||||
/*
|
||||
* Read-only data
|
||||
*/
|
||||
NOTES :code :note /* put .notes in text and mark in PT_NOTE */
|
||||
code_continues : {
|
||||
} : code /* switch back to regular program... */
|
||||
|
||||
EXCEPTION_TABLE(16)
|
||||
|
||||
/* MCA table */
|
||||
. = ALIGN(16);
|
||||
@@ -102,11 +100,11 @@ SECTIONS {
|
||||
__start_unwind = .;
|
||||
*(.IA_64.unwind*)
|
||||
__end_unwind = .;
|
||||
} :code :unwind
|
||||
} :text :unwind
|
||||
code_continues2 : {
|
||||
} : code
|
||||
} :text
|
||||
|
||||
RODATA
|
||||
RO_DATA(4096)
|
||||
|
||||
.opd : AT(ADDR(.opd) - LOAD_OFFSET) {
|
||||
__start_opd = .;
|
||||
@@ -214,7 +212,7 @@ SECTIONS {
|
||||
_end = .;
|
||||
|
||||
code : {
|
||||
} :code
|
||||
} :text
|
||||
|
||||
STABS_DEBUG
|
||||
DWARF_DEBUG
|
||||
|
Reference in New Issue
Block a user