|
@@ -13,6 +13,12 @@ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64")
|
|
|
OUTPUT_ARCH(i386:x86-64)
|
|
|
ENTRY(phys_startup_64)
|
|
|
jiffies_64 = jiffies;
|
|
|
+PHDRS {
|
|
|
+ text PT_LOAD FLAGS(5); /* R_E */
|
|
|
+ data PT_LOAD FLAGS(7); /* RWE */
|
|
|
+ user PT_LOAD FLAGS(7); /* RWE */
|
|
|
+ note PT_NOTE FLAGS(4); /* R__ */
|
|
|
+}
|
|
|
SECTIONS
|
|
|
{
|
|
|
. = __START_KERNEL;
|
|
@@ -31,7 +37,7 @@ SECTIONS
|
|
|
KPROBES_TEXT
|
|
|
*(.fixup)
|
|
|
*(.gnu.warning)
|
|
|
- } = 0x9090
|
|
|
+ } :text = 0x9090
|
|
|
/* out-of-line lock text */
|
|
|
.text.lock : AT(ADDR(.text.lock) - LOAD_OFFSET) { *(.text.lock) }
|
|
|
|
|
@@ -57,7 +63,7 @@ SECTIONS
|
|
|
.data : AT(ADDR(.data) - LOAD_OFFSET) {
|
|
|
*(.data)
|
|
|
CONSTRUCTORS
|
|
|
- }
|
|
|
+ } :data
|
|
|
|
|
|
_edata = .; /* End of data section */
|
|
|
|
|
@@ -89,7 +95,7 @@ SECTIONS
|
|
|
#define VVIRT(x) (ADDR(x) - VVIRT_OFFSET)
|
|
|
|
|
|
. = VSYSCALL_ADDR;
|
|
|
- .vsyscall_0 : AT(VSYSCALL_PHYS_ADDR) { *(.vsyscall_0) }
|
|
|
+ .vsyscall_0 : AT(VSYSCALL_PHYS_ADDR) { *(.vsyscall_0) } :user
|
|
|
__vsyscall_0 = VSYSCALL_VIRT_ADDR;
|
|
|
|
|
|
. = ALIGN(CONFIG_X86_L1_CACHE_BYTES);
|
|
@@ -135,7 +141,7 @@ SECTIONS
|
|
|
. = ALIGN(8192); /* init_task */
|
|
|
.data.init_task : AT(ADDR(.data.init_task) - LOAD_OFFSET) {
|
|
|
*(.data.init_task)
|
|
|
- }
|
|
|
+ } :data
|
|
|
|
|
|
. = ALIGN(4096);
|
|
|
.data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) {
|