This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
ld warning, allocated section not in segment
- From: Vivek Goyal <vgoyal at in dot ibm dot com>
- To: binutils at sourceware dot org
- Cc: Morton Andrew Morton <akpm at osdl dot org>, "Eric W. Biederman" <ebiederm at xmission dot com>
- Date: Sun, 8 Oct 2006 13:07:49 -0400
- Subject: ld warning, allocated section not in segment
- Reply-to: vgoyal at in dot ibm dot com
Hi,
I am compiling the latest kernel and run into following warning message.
ld: .tmp_vmlinux1: warning: allocated section `.smp_altinstr_replacement' not in segment
Following is the definition of section .smp_altinstr_replacement in linker
script file.
.smp_altinstr_replacement : AT(ADDR(.smp_altinstr_replacement) - LOAD_OFFSET) {
*(.smp_altinstr_replacement)
. = ALIGN(4096);
__smp_alt_end = .;
}
Why is it happening? What does it mean? From the message it looks like as if
linker has not mapped smp_altinstr_replacement section into a segment. But
readelf output shows that above section has been mapped to the segment 01.
Section to Segment mapping:
Segment Sections...
00 .text __ex_table .rodata .pci_fixup __ksymtab __ksymtab_gpl __ksymtab_unused __kcrctab __kcrctab_gpl __kcrctab_unused __ksymtab_strings __param
01 .data .data_nosave .data.page_aligned .data.cacheline_aligned .data.read_mostly .data.init_task .smp_locks .smp_altinstr_replacement .init.text .init.data .init.setup .initcall.init .con_initcall.init .altinstructions .altinstr_replacement .exit.text .init.ramfs .data.percpu .bss
In my case it looks like there is no input .smp_altinstr_replacement section
present and due to ALIGN option linker is forced to create an allocatable
output section.
[25] .smp_altinstructi PROGBITS c050c000 458604 000000 00 W 0 0 1
[26] .smp_locks PROGBITS c050c000 40d000 0032fc 00 A 0 0 4
[27] .smp_altinstr_rep NOBITS c050f2fc 4592fc 000d04 00 WA 0 0 1
[28] .init.text PROGBITS c0510000 411000 021972 00 AX 0 0 16
Even if that is the case, why is linker emitting above warning? How can I get
rid of it?
I am using ld version GNU ld version 2.15.92.0.2 20040927
This is also reproducible by linker version 2.16.1
Thanks
Vivek