FS#19403 - [mkinitcpio-busybox] building with gcc 4.5.0 breaks 'sed'

Attached to Project: Arch Linux
Opened by Byron Clark (byronc) - Sunday, 09 May 2010, 17:21 GMT
Last edited by Thomas Bächler (brain0) - Saturday, 22 May 2010, 14:27 GMT
Task Type Bug Report
Category Packages: Core
Status Closed
Assigned To Thomas Bächler (brain0)
Allan McRae (Allan)
Architecture All
Severity Critical
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 4
Private No

Details

Description:

I use this stanza in /boot/grub/menu.lst for booting my arch system:
title Arch Linux
root (hd0,0)
kernel /vmlinuz26 root=/dev/mapper/thinktiny-root cryptdevice=/dev/sda2:thinktiny ro quiet i915.powersave=0
initrd /kernel26.img

After updating to mkinitcpio-0.6.4-1 and kernel26-2.6.33.3-2 my system no longer boots with the new initramfs.

I get this error on boot (_gibberish_ is a bunch of unprintable characters):
/init: export: line 52: _gibberish_: bad variable name
kernel panic - not syncing: Attempted to kill init!

The system boots successfully if I remove "i915.powersave=0" from the kernel command line.

Additional info:
* package version(s)
mkinitcpio 0.6.4-1
kernel26 2.6.33.3-2
This task depends upon

Closed by  Thomas Bächler (brain0)
Saturday, 22 May 2010, 14:27 GMT
Reason for closing:  Fixed
Comment by Joker-jar (Joker-jar) - Sunday, 09 May 2010, 17:50 GMT
Same trouble. My command line:

/boot/vmlinuz26 root=/dev/disk/by-uuid/xxxxxxxxxxxxxxx ro quiet vga=0x31b logo.nologo

logo.nologo - dotted variable
Comment by Rene (hit) - Sunday, 09 May 2010, 17:55 GMT
Confirmed booting after removing "radeon.modeset=0".
Additionally, I get only 800x600 resolution in X after doing that.

*Same package versions as told here.
Comment by Thomas Bächler (brain0) - Sunday, 09 May 2010, 18:26 GMT
Please upgrade to the new mkinitcpio-busybox in core and rebuild the initramfs.
Comment by Marco Milch (manalishi) - Sunday, 09 May 2010, 18:38 GMT
Upgrading mkinitcpio-busybox and rebuilding the initramfs worked.

Thanks!
Comment by Rene (hit) - Sunday, 09 May 2010, 18:42 GMT
Works as expected. Thanks for (very) fast response!
Comment by Thomas Bächler (brain0) - Sunday, 09 May 2010, 18:44 GMT
The initramfs is bigger than normal, because this version is built with -O0 instead of -Os! Optimization breaks busybox entirely with gcc 4.5 - although I thought I had worked around that.
Comment by Byron Clark (byronc) - Monday, 10 May 2010, 14:57 GMT
New version of mkinitcpio-busybox works great. Thanks for the fix!
Comment by Thomas Bächler (brain0) - Monday, 10 May 2010, 16:43 GMT
"Fix" is a strong word, I would call it an ugly workaround. I will keep this bug open until we can properly build a -Os binary with gcc 4.5.
Comment by Leonid Isaev (lisaev) - Thursday, 13 May 2010, 19:44 GMT
@brain0: Given that initramfs is a critical system component, why do you want to optimize it at all? I don't think that people care about its performance... Is there any restriction on size? BTW, just out of curiosity, does it compile with -O2, instead of -Os?
Thanks.
Comment by Thomas Bächler (brain0) - Thursday, 13 May 2010, 20:44 GMT
The problem is caused by -O1, -O2 or -Os.
Comment by Allan McRae (Allan) - Friday, 21 May 2010, 05:49 GMT
Please test gcc-4.5.0-2 in [testing].
Comment by Allan McRae (Allan) - Friday, 21 May 2010, 06:01 GMT
A quick test here shows the bug appears to be fixed. Building with -Os:

allan@mugen ~
> cat test.txt
foo.bar

allan@mugen ~
> /var/abs/local/tmp/pkg/lib/initcpio/busybox sed "s#foo.##" test.txt
bar

Is that enough to test if this bug is fixed?
Comment by Thomas Bächler (brain0) - Friday, 21 May 2010, 08:04 GMT
Just to summarize the issue again: Originally, gcc 4.5.0-1 made 'sed' segfault. With the workaround -fno-tree-pta, the bug was _supposed_ to be fixed, the segfault were gone, but 'sed' printed garbage.

Your preliminary tests seem to indicate the bug is fixed, but I will perform more thorough tests before pushing any new package.
Comment by Thomas Bächler (brain0) - Friday, 21 May 2010, 08:14 GMT
My own preliminary tests also show that this problem is solved.
Comment by Allan McRae (Allan) - Saturday, 22 May 2010, 08:03 GMT
OK to close?

Loading...