gcc-4.6.0-10.fc15.x86_64 breaks grub-0.97-71.fc15 and later

Joshua C. joshuacov at googlemail.com
Wed Jul 6 00:25:56 UTC 2011


I've been testing with grub and found an interesting problem. When I
install the package
http://kojipkgs.fedoraproject.org/packages/grub/0.97/71.fc15/x86_64/grub-0.97-71.fc15.x86_64.rpm
everything is fine and grub works as it should:

[root at localhost x86_64-redhat]# grub
Probing devices to guess BIOS drives. This may take a long time.


    GNU GRUB  version 0.97-71.fc15  (640K lower / 3072K upper memory)

 [ Minimal BASH-like line editing is supported.  For the first word, TAB
   lists possible command completions.  Anywhere else TAB lists the possible
   completions of a device/filename.]
grub> root (hd0,1)
root (hd0,1)
 Filesystem type is ext2fs, partition type 0x83
grub> setup (hd0)
setup (hd0)
 Checking if "/boot/grub/stage1" exists... yes
 Checking if "/boot/grub/stage2" exists... yes
 Checking if "/boot/grub/e2fs_stage1_5" exists... yes
 Running "embed /boot/grub/e2fs_stage1_5 (hd0)"...  26 sectors are embedded.
succeeded
 Running "install /boot/grub/stage1 (hd0) (hd0)1+26 p
(hd0,1)/boot/grub/stage2 /boot/grub/grub.conf"... succeeded
Done.
grub> quit
quit
[root at localhost x86_64-redhat]#


When I recompile the grub-rpm and reinstall it I get this:

[root at localhost x86_64-unknown]# grub



Probing devices to guess BIOS drives. This may take a long time.


    GNU GRUB  version 0.97-71.fc15  (640K lower / 3072K upper memory)

 [ Minimal BASH-like line editing is supported.  For the first word, TAB
   lists possible command completions.  Anywhere else TAB lists the possible
   completions of a device/filename.]
grub> root (hd0,1)
root (hd0,1)
 Filesystem type is ext2fs, partition type 0x83
grub> setup (hd0)
setup (hd0)
 Checking if "/boot/grub/stage1" exists... yes
 Checking if "/boot/grub/stage2" exists... yes
 Checking if "/boot/grub/e2fs_stage1_5" exists... yes
 Running "embed /boot/grub/e2fs_stage1_5 (hd0)"...  31 sectors are embedded.
succeeded
 Running "install /boot/grub/stage1 (hd0) (hd0)1+31 p
(hd0,1)/boot/grub/stage2 /boot/grub/grub.conf"... failed

Error 6rd: Mismatched or corrupt version of stage1/stage2
grub> quit
quit
[root at localhost x86_64-unknown]#

---------------
As you can see the difference is in the following lines:
 Running "embed /boot/grub/e2fs_stage1_5 (hd0)"...  26 sectors are
embedded. (with the downloaded package)
 Running "embed /boot/grub/e2fs_stage1_5 (hd0)"...  31 sectors are
embedded. (with the recompiled package)

All newer packages result in the same error "Error 6rd: Mismatched or
corrupt version of stage1/stage2" and grub reports that 31 sectors
have been embedded.
So why does the gcc-4.6.0-10.fc15.x86_64 breaks my package???


More information about the devel mailing list