Skip to contentSkip to conversation

Issues building seabios

DISCUSSION Avi Kivity 2 participants 5 messages Nov 19, 2009 – Nov 26, 2009 KVM

lore
Share & tools
lore

Avi Kivity

author
#0 lore raw

Trying to debug the cdrom issue, I see

Compiling whole program out/ccode32.o
src/util.c: In function ‘__end_thread’:
src/util.c:183: internal compiler error: in simplify_subreg, at simplify-rtx.c:5055

(with F12's gcc (GCC) 4.4.2 20091027 (Red Hat 4.4.2-7))

The issue seems to be with the pos variable; removing everything except the declaration + initialization retains the error, converting the variable to static removes it. Presumably you've seen many of these?

With that out of the way, I get:

Linking (no relocs) out/rom32.o
Linking (no relocs) out/rom16.o
Linking out/rom.o
cdemu_drive' referenced in section .text32' of out/rom32.o: defined in discarded section .discard.var16.src/cdrom.c.107' of out/rom32.o cdemu_drive' referenced in section .text32' of out/rom32.o: defined in discarded section .discard.var16.src/cdrom.c.107' of out/rom32.o cdemu_drive' referenced in section .text32' of out/rom32.o: defined in discarded section `.discard.var16.src/cdrom.c.107' of out/rom32.o

Given we're chasing a cdom related problem, this is suspicious, even though we aren't using cdemu. Presumably access to uninitialized memory can confuse disk.c.

out/rom32.o: In function `check_irqs32':
/build/home/tlv/akivity/qemu-kvm/roms/seabios/src/util.c:109: undefined reference to `trampoline_checkirqs'

No idea where that came from.

Signature · 1 line
error compiling committee.c: too many arguments to function
#1 lore raw
Quoted 8 lines · Avi Kivity

Trying to debug the cdrom issue, I see

Compiling whole program out/ccode32.o
src/util.c: In function ‘__end_thread’:
src/util.c:183: internal compiler error: in simplify_subreg, at simplify-rtx.c:5055

(with F12's gcc (GCC) 4.4.2 20091027 (Red Hat 4.4.2-7))

I think this should be fixed in gcc - see:

https://bugzilla.redhat.com/show_bug.cgi?id=531385

Long story short - this is the result of gcc's "-combine" being fragile. It's possible to avoid by compiling seabios with "make COMPSTRAT=1". We may need to change the default.

Ughh - did FC12 go out without this fix?

-Kevin

author
#2 lore raw
Quoted 11 lines · Kevin O'Connor
Quoted 9 lines · Avi Kivity

Trying to debug the cdrom issue, I see

Compiling whole program out/ccode32.o
src/util.c: In function ‘__end_thread’:
src/util.c:183: internal compiler error: in simplify_subreg, at simplify-rtx.c:5055

(with F12's gcc (GCC) 4.4.2 20091027 (Red Hat 4.4.2-7))

Quoted 9 lines

I think this should be fixed in gcc - see:

https://bugzilla.redhat.com/show_bug.cgi?id=531385

Long story short - this is the result of gcc's "-combine" being fragile. It's possible to avoid by compiling seabios with "make COMPSTRAT=1". We may need to change the default.

That works. Still complains about cdemu_drive and trampoline_checkirqs.

Quoted 2 lines

Ughh - did FC12 go out without this fix?

Yes, and 4.4.2-8 is not on updates-testing or rawhide.

Signature · 1 line
error compiling committee.c: too many arguments to function
#3 lore raw
Quoted 6 lines · Avi Kivity
Quoted 3 lines · Kevin O'Connor

Long story short - this is the result of gcc's "-combine" being fragile. It's possible to avoid by compiling seabios with "make COMPSTRAT=1". We may need to change the default.

That works. Still complains about cdemu_drive and trampoline_checkirqs.

I updated SeaBIOS' gcc check to test for the broken fc12 compiler - commit 3133e382.

With that commit, I can build on fc12 and fc12beta without any errors or warnings. Did you run a "make clean" before rebuilding?

-Kevin

author
#4 lore raw
Quoted 8 lines · Kevin O'Connor
Quoted 6 lines · Avi Kivity
Quoted 4 lines · Kevin O'Connor

Long story short - this is the result of gcc's "-combine" being fragile. It's possible to avoid by compiling seabios with "make COMPSTRAT=1". We may need to change the default.

Quoted 8 lines
Quoted 2 lines

That works. Still complains about cdemu_drive and trampoline_checkirqs.

I updated SeaBIOS' gcc check to test for the broken fc12 compiler - commit 3133e382.

With that commit, I can build on fc12 and fc12beta without any errors or warnings. Did you run a "make clean" before rebuilding?

I did. Latest seabios builds for me, though, so I can confirm the problem is fixed.

Signature · 1 line
error compiling committee.c: too many arguments to function