all archs: consolidate init and exit sections in vmlinux.lds.h
Sam Ravnborg [Sun, 20 Jan 2008 13:15:03 +0000 (14:15 +0100)]
This patch consolidate all definitions of .init.text, .init.data
and .exit.text, .exit.data section definitions in
the generic vmlinux.lds.h.

This is a preparational patch - alone it does not buy
us much good.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>

29 files changed:
arch/alpha/kernel/vmlinux.lds.S
arch/arm/kernel/vmlinux.lds.S
arch/avr32/kernel/vmlinux.lds.S
arch/blackfin/kernel/vmlinux.lds.S
arch/cris/arch-v10/vmlinux.lds.S
arch/cris/arch-v32/vmlinux.lds.S
arch/frv/kernel/vmlinux.lds.S
arch/h8300/kernel/vmlinux.lds.S
arch/ia64/kernel/vmlinux.lds.S
arch/m32r/kernel/vmlinux.lds.S
arch/m68k/kernel/vmlinux-std.lds
arch/m68k/kernel/vmlinux-sun3.lds
arch/m68knommu/kernel/vmlinux.lds.S
arch/mips/kernel/vmlinux.lds.S
arch/parisc/kernel/vmlinux.lds.S
arch/powerpc/kernel/vmlinux.lds.S
arch/ppc/kernel/vmlinux.lds.S
arch/s390/kernel/vmlinux.lds.S
arch/sh/kernel/vmlinux_32.lds.S
arch/sh/kernel/vmlinux_64.lds.S
arch/sparc/kernel/vmlinux.lds.S
arch/sparc64/kernel/vmlinux.lds.S
arch/um/kernel/dyn.lds.S
arch/um/kernel/uml.lds.S
arch/v850/kernel/vmlinux.lds.S
arch/x86/kernel/vmlinux_32.lds.S
arch/x86/kernel/vmlinux_64.lds.S
arch/xtensa/kernel/vmlinux.lds.S
include/asm-generic/vmlinux.lds.h

index 55c05b5..f13249b 100644 (file)
@@ -46,11 +46,11 @@ SECTIONS
        __init_begin = .;
        .init.text : {
                _sinittext = .;
-               *(.init.text)
+               INIT_TEXT
                _einittext = .;
        }
        .init.data : {
-               *(.init.data)
+               INIT_DATA
        }
 
        . = ALIGN(16);
@@ -136,8 +136,8 @@ SECTIONS
 
        /* Sections to be discarded */
        /DISCARD/ : {
-               *(.exit.text)
-               *(.exit.data)
+               EXIT_TEXT
+               EXIT_DATA
                *(.exitcall.exit)
        }
 
