http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39333

Dexuan Cui <dexuan.cui at intel dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dexuan.cui at intel dot com

--- Comment #26 from Dexuan Cui <dexuan.cui at intel dot com> 2011-06-29 
13:28:32 UTC ---
(In reply to comment #24)
> I'm seeing this exact behaviour with 4.6 (r171422) with grub-0.97. 
> Unfortunately again there is no self-contained test case.
> It appears "stage2" is being miscompiled.  At least, if I copy that file from 
> a
> 4.5 build everything works.
> This is how I can reproduce it:
> - build grub-0.97.  The object files are built like
> gcc -m32 -DHAVE_CONFIG_H -I. -I.. -I../stage1  -Wall -Wmissing-prototypes
> -Wunused -Wshadow -Wpointer-arith -falign-jumps=1 -falign-loops=1
> -falign-functions=1 -Wundef -Os -fno-stack-protector -fno-builtin -nostdinc 
> -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 -DSUPPORT_GRAPHICS=1 -DFSYS_EXT2FS=1
> -DFSYS_FAT=1 -DFSYS_FFS=1 -DFSYS_UFS2=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1
> -DFSYS_VSTAFS=1 -DFSYS_JFS=1 -DFSYS_XFS=1 -DFSYS_ISO9660=1
> -DUSE_MD5_PASSWORDS=1 -g -MT pre_stage2_exec-stage2.o -MD -MP -MF
> .deps/pre_stage2_exec-stage2.Tpo -c -o pre_stage2_exec-stage2.o `test -f
> 'stage2.c' || echo './'`stage2.c
> - after installation, run `grub-install /dev/sda`
>  # grub-install /dev/sda
>     GNU GRUB  version 0.97  (640K lower / 9216K 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,0)
>  Filesystem type is ext2fs, partition type 0x83
> grub> setup  --stage2=/boot/grub/stage2 --prefix=/grub (hd0)
>  Checking if "/grub/stage1" exists... yes
>  Checking if "/grub/stage2" exists... yes
>  Checking if "/grub/e2fs_stage1_5" exists... yes
>  Running "embed /grub/e2fs_stage1_5 (hd0)"...  24 sectors are embedded.
> succeeded
>  Running "install --stage2=/boot/grub/stage2 /grub/stage1 (hd0) (hd0)1+24 p
> (hd0,0)/grub/stage2 /grub/menu.lst"... failed
> Error 6: Mismatched or corrupt version of stage1/stage2
> grub> quit
> -fno-inline-small-functions works
> -fno-inline-small-functions -finline-functions works
> -fno-guess-branch-probability works
> -fno-ipa-profile works
> -fno-strict-aliasing works with -Os but not -O2
> I understand this is impossible to debug.  I'm just hoping it might spin some
> wheels.  Grub isn't something we like to miscompile. ;) Let me know what other
> info/files would be useful.

In poky we got the same issue:
http://bugzilla.pokylinux.org/show_bug.cgi?id=1099.

Thanks Ryan Hill for the investigation with grub-0.97 and gcc-4.6.

Look forward to a formal fix in gcc...

Reply via email to