This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [Gold] problem building linux kernel
I tried your config file and I had also found the Radeon firmware
before you sent me. However, I could not reproduce the problem. One
thing I noticed is that my kernel is slighly different from yours.
Mine does not have a __jump_table section and the .text section starts
at 0x200000 in the file, where as yours has .text starting at 0x1000.
-Doug
There are 34 section headers, starting at offset 0xc87d00:
Section Headers:
[Nr] Name Type Address Off Size
ES Flg Lk Inf Al
[ 0] NULL 0000000000000000 000000
000000 00 0 0 0
[ 1] .text PROGBITS ffffffff81000000 200000
460b39 00 AX 0 0 4096
[ 2] .notes NOTE ffffffff81460b3c 660b3c
000024 00 AX 0 0 4
[ 3] __ex_table PROGBITS ffffffff81460b60 660b60
001910 00 A 0 0 8
[ 4] .rodata PROGBITS ffffffff81463000 663000
14506c 00 A 0 0 64
[ 5] __bug_table PROGBITS ffffffff815a8070 7a8070
004f74 00 A 0 0 1
[ 6] .pci_fixup PROGBITS ffffffff815acff0 7acff0
001790 00 A 0 0 16
[ 7] .builtin_fw PROGBITS ffffffff815ae780 7ae780
0002a0 00 A 0 0 8
[ 8] __init_rodata PROGBITS ffffffff815aea20 7aea20
002aa0 00 A 0 0 32
[ 9] __param PROGBITS ffffffff815b14c0 7b14c0
001b40 00 A 0 0 8
[10] .data PROGBITS ffffffff815b3000 7b3000
064624 00 WA 0 0 4096
[11] .vsyscall_0 PROGBITS ffffffffff600000 a00000
000106 00 AX 0 0 16
[12] .vsyscall_fn PROGBITS ffffffffff600140 a00140
00003a 00 AX 0 0 16
[13] .vsyscall_gtod_da PROGBITS ffffffffff600180 a00180
000060 00 WA 0 0 16
[14] .vsyscall_1 PROGBITS ffffffffff600400 a00400
000046 00 AX 0 0 16
[15] .vsyscall_2 PROGBITS ffffffffff600800 a00800
000072 00 AX 0 0 16
[16] .vgetcpu_mode PROGBITS ffffffffff600880 a00880
000004 00 WA 0 0 16
[17] .jiffies PROGBITS ffffffffff6008c0 a008c0
000008 00 WA 0 0 16
[18] .data..percpu PROGBITS 0000000000000000 c00000
011f80 00 WA 0 0 4096
[19] .init.text PROGBITS ffffffff8162b000 c2b000
02db60 00 AX 0 0 16
[20] .init.data PROGBITS ffffffff81658b60 c58b60
025398 00 WA 0 0 32
[21] .x86_cpu_dev.init PROGBITS ffffffff8167def8 c7def8
000008 00 A 0 0 8
[22] .altinstructions PROGBITS ffffffff8167df00 c7df00
0014e4 00 A 0 0 8
[23] .altinstr_replace PROGBITS ffffffff8167f3e4 c7f3e4
00045f 00 AX 0 0 1
[24] .iommu_table PROGBITS ffffffff8167f848 c7f848
000050 00 A 0 0 8
[25] .exit.text PROGBITS ffffffff8167f898 c7f898
0018e8 00 AX 0 0 1
[26] .smp_locks PROGBITS ffffffff81682000 c82000
004000 00 A 0 0 4
[27] .bss NOBITS ffffffff81686000 c86000
0485f4 00 WA 0 0 4096
[28] .brk NOBITS ffffffff816cf000 c86000
020000 00 WA 0 0 1
[29] .comment PROGBITS 0000000000000000 c86000
000023 01 MS 0 0 1
[30] .debug_frame PROGBITS 0000000000000000 c86028
001b68 00 0 0 8
[31] .shstrtab STRTAB 0000000000000000 c87b90
00016a 00 0 0 1
[32] .symtab SYMTAB 0000000000000000 c88580
0b1b88 18 33 18927 8
[33] .strtab STRTAB 0000000000000000 d3a108
086da6 00 0 0 1
Key to Flags:
W (write), A (alloc), X (execute), M (merge), S (strings)
I (info), L (link order), G (group), x (unknown)
O (extra OS processing required) o (OS specific), p (processor specific)
Elf file type is EXEC (Executable file)
Entry point 0x1000000
There are 6 program headers, starting at offset 64
Program Headers:
Type Offset VirtAddr PhysAddr
FileSiz MemSiz Flg Align
LOAD 0x200000 0xffffffff81000000 0x0000000001000000
0x5b3000 0x5b3000 R E 0x200000
LOAD 0x7b3000 0xffffffff815b3000 0x00000000015b3000
0x064624 0x064624 RWE 0x200000
LOAD 0xa00000 0xffffffffff600000 0x0000000001618000
0x0008c8 0x0008c8 R E 0x200000
LOAD 0xc00000 0x0000000000000000 0x0000000001619000
0x011f80 0x011f80 RW 0x200000
LOAD 0xc2b000 0xffffffff8162b000 0x000000000162b000
0x05b000 0x0c4000 RWE 0x200000
NOTE 0x660b3c 0xffffffff81460b3c 0x0000000001460b3c
0x000024 0x000024 0x4
Section to Segment mapping:
Segment Sections...
00 .text .notes __ex_table .rodata __bug_table .pci_fixup
.builtin_fw __init_rodata __param
01 .data
02 .vsyscall_0 .vsyscall_fn .vsyscall_gtod_data .vsyscall_1
.vsyscall_2 .vgetcpu_mode .jiffies
03 .data..percpu
04 .init.text .init.data .x86_cpu_dev.init .altinstructions
.altinstr_replacement .iommu_table .exit.text .smp_locks .bss .brk
05 .notes
On Wed, Nov 17, 2010 at 12:39 AM, Markus Trippelsdorf
<markus@trippelsdorf.de> wrote:
> On Wed, 17 Nov 2010 08:10:10 +0100, Markus wrote:
>> [-- text/plain, encoding 8bit, charset: utf-8, 100 lines --]
>>
>> On 2010.11.16 at 16:39 -0800, Doug Kwan (?????????) wrote:
>>> On Tue, Nov 16, 2010 at 7:59 AM, Markus Trippelsdorf
>>> <markus@trippelsdorf.de> wrote:
>>> > On 2010.11.16 at 07:52 -0800, Ian Lance Taylor wrote:
>>> >> Markus Trippelsdorf <markus@trippelsdorf.de> writes:
>>> >>
>>> >> > Gold produces a malformed vmlinux file with this command:
>>> >>
>>> >> In what way is the vmlinux file malformed?
>>> >
>>> > Insofar as the this command normaly succeeds, but fails with the vmlinux
>>> > linked with gold:
>>> >
>>> > (good)
>>> > % objcopy -v -R .comment -S vmlinux arch/x86/boot/compressed/vmlinux.bin
>>> > copy from `vmlinux' [elf64-x86-64] to `arch/x86/boot/compressed/vmlinux.bin' [elf64-x86-64]
>>> >
>>> > (bad)
>>> > % objcopy ?-R .comment -S vmlinux arch/x86/boot/compressed/vmlinux.bin
>>> > BFD: arch/x86/boot/compressed/vmlinux.bin: warning: allocated section `.data..percpu' not in segment
>>> > objcopy:arch/x86/boot/compressed/vmlinux.bin[.text]: File truncated
>>> > objcopy:arch/x86/boot/compressed/vmlinux.bin: File truncated
>>>
>>> I cannot reproduce the problem with top of trunk gold and top of linux
>>> kernel.
>>>
>> If you want to reproduce it locally it might be easier if you simply use
>> my attached kernel config file. (Just copy it to .config in the kernel
>> top directory and then run "make V=1").
>
> Ah sorry, I forgot that you need to copy the Radeon ucode:
> http://people.freedesktop.org/~agd5f/radeon_ucode/R600_rlc.bin
> to firmware/radeon/ in my configuration. The build process will fail
> otherwise.
> --
> Markus
>
>