index 30f732c..4898bdc 100644 (file)
@@ -30,7 +30,7 @@ SECTIONS
        }
 
        .init : {                       /* Init code and data           */
-                       *(.init.text)
+                       INIT_TEXT
                _einittext = .;
                __proc_info_begin = .;
                        *(.proc.info.init)
@@ -70,15 +70,15 @@ SECTIONS
                __per_cpu_end = .;
 #ifndef CONFIG_XIP_KERNEL
                __init_begin = _stext;
-               *(.init.data)
+               INIT_DATA
                . = ALIGN(4096);
                __init_end = .;
 #endif
        }
 
        /DISCARD/ : {                   /* Exit code and data           */
-               *(.exit.text)
-               *(.exit.data)
+               EXIT_TEXT
+               EXIT_DATA
                *(.exitcall.exit)
 #ifndef CONFIG_MMU
                *(.fixup)
@@ -130,7 +130,7 @@ SECTIONS
 #ifdef CONFIG_XIP_KERNEL
                . = ALIGN(4096);
                __init_begin = .;
-               *(.init.data)
+               INIT_DATA
                . = ALIGN(4096);
                __init_end = .;
 #endif
index 11f08e3..481cfd4 100644 (file)
@@ -27,19 +27,19 @@ SECTIONS
                __init_begin = .;
                        _sinittext = .;
                        *(.text.reset)
-                       *(.init.text)
+                       INIT_TEXT
                        /*
                         * .exit.text is discarded at runtime, not
                         * link time, to deal with references from
                         * __bug_table
                         */
-                       *(.exit.text)
+                       EXIT_TEXT
                        _einittext = .;
                . = ALIGN(4);
                __tagtable_begin = .;
                        *(.taglist.init)
                __tagtable_end = .;
-                       *(.init.data)
+                       INIT_DATA
                . = ALIGN(16);
                __setup_start = .;
                        *(.init.setup)
@@ -135,7 +135,7 @@ SECTIONS
         * thrown away, as cleanup code is never called unless it's a module.
         */
        /DISCARD/               : {
-               *(.exit.data)
+               EXIT_DATA
                *(.exitcall.exit)
        }
 
index 9b75bc8..8587224 100644 (file)
@@ -91,13 +91,13 @@ SECTIONS
        {
                . = ALIGN(PAGE_SIZE);
                __sinittext = .;
-               *(.init.text)
+               INIT_TEXT
                __einittext = .;
        }
        .init.data :
        {
                . = ALIGN(16);
-               *(.init.data)
+               INIT_DATA
        }
        .init.setup :
        {
@@ -198,8 +198,8 @@ SECTIONS
 
        /DISCARD/ :
        {
-               *(.exit.text)
-               *(.exit.data)
+               EXIT_TEXT
+               EXIT_DATA
                *(.exitcall.exit)
        }
 }
index 97a7876..93c9f0e 100644 (file)
@@ -57,10 +57,10 @@ SECTIONS
        __init_begin = .;
        .init.text : { 
                   _sinittext = .;
-                  *(.init.text)
+                  INIT_TEXT
                   _einittext = .;
        }
-       .init.data : { *(.init.data) }
+       .init.data : { INIT_DATA }
        . = ALIGN(16);
        __setup_start = .;
        .init.setup : { *(.init.setup) }
@@ -109,8 +109,8 @@ SECTIONS
 
        /* Sections to be discarded */
        /DISCARD/ : {
-               *(.text.exit)
-               *(.data.exit)
+               EXIT_TEXT
+               EXIT_DATA
                *(.exitcall.exit)
         }
 
index b076c13..fead8c5 100644 (file)
@@ -61,10 +61,10 @@ SECTIONS
        __init_begin = .;
        .init.text : {
                   _sinittext = .;
-                  *(.init.text)
+                  INIT_TEXT
                   _einittext = .;
        }
-       .init.data : { *(.init.data) }
+       .init.data : { INIT_DATA }
        . = ALIGN(16);
        __setup_start = .;
        .init.setup : { *(.init.setup) }
@@ -124,8 +124,8 @@ SECTIONS
 
        /* Sections to be discarded */
        /DISCARD/ : {
-               *(.text.exit)
-               *(.data.exit)
+               EXIT_TEXT
+               EXIT_DATA
                *(.exitcall.exit)
         }
 
index a17a81d..f42b328 100644 (file)
@@ -28,14 +28,14 @@ SECTIONS
   .init.text : {
        *(.text.head)
 #ifndef CONFIG_DEBUG_INFO
-       *(.init.text)
-       *(.exit.text)
-       *(.exit.data)
+       INIT_TEXT
+       EXIT_TEXT
+       EXIT_DATA
        *(.exitcall.exit)
 #endif
   }
   _einittext = .;
-  .init.data : { *(.init.data) }
+  .init.data : { INIT_DATA }
 
   . = ALIGN(8);
   __setup_start = .;
@@ -106,8 +106,8 @@ SECTIONS
        LOCK_TEXT
 #ifdef CONFIG_DEBUG_INFO
        *(
-       .init.text
-       .exit.text
+       INIT_TEXT
+       EXIT_TEXT
        .exitcall.exit
        )
 #endif
@@ -138,7 +138,7 @@ SECTIONS
   .data : {                    /* Data */
        DATA_DATA
        *(.data.*)
-       *(.exit.data)
+       EXIT_DATA
        CONSTRUCTORS
        }
 
index a2e72d4..43a87b9 100644 (file)
@@ -110,9 +110,9 @@ SECTIONS
        . = ALIGN(0x4) ;
        ___init_begin = .;
        __sinittext = .; 
-               *(.init.text)
+               INIT_TEXT
        __einittext = .; 
-               *(.init.data)
+               INIT_DATA
        . = ALIGN(0x4) ;
        ___setup_start = .;
                *(.init.setup)
@@ -124,8 +124,8 @@ SECTIONS
        ___con_initcall_start = .;
                *(.con_initcall.init)
        ___con_initcall_end = .;
-               *(.exit.text)
-               *(.exit.data)
+               EXIT_TEXT
+               EXIT_DATA
 #if defined(CONFIG_BLK_DEV_INITRD)
                . = ALIGN(4);
        ___initramfs_start = .;
index 757e419..80622ac 100644 (file)
@@ -27,8 +27,8 @@ SECTIONS
 {
   /* Sections to be discarded */
   /DISCARD/ : {
-       *(.exit.text)
-       *(.exit.data)
+       EXIT_TEXT
+       EXIT_DATA
        *(.exitcall.exit)
        *(.IA_64.unwind.exit.text)
        *(.IA_64.unwind_info.exit.text)
@@ -119,12 +119,12 @@ SECTIONS
   .init.text : AT(ADDR(.init.text) - LOAD_OFFSET)
        {
          _sinittext = .;
-         *(.init.text)
+         INIT_TEXT
          _einittext = .;
        }
 
   .init.data : AT(ADDR(.init.data) - LOAD_OFFSET)
-       { *(.init.data) }
+       { INIT_DATA }
 
 #ifdef CONFIG_BLK_DEV_INITRD
   .init.ramfs : AT(ADDR(.init.ramfs) - LOAD_OFFSET)
index 942a8c7..41b0785 100644 (file)
@@ -76,10 +76,10 @@ SECTIONS
   __init_begin = .;
   .init.text : {
        _sinittext = .;
-       *(.init.text)
+       INIT_TEXT
        _einittext = .;
   }
-  .init.data : { *(.init.data) }
+  .init.data : { INIT_DATA }
   . = ALIGN(16);
   __setup_start = .;
   .init.setup : { *(.init.setup) }
@@ -100,8 +100,8 @@ SECTIONS
   .altinstr_replacement : { *(.altinstr_replacement) }
   /* .exit.text is discard at runtime, not link time, to deal with references
      from .altinstructions and .eh_frame */
-  .exit.text : { *(.exit.text) }
-  .exit.data : { *(.exit.data) }
+  .exit.text : { EXIT_TEXT }
+  .exit.data : { EXIT_DATA }
 
 #ifdef CONFIG_BLK_DEV_INITRD
   . = ALIGN(4096);
@@ -124,8 +124,8 @@ SECTIONS
 
   /* Sections to be discarded */
   /DISCARD/ : {
-       *(.exit.text)
-       *(.exit.data)
+       EXIT_TEXT
+       EXIT_DATA
        *(.exitcall.exit)
        }
 
index 59fe285..7537cc5 100644 (file)
@@ -45,10 +45,10 @@ SECTIONS
   __init_begin = .;
   .init.text : {
        _sinittext = .;
-       *(.init.text)
+       INIT_TEXT
        _einittext = .;
   }
-  .init.data : { *(.init.data) }
+  .init.data : { INIT_DATA }
   . = ALIGN(16);
   __setup_start = .;
   .init.setup : { *(.init.setup) }
@@ -82,8 +82,8 @@ SECTIONS
 
   /* Sections to be discarded */
   /DISCARD/ : {
-       *(.exit.text)
-       *(.exit.data)
+       EXIT_TEXT
+       EXIT_DATA
        *(.exitcall.exit)
        }
 
index 4adffef..cdc313e 100644 (file)
@@ -38,10 +38,10 @@ SECTIONS
 __init_begin = .;
        .init.text : {
                _sinittext = .;
-               *(.init.text)
+               INIT_TEXT
                _einittext = .;
        }
-       .init.data : { *(.init.data) }
+       .init.data : { INIT_DATA }
        . = ALIGN(16);
        __setup_start = .;
        .init.setup : { *(.init.setup) }
@@ -77,8 +77,8 @@ __init_begin = .;
 
   /* Sections to be discarded */
   /DISCARD/ : {
-       *(.exit.text)
-       *(.exit.data)
+       EXIT_TEXT
+       EXIT_DATA
        *(.exitcall.exit)
        }
 
index 07a0055..b44edb0 100644 (file)
@@ -143,9 +143,9 @@ SECTIONS {
                . = ALIGN(4096);
                __init_begin = .;
                _sinittext = .;
-               *(.init.text)
+               INIT_TEXT
                _einittext = .;
-               *(.init.data)
+               INIT_DATA
                . = ALIGN(16);
                __setup_start = .;
                *(.init.setup)
@@ -170,8 +170,8 @@ SECTIONS {
        } > INIT
 
        /DISCARD/ : {
-               *(.exit.text)
-               *(.exit.data)
+               EXIT_TEXT
+               EXIT_DATA
                *(.exitcall.exit)
        }
 
index 5fc2398..b5470ce 100644 (file)
@@ -114,11 +114,11 @@ SECTIONS
        __init_begin = .;
        .init.text : {
                _sinittext = .;
-               *(.init.text)
+               INIT_TEXT
                _einittext = .;
        }
        .init.data : {
-               *(.init.data)
+               INIT_DATA
        }
        . = ALIGN(16);
        .init.setup : {
@@ -144,10 +144,10 @@ SECTIONS
         * references from .rodata
         */
        .exit.text : {
-               *(.exit.text)
+               EXIT_TEXT
        }
        .exit.data : {
-               *(.exit.data)
+               EXIT_DATA
        }
 #if defined(CONFIG_BLK_DEV_INITRD)
        . = ALIGN(_PAGE_SIZE);
index 40d0ff9..50b4a3a 100644 (file)
@@ -172,11 +172,11 @@ SECTIONS
        __init_begin = .;
        .init.text : { 
                _sinittext = .;
-               *(.init.text)
+               INIT_TEXT
                _einittext = .;
        }
        .init.data : {
-               *(.init.data)
+               INIT_DATA
        }
        . = ALIGN(16);
        .init.setup : {
@@ -215,10 +215,10 @@ SECTIONS
         *  from .altinstructions and .eh_frame
         */
        .exit.text : {
-               *(.exit.text)
+               EXIT_TEXT
        }
        .exit.data : {
-               *(.exit.data)
+               EXIT_DATA
        }
 #ifdef CONFIG_BLK_DEV_INITRD
        . = ALIGN(PAGE_SIZE);
index f66fa5d..0afb9e3 100644 (file)
@@ -23,7 +23,7 @@ SECTIONS
        /* Sections to be discarded. */
        /DISCARD/ : {
        *(.exitcall.exit)
-       *(.exit.data)
+       EXIT_DATA
        }
 
        . = KERNELBASE;
@@ -76,17 +76,19 @@ SECTIONS
 
        .init.text : {
                _sinittext = .;
-               *(.init.text)
+               INIT_TEXT
                _einittext = .;
        }
 
        /* .exit.text is discarded at runtime, not link time,
         * to deal with references from __bug_table
         */
-       .exit.text : { *(.exit.text) }
+       .exit.text : {
+               EXIT_TEXT
+       }
 
        .init.data : {
-               *(.init.data);
+               INIT_DATA
                __vtop_table_begin = .;
                *(.vtop_fixup);
                __vtop_table_end = .;
index 98c1212..52b64fc 100644 (file)
@@ -97,14 +97,14 @@ SECTIONS
   __init_begin = .;
   .init.text : {
        _sinittext = .;
-       *(.init.text)
+       INIT_TEXT
        _einittext = .;
   }
   /* .exit.text is discarded at runtime, not link time,
      to deal with references from __bug_table */
-  .exit.text : { *(.exit.text) }
+  .exit.text : { EXIT_TEXT }
   .init.data : {
-    *(.init.data);
+    INIT_DATA
     __vtop_table_begin = .;
     *(.vtop_fixup);
     __vtop_table_end = .;
@@ -164,6 +164,6 @@ SECTIONS
   /* Sections to be discarded. */
   /DISCARD/ : {
     *(.exitcall.exit)
-    *(.exit.data)
+    EXIT_DATA
   }
 }
index 9361591..7d43c3c 100644 (file)
@@ -97,7 +97,7 @@ SECTIONS
        __init_begin = .;
        .init.text : {
                _sinittext = .;
-               *(.init.text)
+               INIT_TEXT
                _einittext = .;
        }
        /*
@@ -105,11 +105,11 @@ SECTIONS
         * to deal with references from __bug_table
        */
        .exit.text : {
-               *(.exit.text)
+               EXIT_TEXT
        }
 
        .init.data : {
-               *(.init.data)
+               INIT_DATA
        }
        . = ALIGN(0x100);
        .init.setup : {
@@ -156,7 +156,7 @@ SECTIONS
 
        /* Sections to be discarded */
        /DISCARD/ : {
-               *(.exit.data)
+               EXIT_DATA
                *(.exitcall.exit)
        }
 
index d549fac..c711378 100644 (file)
@@ -84,9 +84,9 @@ SECTIONS
        . = ALIGN(PAGE_SIZE);           /* Init code and data */
        __init_begin = .;
        _sinittext = .;
-       .init.text : { *(.init.text) }
+       .init.text : { INIT_TEXT }
        _einittext = .;
-       .init.data : { *(.init.data) }
+       .init.data : { INIT_DATA }
 
        . = ALIGN(16);
        __setup_start = .;
@@ -122,8 +122,8 @@ SECTIONS
         * .exit.text is discarded at runtime, not link time, to deal with
         * references from __bug_table
         */
-       .exit.text : { *(.exit.text) }
-       .exit.data : { *(.exit.data) }
+       .exit.text : { EXIT_TEXT }
+       .exit.data : { EXIT_DATA }
 
        . = ALIGN(PAGE_SIZE);
        .bss : {
index 2fd0f74..3f1bd63 100644 (file)
@@ -96,9 +96,9 @@ SECTIONS
        . = ALIGN(PAGE_SIZE);           /* Init code and data */
        __init_begin = .;
        _sinittext = .;
-       .init.text : C_PHYS(.init.text) { *(.init.text) }
+       .init.text : C_PHYS(.init.text) { INIT_TEXT }
        _einittext = .;
-       .init.data : C_PHYS(.init.data) { *(.init.data) }
+       .init.data : C_PHYS(.init.data) { INIT_DATA }
        . = ALIGN(L1_CACHE_BYTES);      /* Better if Cache Line aligned */
        __setup_start = .;
        .init.setup : C_PHYS(.init.setup) { *(.init.setup) }
@@ -134,8 +134,8 @@ SECTIONS
         * .exit.text is discarded at runtime, not link time, to deal with
         * references from __bug_table
         */
-       .exit.text : C_PHYS(.exit.text) { *(.exit.text) }
-       .exit.data : C_PHYS(.exit.data) { *(.exit.data) }
+       .exit.text : C_PHYS(.exit.text) { EXIT_TEXT }
+       .exit.data : C_PHYS(.exit.data) { EXIT_DATA }
 
        . = ALIGN(PAGE_SIZE);
        .bss : C_PHYS(.bss) {
index a8b4200..216147d 100644 (file)
@@ -48,12 +48,12 @@ SECTIONS
        __init_begin = .;
        .init.text : {
                _sinittext = .;
-               *(.init.text)
+               INIT_TEXT
                _einittext = .;
        }
        __init_text_end = .;
        .init.data : {
-               *(.init.data)
+               INIT_DATA
        }
        . = ALIGN(16);
        .init.setup : {
@@ -102,8 +102,8 @@ SECTIONS
        _end = . ;
        PROVIDE (end = .);
        /DISCARD/ : {
-               *(.exit.text)
-               *(.exit.data)
+               EXIT_TEXT
+               EXIT_DATA
                *(.exitcall.exit)
        }
 
index 9fcd503..01f8096 100644 (file)
@@ -56,11 +56,11 @@ SECTIONS
        .init.text : {
                __init_begin = .;
                _sinittext = .;
-               *(.init.text)
+               INIT_TEXT
                _einittext = .;
        }
        .init.data : {
-               *(.init.data)
+               INIT_DATA
        }
        . = ALIGN(16);
        .init.setup : {
@@ -137,8 +137,8 @@ SECTIONS
        PROVIDE (end = .);
 
        /DISCARD/ : {
-               *(.exit.text)
-               *(.exit.data)
+               EXIT_TEXT
+               EXIT_DATA
                *(.exitcall.exit)
        }
 
index 3866f49..26090b7 100644 (file)
@@ -17,7 +17,7 @@ SECTIONS
   __init_begin = .;
   .init.text : {
        _sinittext = .;
-       *(.init.text)
+       INIT_TEXT
        _einittext = .;
   }
 
@@ -84,7 +84,7 @@ SECTIONS
 
   #include "asm/common.lds.S"
 
-  init.data : { *(.init.data) }
+  init.data : { INIT_DATA }
 
   /* Ensure the __preinit_array_start label is properly aligned.  We
      could instead move the label definition inside the section, but
index 13df191..5828c1d 100644 (file)
@@ -23,7 +23,7 @@ SECTIONS
   __init_begin = .;
   .init.text : {
        _sinittext = .;
-       *(.init.text)
+       INIT_TEXT
        _einittext = .;
   }
   . = ALIGN(4096);
@@ -48,7 +48,7 @@ SECTIONS
 
   #include "asm/common.lds.S"
 
-  init.data : { *(init.data) }
+  init.data : { INIT_DATA }
   .data    :
   {
     . = ALIGN(KERNEL_STACK_SIZE);              /* init_task */
index 6172599..d08cd1d 100644 (file)
 #define DATA_CONTENTS                                                        \
                __sdata = . ;                                                 \
                DATA_DATA                                                     \
-                       *(.exit.data)   /* 2.5 convention */                  \
+                       EXIT_DATA       /* 2.5 convention */                  \
                        *(.data.exit)   /* 2.4 convention */                  \
                . = ALIGN (16) ;                                              \
                *(.data.cacheline_aligned)                                    \
                . = ALIGN (4096) ;                                            \
                __init_start = . ;                                            \
                        __sinittext = .;                                      \
-                       *(.init.text)   /* 2.5 convention */                  \
+                       INIT_TEXT       /* 2.5 convention */                  \
                        __einittext = .;                                      \
-                       *(.init.data)                                         \
+                       INIT_DATA                                             \
                        *(.text.init)   /* 2.4 convention */                  \
                        *(.data.init)                                         \
                INITCALL_CONTENTS                                             \
 #define ROMK_INIT_RAM_CONTENTS                                               \
                . = ALIGN (4096) ;                                            \
                __init_start = . ;                                            \
-                       *(.init.data)   /* 2.5 convention */                  \
+                       INIT_DATA       /* 2.5 convention */                  \
                        *(.data.init)   /* 2.4 convention */                  \
                __init_end = . ;                                              \
                . = ALIGN (4096) ;
    should go into ROM.  */     
 #define ROMK_INIT_ROM_CONTENTS                                               \
                        _sinittext = .;                                       \
-                       *(.init.text)   /* 2.5 convention */                  \
+                       INIT_TEXT       /* 2.5 convention */                  \
                        _einittext = .;                                       \
                        *(.text.init)   /* 2.4 convention */                  \
                INITCALL_CONTENTS                                             \
index 7d72cce..84c913f 100644 (file)
@@ -131,10 +131,12 @@ SECTIONS
   .init.text : AT(ADDR(.init.text) - LOAD_OFFSET) {
        __init_begin = .;
        _sinittext = .;
-       *(.init.text)
+       INIT_TEXT
        _einittext = .;
   }
-  .init.data : AT(ADDR(.init.data) - LOAD_OFFSET) { *(.init.data) }
+  .init.data : AT(ADDR(.init.data) - LOAD_OFFSET) {
+       INIT_DATA
+  }
   . = ALIGN(16);
   .init.setup : AT(ADDR(.init.setup) - LOAD_OFFSET) {
        __setup_start = .;
@@ -169,8 +171,12 @@ SECTIONS
   }
   /* .exit.text is discard at runtime, not link time, to deal with references
      from .altinstructions and .eh_frame */
-  .exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET) { *(.exit.text) }
-  .exit.data : AT(ADDR(.exit.data) - LOAD_OFFSET) { *(.exit.data) }
+  .exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET) {
+       EXIT_TEXT
+  }
+  .exit.data : AT(ADDR(.exit.data) - LOAD_OFFSET) {
+       EXIT_DATA
+  }
 #if defined(CONFIG_BLK_DEV_INITRD)
   . = ALIGN(4096);
   .init.ramfs : AT(ADDR(.init.ramfs) - LOAD_OFFSET) {
index ba8ea97..ea53869 100644 (file)
@@ -155,12 +155,15 @@ SECTIONS
   __init_begin = .;
   .init.text : AT(ADDR(.init.text) - LOAD_OFFSET) {
        _sinittext = .;
-       *(.init.text)
+       INIT_TEXT
        _einittext = .;
   }
-  __initdata_begin = .;
-  .init.data : AT(ADDR(.init.data) - LOAD_OFFSET) { *(.init.data) }
-  __initdata_end = .;
+  .init.data : AT(ADDR(.init.data) - LOAD_OFFSET) {
+       __initdata_begin = .;
+       INIT_DATA
+       __initdata_end = .;
+   }
+
   . = ALIGN(16);
   __setup_start = .;
   .init.setup : AT(ADDR(.init.setup) - LOAD_OFFSET) { *(.init.setup) }
@@ -187,8 +190,12 @@ SECTIONS
   }
   /* .exit.text is discard at runtime, not link time, to deal with references
      from .altinstructions and .eh_frame */
-  .exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET) { *(.exit.text) }
-  .exit.data : AT(ADDR(.exit.data) - LOAD_OFFSET) { *(.exit.data) }
+  .exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET) {
+       EXIT_TEXT
+  }
+  .exit.data : AT(ADDR(.exit.data) - LOAD_OFFSET) {
+       EXIT_DATA
+  }
 
 /* vdso blob that is mapped into user space */
   vdso_start = . ;
index ac4ed52..7d0f55a 100644 (file)
@@ -136,13 +136,13 @@ SECTIONS
   __init_begin = .;
   .init.text : {
        _sinittext = .;
-       *(.init.literal) *(.init.text)
+       *(.init.literal) INIT_TEXT
        _einittext = .;
   }
 
   .init.data :
   {
-    *(.init.data)
+    INIT_DATA
     . = ALIGN(0x4);
     __tagtable_begin = .;
     *(.taglist)
@@ -278,8 +278,9 @@ SECTIONS
   /* Sections to be discarded */
   /DISCARD/ :
   {
-       *(.exit.literal .exit.text)
-       *(.exit.data)
+       *(.exit.literal)
+       EXIT_TEXT
+       EXIT_DATA
         *(.exitcall.exit)
   }
 
index 9f584cc..ae0166e 100644 (file)
                *(.kprobes.text)                                        \
                VMLINUX_SYMBOL(__kprobes_text_end) = .;
 
+/* init and exit section handling */
+#define INIT_TEXT *(.init.text)
+#define INIT_DATA *(.init.data)
+#define EXIT_TEXT *(.exit.text)
+#define EXIT_DATA *(.exit.data)
+
+
                /* DWARF debug sections.
                Symbols in the DWARF debugging sections are relative to
                the beginning of the section so we begin them at 0.  */