Move definition of .text section to asm-generic.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
 
   _text = .;                                   /* Text and read-only data */
   .text : { 
-       *(.text) 
+       TEXT_TEXT
        SCHED_TEXT
        LOCK_TEXT
        *(.fixup)
 
                        __exception_text_start = .;
                        *(.exception.text)
                        __exception_text_end = .;
-                       *(.text)
+                       TEXT_TEXT
                        SCHED_TEXT
                        LOCK_TEXT
 #ifdef CONFIG_MMU
 
 
        .text : {                       /* Real text segment            */
                _text = .;              /* Text and read-only data      */
-                       *(.text)
+                       TEXT_TEXT
                        SCHED_TEXT
                        LOCK_TEXT       /* FIXME - borrowed from arm32 - check*/
                        *(.fixup)
 
 
        .text : {                       /* Real text segment            */
                _text = .;              /* Text and read-only data      */
-                       *(.text)
+                       TEXT_TEXT
                        SCHED_TEXT
                        LOCK_TEXT
                        *(.fixup)
 
                . = 0x100;
                *(.scall.text)
                *(.irq.text)
-               *(.text)
+               TEXT_TEXT
                SCHED_TEXT
                LOCK_TEXT
                KPROBES_TEXT
 
        {
                 _text = .;
                 __stext = .;
-               *(.text)
+               TEXT_TEXT
                SCHED_TEXT
                *(.text.lock)
                . = ALIGN(16);
 
   _stext = .;
   .text : {
        *(
-               .text.start .text .text.*
+               .text.start .text.*
 #ifdef CONFIG_DEBUG_INFO
        .init.text
        .exit.text
        .exitcall.exit
 #endif
        )
+       TEXT_TEXT
        SCHED_TEXT
        LOCK_TEXT
        *(.fixup)
 
        *(.int_redirect)
 #endif
        __stext = . ;
-               *(.text)
+       TEXT_TEXT
        SCHED_TEXT
        LOCK_TEXT
        __etext = . ;
 
 
   /* read-only */
   .text : AT(ADDR(.text) - LOAD_OFFSET) {
-       *(.text)
+       TEXT_TEXT
        SCHED_TEXT
        LOCK_TEXT
        KPROBES_TEXT
 
   .text : AT(ADDR(.text) - LOAD_OFFSET)
     {
        IVT_TEXT
-       *(.text)
+       TEXT_TEXT
        SCHED_TEXT
        LOCK_TEXT
        KPROBES_TEXT
 
   _text = .;                   /* Text and read-only data */
   .boot : { *(.boot) } = 0
   .text : {
-       *(.text)
+       TEXT_TEXT
        SCHED_TEXT
        LOCK_TEXT
        *(.fixup)
 
   . = 0x1000;
   _text = .;                   /* Text and read-only data */
   .text : {
-       *(.text)
+       TEXT_TEXT
        SCHED_TEXT
        LOCK_TEXT
        *(.fixup)
 
   _text = .;                   /* Text and read-only data */
   .text : {
        *(.head)
-       *(.text)
+       TEXT_TEXT
        SCHED_TEXT
        LOCK_TEXT
        *(.fixup)
 
        .text : {
                _text = .;
                _stext = . ;
-               *(.text)
+               TEXT_TEXT
                SCHED_TEXT
                *(.text.lock)
 
 
   /* read-only */
   _text = .;                   /* Text and read-only data */
   .text : {
-    *(.text)
+    TEXT_TEXT
     SCHED_TEXT
     LOCK_TEXT
     *(.fixup)
 
 
   _text = .;                   /* Text and read-only data */
   .text ALIGN(16) : {
-       *(.text)
+       TEXT_TEXT
        SCHED_TEXT
        LOCK_TEXT
        *(.text.do_softirq)
 
        /* Text and gots */
        .text : {
                _text = .;
-               *(.text .text.*)
+               *(.text.*)
+               TEXT_TEXT
                SCHED_TEXT
                LOCK_TEXT
                KPROBES_TEXT
 
   .text      :
   {
     _text = .;
-    *(.text)
+    TEXT_TEXT
     SCHED_TEXT
     LOCK_TEXT
     *(.fixup)
 
   . = 0x00000000;
   _text = .;                   /* Text and read-only data */
   .text : {
-       *(.text)
+       TEXT_TEXT
        SCHED_TEXT
        LOCK_TEXT
        KPROBES_TEXT
 
        *(.empty_zero_page)
        } = 0
   .text : {
-       *(.text)
+       TEXT_TEXT
        SCHED_TEXT
        LOCK_TEXT
        *(.fixup)
 
        } = 0
 
   .text : C_PHYS(.text) {
-       *(.text)
+       TEXT_TEXT
        *(.text64)
         *(.text..SHmedia32)
        SCHED_TEXT
 
   .text 0xf0004000 :
   {
     _text = .;
-    *(.text)
+    TEXT_TEXT
     SCHED_TEXT
     LOCK_TEXT
     *(.gnu.warning)
 
   .text 0x0000000000404000 :
   {
     _text = .;
-    *(.text)
+    TEXT_TEXT
     SCHED_TEXT
     LOCK_TEXT
     KPROBES_TEXT
 
   } =0x90909090
   .plt            : { *(.plt) }
   .text           : {
-    *(.text)
+    TEXT_TEXT
     SCHED_TEXT
     LOCK_TEXT
     *(.fixup)
 
 
   .text      :
   {
-    *(.text)
+    TEXT_TEXT
     SCHED_TEXT
     LOCK_TEXT
     *(.fixup)
 
 #define TEXT_CONTENTS                                                        \
                _text = .;                                                    \
                __stext = . ;                                                 \
-               *(.text)                                                      \
+               TEXT_TEXT                                                     \
                SCHED_TEXT                                                    \
                        *(.exit.text)   /* 2.5 convention */                  \
                        *(.text.exit)   /* 2.4 convention */                  \
 
        *(.bootstrap.text)
        _stext = .;
        /* Then the rest */
-       *(.text)
+       TEXT_TEXT
        SCHED_TEXT
        LOCK_TEXT
        KPROBES_TEXT
 
   {
     /* The .head.text section must be the first section! */
     *(.head.text)
-    *(.literal .text)
+    *(.literal)
+    TEXT_TEXT
     *(.srom.text)
     VMLINUX_SYMBOL(__sched_text_start) = .;
     *(.sched.literal .sched.text)
 
                VMLINUX_SYMBOL(__security_initcall_end) = .;            \
        }
 
+/* .text section. Map to function alignment to avoid address changes
+ * during second ld run in second ld pass when generating System.map */
+#define TEXT_TEXT                                                      \
+               ALIGN_FUNCTION();                                       \
+               *(.text)
+
 /* sched.text is aling to function alignment to secure we have same
  * address even at second ld pass when generating System.map */
 #define SCHED_TEXT                                                     \