https://bugzilla.novell.com/show_bug.cgi?id=222898 ------- Comment #6 from bwalle@novell.com 2006-12-19 06:52 MST ------- I also have now a linker script (with trial and error as I don't find any detailed information in the ld manual that could explain the behaviour) that doesn't have this problem. It's the patch from above without moving BSS unconditionally (i.e. BSS is at the beginning) and: #ifndef CONFIG_XEN __bss_start = .; /* BSS */ .bss : AT(ADDR(.bss) - LOAD_OFFSET) { *(.bss.page_aligned) *(.bss) }:NONE __bss_stop = .; #endif . = ALIGN(PAGE_SIZE); . = ALIGN(CONFIG_X86_L1_CACHE_BYTES); .data.cacheline_aligned : AT(ADDR(.data.cacheline_aligned) - LOAD_OFFSET) { *(.data.cacheline_aligned) } :data So the change is the ":NONE" and the ":data". I'll attach this script to have a complete overview. The result (with readelf) is: 01 .data .bss .data.cacheline_aligned .data.read_mostly 02 .vsyscall_0 .xtime_lock .vxtime .wall_jiffies .sys_tz sysctl_vsyscall .xtime .jiffies .vsyscall_1 .vsyscall_2 .vsyscall_3 03 .data.init_task .data.page_aligned .init.text .init.data .init.setup initcall.init .con_initcall.init .altinstructions .altinstr_replacement exit.text .init.ramfs .data_nosave 04 This looks well (CONFIG_DEBUG_INFO=y). Because our build process extracts the debug information to a separate binary and then strips the original kernel, I simply run 'strip' over the binary. The result of our kernel RPM (--debug=yes) is the same. After the strip, we have 01 .data .bss .data.cacheline_aligned .data.read_mostly .data.init_task data.page_aligned .init.text .init.data .init.setup .initcall.init con_initcall.init .altinstructions .altinstr_replacement .exit.text init.ramfs .data_nosave 02 .vsyscall_0 .xtime_lock .vxtime .wall_jiffies .sys_tz sysctl_vsyscall .xtime .jiffies .vsyscall_1 .vsyscall_2 .vsyscall_3 03 .data.init_task .data.page_aligned .init.text .init.data .init.setup initcall.init .con_initcall.init .altinstructions .altinstr_replacement exit.text .init.ramfs .data_nosave 04 Again, some sections (like .data.init_task) are twice and in the physical address space they are overlapping Type Offset VirtAddr PhysAddr FileSiz MemSiz Flags Align LOAD 0x0000000000200000 0xffffffff81000000 0x0000000001000000 0x0000000000275668 0x0000000000275668 R E 200000 LOAD 0x0000000000476000 0xffffffff81276000 0x0000000001276000 0x00000000000f4718 0x00000000002ebafc RWE 200000 LOAD 0x0000000000600000 0xffffffffff600000 0x000000000136b000 0x0000000000000c08 0x0000000000000c08 RWE 200000 LOAD 0x000000000076c000 0xffffffff8136c000 0x000000000136c000 0x000000000002f004 0x000000000002f004 RWE 200000 NOTE 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000 R 8 0x0000000001276000 + 0x00000000002ebafc = 0x1561AFC which is larger than 0x000000000136c000. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.