vmlinux.lds.h update
Sam Ravnborg [Sun, 14 Jun 2009 20:10:41 +0000 (22:10 +0200)]
Updated after review by Tim Abbott.
- Use HEAD_TEXT_SECTION
- Drop use of section-names.h and delete file
- Introduce EXIT_CALL

Deleting section-names.h required a few simple
updates of init.h

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Tim Abbott <tabbott@ksplice.com>

include/asm-generic/vmlinux.lds.h
include/linux/init.h
include/linux/section-names.h [deleted file]

index fba4223..7381f70 100644 (file)
@@ -12,7 +12,7 @@
  * {
  *     . = START;
  *     __init_begin = .;
- *     HEAD_SECTION
+ *     HEAD_TEXT_SECTION
  *     INIT_TEXT_SECTION(PAGE_SIZE)
  *     INIT_DATA_SECTION(...)
  *     PERCPU(PAGE_SIZE)
@@ -38,7 +38,7 @@
  *     /DISCARD/ : {
  *             EXIT_TEXT
  *             EXIT_DATA
- *             *(.exitcall.exit)
+ *             EXIT_CALL
  *     }
  *     STABS_DEBUG
  *     DWARF_DEBUG
@@ -52,7 +52,6 @@
  * Examples are: [__initramfs_start, __initramfs_end] for initramfs and
  *               [__nosave_begin, __nosave_end] for the nosave data
  */
- #include <linux/section-names.h>
 
 #ifndef LOAD_OFFSET
 #define LOAD_OFFSET 0
 #endif
 
 /* Section used for early init (in .S files) */
-#define HEAD_TEXT  *(HEAD_TEXT_SECTION)
+#define HEAD_TEXT  *(.head.text)
 
-#define HEAD_SECTION                                                   \
+#define HEAD_TEXT_SECTION                                                      \
        .head.text : AT(ADDR(.head.text) - LOAD_OFFSET) {               \
                HEAD_TEXT                                               \
        }
        CPU_DISCARD(exit.text)                                          \
        MEM_DISCARD(exit.text)
 
+#define EXIT_CALL                                                      \
+       *(.exitcall.exit)
+
 /*
  * bss (Block Started by Symbol) - uninitialized data
  * zeroed during startup
  * NOSAVE_DATA starts and ends with a PAGE_SIZE alignment which
  * matches the requirment of PAGE_ALIGNED_DATA.
  *
-/* use 0 as page_align if page_aligned data is not used */
+ * use 0 as page_align if page_aligned data is not used */
 #define RW_DATA_SECTION(cacheline, nosave, pagealigned, inittask)      \
        . = ALIGN(PAGE_SIZE);                                           \
        .data : AT(ADDR(.data) - LOAD_OFFSET) {                         \
 #define BSS_SECTION(sbss_align, bss_align)                             \
        SBSS                                                            \
        BSS(bss_align)                                                  \
-       . = ALIGN(4);                                                   \
+       . = ALIGN(4);
+
index 9f70c9f..b218980 100644 (file)
@@ -2,8 +2,6 @@
 #define _LINUX_INIT_H
 
 #include <linux/compiler.h>
-#include <linux/section-names.h>
-#include <linux/stringify.h>
 
 /* These macros are used to mark some functions or 
  * initialized data (doesn't apply to uninitialized data)
 #define __memexitconst   __section(.memexit.rodata)
 
 /* For assembly routines */
-#define __HEAD         .section        __stringify(HEAD_TEXT_SECTION),"ax"
+#define __HEAD         .section        ".head.text","ax"
 #define __INIT         .section        ".init.text","ax"
 #define __FINIT                .previous
 
diff --git a/include/linux/section-names.h b/include/linux/section-names.h
deleted file mode 100644 (file)
index c956f4e..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef __LINUX_SECTION_NAMES_H
-#define __LINUX_SECTION_NAMES_H
-
-#define HEAD_TEXT_SECTION .head.text
-
-#endif /* !__LINUX_SECTION_NAMES_H */