x86, realmode: Add .text64 section, make barrier symbols absolute

Add a .text64 section.  The purpose of this is to keep 16-, 32- and
64-bit code segregated into separate sections, mainly to keep
disassembly sane.

Move barrier symbols out of sections to avoid the "symbol in empty
section" problem in some versions of GNU ld.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Link: http://lkml.kernel.org/r/1336501366-28617-10-git-send-email-jarkko.sakkinen@intel.com
This commit is contained in:
H. Peter Anvin 2012-05-08 21:22:32 +03:00
parent 2a6de3148c
commit 487f50ffeb
1 changed files with 8 additions and 3 deletions

View File

@ -32,8 +32,8 @@ SECTIONS
} }
. = ALIGN(PAGE_SIZE); . = ALIGN(PAGE_SIZE);
pa_text_start = .;
.text : { .text : {
pa_text_start = .;
*(.text) *(.text)
*(.text.*) *(.text.*)
} }
@ -41,9 +41,14 @@ SECTIONS
.text32 : { .text32 : {
*(.text32) *(.text32)
*(.text32.*) *(.text32.*)
pa_ro_end = .;
} }
.text64 : {
*(.text64)
*(.text64.*)
}
pa_ro_end = .;
. = ALIGN(PAGE_SIZE); . = ALIGN(PAGE_SIZE);
.data : { .data : {
*(.data) *(.data)
@ -59,8 +64,8 @@ SECTIONS
. = ALIGN(4); . = ALIGN(4);
.signature : { .signature : {
*(.signature) *(.signature)
pa_end = .;
} }
pa_end = .;
/DISCARD/ : { /DISCARD/ : {
*(.note*) *(.note*)