x86, realmode: Add .text64 section, make barrier symbols absolute
authorH. Peter Anvin <hpa@linux.intel.com>
Tue, 8 May 2012 18:22:32 +0000 (21:22 +0300)
committerH. Peter Anvin <hpa@linux.intel.com>
Tue, 8 May 2012 18:47:18 +0000 (11:47 -0700)
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
arch/x86/realmode/rm/realmode.lds.S

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