On Fri, Sep 30, 2011 at 07:17:57AM -0400, Kevin O'Connor wrote:
On Fri, Sep 30, 2011 at 10:05:54AM +0100, Ian Campbell wrote:
This works for me too. Bisecting between my .config and the default it appears as if just enabling CONFIG_THREAD_OPTIONROMS over the defaults causes the problem.
Can you check if "make clean; make COMPSTRAT=1" builds successfully?
Looking more closely, I'm pretty sure this is the compiler bug described in tools/test-gcc.sh:
# Also, on several compilers, -combine fails if code is emitted with a # reference to an extern variable that is later found to be externally # visible - the compiler does not mark those variables as global. # This is being worked around by ordering the compile objects to avoid # this case.
as such, I think the patch below should fix it.
After the release, I think SeaBIOS should just drop support for "-combine" - gcc 4.6 no longer supports it and -flto is the preferred way forward.
-Kevin
--- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ VERSION=pre-0.6.3-$(shell date +"%Y%m%d_%H%M%S")-$(shell hostname) OUT=out/
# Source files -SRCBOTH=misc.c pmm.c stacks.c output.c util.c block.c floppy.c ata.c mouse.c \ +SRCBOTH=misc.c stacks.c pmm.c output.c util.c block.c floppy.c ata.c mouse.c \ kbd.c pci.c serial.c clock.c pic.c cdrom.c ps2port.c smp.c resume.c \ pnpbios.c pirtable.c vgahooks.c ramdisk.c pcibios.c blockcmd.c \ usb.c usb-uhci.c usb-ohci.c usb-ehci.c usb-hid.c usb-msc.c \