On Thu, Mar 10, 2005 at 12:12:22PM +0000, Paulo Marques wrote:
> Paulo Marques wrote:
> >[...]
> >A simple and robust way is to do the sampling on a list of symbols 
> >sorted by symbol name. This way, even if the symbol positions that are 
> >given to scripts/kallsyms change, the symbols sampled will be the same.
> >
> >I'll do the patch to do this and send it ASAP.
> 
> Ok, here it is.
> 
> Dominik can you try the attached patch and see if it solves the problem?
Hi Paulo.

Alexander Stohr had similar problems with down and __sched_text_start.

I figured out that what was causing the troubles was the fact that the
linker generated symbol __sched_text_start changed value from pass 1 to
pass 2. The reason for this was the alingment used within that section.

My stamp on this is attached.

I never came around submitting this since I do not know what the correct
number for function alignment is on different paltforms.

        Sam


===== include/asm-generic/vmlinux.lds.h 1.16 vs edited =====
--- 1.16/include/asm-generic/vmlinux.lds.h      2004-10-06 18:45:06 +02:00
+++ edited/include/asm-generic/vmlinux.lds.h    2004-11-06 21:56:11 +01:00
@@ -6,6 +6,11 @@
 #define VMLINUX_SYMBOL(_sym_) _sym_
 #endif
 
+/* Aling functions to a 8 byte boundary.
+ * This prevents lables defined to mark start/end of section to differ
+ * during pass 1 and pass 2 when generating System.map */
+#define ALIGN_FUNCTION()  . = ALIGN(8)
+
 #define RODATA                                                         \
        .rodata           : AT(ADDR(.rodata) - LOAD_OFFSET) {           \
                *(.rodata) *(.rodata.*)                                 \
@@ -77,11 +82,13 @@
        }
 
 #define SCHED_TEXT                                                     \
+               ALIGN_FUNCTION();                                       \
                VMLINUX_SYMBOL(__sched_text_start) = .;                 \
                *(.sched.text)                                          \
                VMLINUX_SYMBOL(__sched_text_end) = .;
 
 #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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to