Hi,
I'd like to make the next release of SeaBIOS. I plan to make the version number be v1.6.3 (instead of v0.6.3).
There are a few ACPI patches pending. However, I think it would be best to tag the current code, and then add the ACPI code on top of it.
If anyone knows of any bugs, patches, or issues that need to be addressed prior to making a release, please let me know.
Thanks, -Kevin
On 09/23/2011 06:28 AM, Kevin O'Connor wrote:
I'd like to make the next release of SeaBIOS. I plan to make the version number be v1.6.3 (instead of v0.6.3).
There are a few ACPI patches pending. However, I think it would be best to tag the current code, and then add the ACPI code on top of it.
If anyone knows of any bugs, patches, or issues that need to be addressed prior to making a release, please let me know.
Two-pass PCI allocation caused a regression that was recently reported in qemu-devel.
Paolo
On Fri, 2011-09-23 at 00:28 -0400, Kevin O'Connor wrote:
Hi,
I'd like to make the next release of SeaBIOS. I plan to make the version number be v1.6.3 (instead of v0.6.3).
There are a few ACPI patches pending. However, I think it would be best to tag the current code, and then add the ACPI code on top of it.
If anyone knows of any bugs, patches, or issues that need to be addressed prior to making a release, please let me know.
I've just tried to build and got:
Linking out/rom.o `.discard.var16.src/stacks.c.188' referenced in section `.text.finish_preempt.1580' of out/code32flat.o: defined in discarded section `.discard.var16.src/stacks.c.188' of out/code32flat.o `.discard.var16.src/stacks.c.188' referenced in section `.text.pmm_malloc.1805' of out/code32flat.o: defined in discarded section `.discard.var16.src/stacks.c.188' of out/code32flat.o `.discard.var16.src/stacks.c.188' referenced in section `.text.pmm_malloc.1805' of out/code32flat.o: defined in discarded section `.discard.var16.src/stacks.c.188' of out/code32flat.o `.discard.var16.src/stacks.c.188' referenced in section `.text.init.src/pmm.c.561' of out/code32flat.o: defined in discarded section `.discard.var16.src/stacks.c.188' of out/code32flat.o `.discard.var16.src/stacks.c.188' referenced in section `.text.init.src/pmm.c.561' of out/code32flat.o: defined in discarded section `.discard.var16.src/stacks.c.188' of out/code32flat.o `.discard.var16.src/stacks.c.188' referenced in section `.text.init.src/pmm.c.561' of out/code32flat.o: defined in discarded section `.discard.var16.src/stacks.c.188' of out/code32flat.o `.discard.var16.src/stacks.c.188' referenced in section `.text.ehci_note_port.41146' of out/code32flat.o: defined in discarded section `.discard.var16.src/stacks.c.188' of out/code32flat.o `.discard.var16.src/stacks.c.188' referenced in section `.text.ehci_note_port.41146' of out/code32flat.o: defined in discarded section `.discard.var16.src/stacks.c.188' of out/code32flat.o `.discard.var16.src/stacks.c.188' referenced in section `.text.__callrom.68478' of out/code32flat.o: defined in discarded section `.discard.var16.src/stacks.c.188' of out/code32flat.o `.discard.var16.src/stacks.c.188' referenced in section `.text.maininit.53837' of out/code32flat.o: defined in discarded section `.discard.var16.src/stacks.c.188' of out/code32flat.o
Which I bisected to:
commit 533b6286cbc5a01e8aaafc2a8393a7d109f81958 Author: Kevin O'Connor kevin@koconnor.net Date: Sat Jul 16 13:13:12 2011 -0400
Run option rom visible PMM code in 32bit mode instead of 16bit mode.
Use call32() to jump into handle_pmm(). This reduces the amount of 16bit code needed.
Signed-off-by: Kevin O'Connor kevin@koconnor.net
I tried sprinkling some VISIBLE* stuff around the place but it quickly became pretty clear I didn't know what I was doing ;-)
Turning off CONFIG_PMM "fixed" it, original (failing) .config is attached.
Thanks, Ian.
On Thu, Sep 29, 2011 at 02:00:11PM +0100, Ian Campbell wrote:
On Fri, 2011-09-23 at 00:28 -0400, Kevin O'Connor wrote:
Hi,
I'd like to make the next release of SeaBIOS. I plan to make the version number be v1.6.3 (instead of v0.6.3).
There are a few ACPI patches pending. However, I think it would be best to tag the current code, and then add the ACPI code on top of it.
If anyone knows of any bugs, patches, or issues that need to be addressed prior to making a release, please let me know.
I've just tried to build and got:
Linking out/rom.o `.discard.var16.src/stacks.c.188' referenced in section `.text.finish_preempt.1580' of out/code32flat.o: defined in discarded section `.discard.var16.src/stacks.c.188' of out/code32flat.o
Ughh - this is likely an issue with gcc's -combine option. What OS and/or gcc/ld version are you using?
-Kevin
On Thu, 2011-09-29 at 19:36 -0400, Kevin O'Connor wrote:
On Thu, Sep 29, 2011 at 02:00:11PM +0100, Ian Campbell wrote:
On Fri, 2011-09-23 at 00:28 -0400, Kevin O'Connor wrote:
Hi,
I'd like to make the next release of SeaBIOS. I plan to make the version number be v1.6.3 (instead of v0.6.3).
There are a few ACPI patches pending. However, I think it would be best to tag the current code, and then add the ACPI code on top of it.
If anyone knows of any bugs, patches, or issues that need to be addressed prior to making a release, please let me know.
I've just tried to build and got:
Linking out/rom.o `.discard.var16.src/stacks.c.188' referenced in section `.text.finish_preempt.1580' of out/code32flat.o: defined in discarded section `.discard.var16.src/stacks.c.188' of out/code32flat.o
Ughh - this is likely an issue with gcc's -combine option. What OS and/or gcc/ld version are you using?
It is Debian Squeeze.
$ gcc --version gcc (Debian 4.4.5-8) 4.4.5 $ ld --version GNU ld (GNU Binutils for Debian) 2.20.1-system.20100303
Ian.
Ian Campbell ijc@hellion.org.uk writes:
On Thu, 2011-09-29 at 19:36 -0400, Kevin O'Connor wrote:
I've just tried to build and got:
Linking out/rom.o `.discard.var16.src/stacks.c.188' referenced in section `.text.finish_preempt.1580' of out/code32flat.o: defined in discarded section `.discard.var16.src/stacks.c.188' of out/code32flat.o
Ughh - this is likely an issue with gcc's -combine option. What OS and/or gcc/ld version are you using?
It is Debian Squeeze.
$ gcc --version gcc (Debian 4.4.5-8) 4.4.5 $ ld --version GNU ld (GNU Binutils for Debian) 2.20.1-system.20100303
Then I don't think that can be the (only) cause. I also use Debian Squeeze with those exact versions, and do not experience the problem:
bjorn@canardo:/usr/local/src/git/seabios$ git branch --contains 533b6286c * master bjorn@canardo:/usr/local/src/git/seabios$ make distclean bjorn@canardo:/usr/local/src/git/seabios$ make Build default config # # configuration written to /usr/local/src/git/seabios/.config # Build Kconfig config file Compiling whole program out/ccode.16.s Compiling to assembler out/asm-offsets.s Generating offset file out/asm-offsets.h Compiling (16bit) out/code16.o Compiling whole program out/ccode32flat.o Compiling whole program out/code32seg.o Building ld scripts (version "pre-0.6.3-20110930_094155-canardo") Fixed space: 0xe05b-0x10000 total: 8101 slack: 11 Percent slack: 0.1% 16bit size: 40480 32bit segmented size: 1436 32bit flat size: 13716 32bit flat init size: 61968 Linking out/rom16.o Stripping out/rom16.strip.o Linking out/rom32seg.o Stripping out/rom32seg.strip.o Linking out/rom.o Prepping out/bios.bin Total size: 119984 Fixed: 55644 Free: 11088 (used 91.5% of 128KiB rom)
Bjørn
On Fri, 2011-09-30 at 09:44 +0200, Bjørn Mork wrote:
Ian Campbell ijc@hellion.org.uk writes:
On Thu, 2011-09-29 at 19:36 -0400, Kevin O'Connor wrote:
I've just tried to build and got:
Linking out/rom.o `.discard.var16.src/stacks.c.188' referenced in section `.text.finish_preempt.1580' of out/code32flat.o: defined in discarded section `.discard.var16.src/stacks.c.188' of out/code32flat.o
Ughh - this is likely an issue with gcc's -combine option. What OS and/or gcc/ld version are you using?
It is Debian Squeeze.
$ gcc --version gcc (Debian 4.4.5-8) 4.4.5 $ ld --version GNU ld (GNU Binutils for Debian) 2.20.1-system.20100303
Then I don't think that can be the (only) cause. I also use Debian Squeeze with those exact versions, and do not experience the problem:
bjorn@canardo:/usr/local/src/git/seabios$ git branch --contains 533b6286c
- master
bjorn@canardo:/usr/local/src/git/seabios$ make distclean bjorn@canardo:/usr/local/src/git/seabios$ make Build default config
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.
Ian.
Ian Campbell ijc@hellion.org.uk writes:
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.
Right. Yes, I can confirm that causes the problem for me as well.
Bjørn
On Fri, Sep 30, 2011 at 10:05:54AM +0100, Ian Campbell wrote:
On Fri, 2011-09-30 at 09:44 +0200, Bjørn Mork wrote:
Ian Campbell ijc@hellion.org.uk writes:
On Thu, 2011-09-29 at 19:36 -0400, Kevin O'Connor wrote:
I've just tried to build and got:
Linking out/rom.o `.discard.var16.src/stacks.c.188' referenced in section `.text.finish_preempt.1580' of out/code32flat.o: defined in discarded section `.discard.var16.src/stacks.c.188' of out/code32flat.o
Ughh - this is likely an issue with gcc's -combine option. What OS and/or gcc/ld version are you using?
It is Debian Squeeze.
$ gcc --version gcc (Debian 4.4.5-8) 4.4.5 $ ld --version GNU ld (GNU Binutils for Debian) 2.20.1-system.20100303
Then I don't think that can be the (only) cause. I also use Debian Squeeze with those exact versions, and do not experience the problem:
bjorn@canardo:/usr/local/src/git/seabios$ git branch --contains 533b6286c
- master
bjorn@canardo:/usr/local/src/git/seabios$ make distclean bjorn@canardo:/usr/local/src/git/seabios$ make Build default config
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?
-Kevin
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 \
On Fri, 2011-09-30 at 07:31 -0400, Kevin O'Connor wrote:
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?
It does. FYI without the override COMPSTRAT=0.
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.
Which it does. Thanks.
Ian.