[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug gold/11490] New: gold: unbootable Linux kernel, wrong alignment for
From: |
edwintorok at gmail dot com |
Subject: |
[Bug gold/11490] New: gold: unbootable Linux kernel, wrong alignment for .rodata/.text ". = ALIGN((1 << 21)); " |
Date: |
12 Apr 2010 18:03:26 -0000 |
Tried to compile Linux 2.6.33, and 2.6.34-rc3 with gold.
Linking succeeded, but it fails to boot, it just keeps on rebooting.
To reproduce (you can also download just the tarball, but its easier if you just
clone if you want to test multiple versions):
1. git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
2. git checkout v2.6.34-rc3 (or v2.6.33)
3. Use my attached .config on x86-64
4. Build it, I used gcc version 4.4.3 (Debian 4.4.3-7), and
GNU gold (GNU Binutils 2.20.51.20100410) 1.9
gold was built from CVS, with a simple --enable-gold, make all-gold,
and then copying ld-new to /usr/local/bin/ld, clearing bash's cache (hash -r),
and building Linux using 'make'.
5. Try to boot it either on a real system, or with qemu-system-x86_64/kvm
(recommended):
kvm -kernel arch/x86/boot/bzImage
On a failed boot you just see the BIOS version flashing, and no messages from
the kernel.
6. Use the normal (non-gold/bfd) linker, I used GNU ld (GNU Binutils for Debian)
2.20.1-system.20100303.
7. make clean
8. make
Try to boot the kernel with kvm/qemu as above.
On a successful boot you should see some kernel messages, and finally a kernel
panic because we didn't provide it a disk to boot from.
(Note: you could also just rm vmlinux, and make bzImage, but if you keep moving
from gold to system linker and back at some point it'll complain about wrong
kallsyms values).
This is the KVM I used, but you can try to boot the kernel with anything that
would normally boot it.
QEMU PC emulator version 0.12.3 (qemu-kvm-0.12.3), Copyright (c) 2003-2008
Fabrice Bellard
See the discussion here (and earlier):
http://sourceware.org/ml/binutils/2010-04/msg00141.html
http://sourceware.org/ml/binutils/2010-04/msg00139.html
". = ALIGN((1 << 21));" should propagate to .p_align, but doesn't.
Will attach an updated diff of section/program headers as requested on the ML.
--
Summary: gold: unbootable Linux kernel, wrong alignment for
.rodata/.text ". = ALIGN((1 << 21));"
Product: binutils
Version: 2.21 (HEAD)
Status: NEW
Severity: normal
Priority: P2
Component: gold
AssignedTo: ian at airs dot com
ReportedBy: edwintorok at gmail dot com
CC: bug-binutils at gnu dot org
GCC build triplet: x86_64-linux-gnu
GCC host triplet: x86_64-linux-gnu
GCC target triplet: x86_64-linux-gnu
http://sourceware.org/bugzilla/show_bug.cgi?id=11490
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
- [Bug gold/11490] New: gold: unbootable Linux kernel, wrong alignment for .rodata/.text ". = ALIGN((1 << 21)); ",
edwintorok at gmail dot com <=
- [Bug gold/11490] gold: unbootable Linux kernel, wrong alignment for .rodata/.text ". = ALIGN((1 << 21)); ", edwintorok at gmail dot com, 2010/04/12
- [Bug gold/11490] gold: unbootable Linux kernel, wrong alignment for .rodata/.text ". = ALIGN((1 << 21)); ", edwintorok at gmail dot com, 2010/04/12
- [Bug gold/11490] gold: unbootable Linux kernel, wrong alignment for .rodata/.text ". = ALIGN((1 << 21)); ", edwintorok at gmail dot com, 2010/04/12
- [Bug gold/11490] gold: unbootable Linux kernel, wrong alignment for .rodata/.text ". = ALIGN((1 << 21)); ", hjl dot tools at gmail dot com, 2010/04/22