#include <asm-generic/vmlinux.lds.h>
#include <asm/thread_info.h>
+#include <linux/config.h>
+#include <asm/page.h>
+#include <asm/asm_offsets.h>
+
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
OUTPUT_ARCH(i386)
ENTRY(startup_32)
jiffies = jiffies_64;
SECTIONS
{
- . = 0xC0000000 + 0x100000;
+ . = __PAGE_OFFSET + 0x100000;
/* read-only */
_text = .; /* Text and read-only data */
.text : {
*(.gnu.warning)
} = 0x9090
+#ifdef CONFIG_X86_4G
+ . = ALIGN(PAGE_SIZE_asm);
+ __entry_tramp_start = .;
+ . = FIX_ENTRY_TRAMPOLINE_0_addr;
+ __start___entry_text = .;
+ .entry.text : AT (__entry_tramp_start) { *(.entry.text) }
+ __entry_tramp_end = __entry_tramp_start + SIZEOF(.entry.text);
+ . = __entry_tramp_end;
+ . = ALIGN(PAGE_SIZE_asm);
+#else
+ .entry.text : { *(.entry.text) }
+#endif
+
_etext = .; /* End of text section */
. = ALIGN(16); /* Exception table */
CONSTRUCTORS
}
- . = ALIGN(4096);
+ . = ALIGN(PAGE_SIZE_asm);
__nosave_begin = .;
.data_nosave : { *(.data.nosave) }
- . = ALIGN(4096);
+ . = ALIGN(PAGE_SIZE_asm);
__nosave_end = .;
- . = ALIGN(4096);
- .data.page_aligned : { *(.data.idt) }
-
. = ALIGN(32);
.data.cacheline_aligned : { *(.data.cacheline_aligned) }
.data.init_task : { *(.data.init_task) }
/* will be freed after init */
- . = ALIGN(4096); /* Init code and data */
+ . = ALIGN(PAGE_SIZE_asm); /* Init code and data */
__init_begin = .;
.init.text : {
_sinittext = .;
from .altinstructions and .eh_frame */
.exit.text : { *(.exit.text) }
.exit.data : { *(.exit.data) }
- . = ALIGN(4096);
+ . = ALIGN(PAGE_SIZE_asm);
__initramfs_start = .;
.init.ramfs : { *(.init.ramfs) }
__initramfs_end = .;
__per_cpu_start = .;
.data.percpu : { *(.data.percpu) }
__per_cpu_end = .;
- . = ALIGN(4096);
+ . = ALIGN(PAGE_SIZE_asm);
__init_end = .;
/* freed after init ends here */
-
+
+ . = ALIGN(PAGE_SIZE_asm);
+ .data.page_aligned_tss : { *(.data.tss) }
+
+ . = ALIGN(PAGE_SIZE_asm);
+ .data.page_aligned_default_ldt : { *(.data.default_ldt) }
+
+ . = ALIGN(PAGE_SIZE_asm);
+ .data.page_aligned_idt : { *(.data.idt) }
+
+ . = ALIGN(PAGE_SIZE_asm);
+ .data.page_aligned_gdt : { *(.data.gdt) }
+
__bss_start = .; /* BSS */
.bss : {
*(.bss.page_aligned)
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
+
+
}