tree c93562d7c66856108e7dfe43e1e85304cebb5d91
parent 53e88e03e63621a15ec7fbccaaaca1a0f1616ed4
author Sam Ravnborg <[EMAIL PROTECTED](none)> Thu, 14 Jul 2005 20:15:44 +0000
committer Sam Ravnborg <[EMAIL PROTECTED](none)> Thu, 14 Jul 2005 20:15:44 +0000

kbuild: Avoid inconsistent kallsyms data

Several reports on inconsistent kallsyms data has been caused by the aliased 
symbols
__sched_text_start and __down to shift places in the output of nm.
The root cause was that on second pass ld aligned __sched_text_start to a 4 
byte boundary
which is the function alignment on i386.
sched.text and spinlock.text is now aligned to an 8 byte boundary to make sure 
they
are aligned to a function alignemnt on most (all?) archs.

Tested by: Paulo Marques <[EMAIL PROTECTED]>
Tested by: Alexander Stohr <[EMAIL PROTECTED]>

Signed-off-by: Sam Ravnborg <[EMAIL PROTECTED]>

 include/asm-generic/vmlinux.lds.h |    9 +++++++++
 1 files changed, 9 insertions(+)

diff --git a/include/asm-generic/vmlinux.lds.h 
b/include/asm-generic/vmlinux.lds.h
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -6,6 +6,9 @@
 #define VMLINUX_SYMBOL(_sym_) _sym_
 #endif
 
+/* Align . to a 8 byte boundary equals to maximum function alignment. */
+#define ALIGN_FUNCTION()  . = ALIGN(8)
+
 #define RODATA                                                         \
        .rodata           : AT(ADDR(.rodata) - LOAD_OFFSET) {           \
                *(.rodata) *(.rodata.*)                                 \
@@ -79,12 +82,18 @@
                VMLINUX_SYMBOL(__security_initcall_end) = .;            \
        }
 
+/* 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                                                     \
+               ALIGN_FUNCTION();                                       \
                VMLINUX_SYMBOL(__sched_text_start) = .;                 \
                *(.sched.text)                                          \
                VMLINUX_SYMBOL(__sched_text_end) = .;
 
+/* spinlock.text is aling to function alignment to secure we have same
+ * address even at second ld pass when generating System.map */
 #define LOCK_TEXT                                                      \
+               ALIGN_FUNCTION();                                       \
                VMLINUX_SYMBOL(__lock_text_start) = .;                  \
                *(.spinlock.text)                                       \
                VMLINUX_SYMBOL(__lock_text_end) = .;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to