I can confirm this problem, although my symptoms are slightly different.
I've been using vanilla kernels (tracking kernel.org) since Lucid on my x86 32-bit laptop.
After upgrading to Maverick, subsequent built kernels all failed to boot, panicing early with a message about timer IRQ routing and the APIC.
After spending a few days (:-/) bisecting, because I thought a new revision must be the cause, I eventually found the exact same git revision and kernel config failed to boot, compared with a previously built kernel that is fine (using it at the moment).
I downgraded all the GCC packages to Lucid's version, and the resulting build still failed to boot, in the same way.
Then I downgraded Binutils to Lucid's version, rebuilt, and the resulting kernel (a) booted fine (using it at the moment), and (b) had the same symbol map as the kernel built previously before I upgraded Lucid to Maverick.
This means Binutils is definitely affecting the kernel build, in a way which causes various boot failures.
The variation in symptoms is entirely consistent with CONFIG_RELOCATABLE having something to do with it. That is, it looks like random code corruption ;-)
When I compare the kernel's Symbol.map built with Lucid vs. Maverick's binutils, and Lucid's gcc (for both), with my particular kernel + config, I see this:
- The version built with Maverick's binutils has slightly larger kallsyms tables (just a few bytes).
Everything else in Symbol.map looks to be the same size.
- In arch/x86/boot/compressed/vmlinux, the ELF section sizes (objdump -h) are the same size
in both versions, except .rodata..compressed is about 1.6k smaller in the version
built with Maverick.
- In arch/x86/boot/compressed/vmlinux.bin, the ELF section sizes are the same size, except
in the Maverick-binutils-built version, .rodata is 16 bytes smaller, .param is 32 bytes smaller,
and .init.data is 32 byte larger.
I'm still looking at the reason for the differences.
I can confirm this problem, although my symptoms are slightly different.
I've been using vanilla kernels (tracking kernel.org) since Lucid on my x86 32-bit laptop.
After upgrading to Maverick, subsequent built kernels all failed to boot, panicing early with a message about timer IRQ routing and the APIC.
After spending a few days (:-/) bisecting, because I thought a new revision must be the cause, I eventually found the exact same git revision and kernel config failed to boot, compared with a previously built kernel that is fine (using it at the moment).
I downgraded all the GCC packages to Lucid's version, and the resulting build still failed to boot, in the same way.
Then I downgraded Binutils to Lucid's version, rebuilt, and the resulting kernel (a) booted fine (using it at the moment), and (b) had the same symbol map as the kernel built previously before I upgraded Lucid to Maverick.
This means Binutils is definitely affecting the kernel build, in a way which causes various boot failures.
Comments earlier in this bug, my different symptom, and a mention elsewhere (https:/ /bugs.launchpad .net/ubuntu/ +source/ linux/+ bug/633983/ comments/ 36), imply that the symptoms aren't consistent, except that booting fails.
The variation in symptoms is entirely consistent with CONFIG_RELOCATABLE having something to do with it. That is, it looks like random code corruption ;-)
When I compare the kernel's Symbol.map built with Lucid vs. Maverick's binutils, and Lucid's gcc (for both), with my particular kernel + config, I see this:
- The version built with Maverick's binutils has slightly larger kallsyms tables (just a few bytes). boot/compressed /vmlinux, the ELF section sizes (objdump -h) are the same size boot/compressed /vmlinux. bin, the ELF section sizes are the same size, except binutils- built version, .rodata is 16 bytes smaller, .param is 32 bytes smaller,
Everything else in Symbol.map looks to be the same size.
- In arch/x86/
in both versions, except .rodata..compressed is about 1.6k smaller in the version
built with Maverick.
- In arch/x86/
in the Maverick-
and .init.data is 32 byte larger.
I'm still looking at the reason for the differences.