From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:40523) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UDbNj-0006oX-Lk for qemu-devel@nongnu.org; Thu, 07 Mar 2013 09:01:23 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UDbNb-0000xs-Ok for qemu-devel@nongnu.org; Thu, 07 Mar 2013 09:01:15 -0500 From: Don Slutz Message-ID: <51389D9B.4010000@terremark.com> Date: Thu, 7 Mar 2013 09:00:59 -0500 MIME-Version: 1.0 References: <24E144B8C0207547AD09C467A8259F7557B2BE14@lisa.maurer-it.com> <20130306231208.GA17594@ohm.aurel32.net> <20130307005351.GA19296@morn.localdomain> <20130307084304.GA17400@ohm.aurel32.net> <51388FD1.2000201@terremark.com> In-Reply-To: <51388FD1.2000201@terremark.com> Content-Type: multipart/alternative; boundary="------------040303030908030505020506" Subject: Re: [Qemu-devel] problems with freeBSD List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Aurelien Jarno Cc: "qemu-devel@nongnu.org" , Kevin O'Connor , seabios@seabios.org, qemu-stable@nongnu.org, Dietmar Maurer --------------040303030908030505020506 Content-Type: text/plain; charset="ISO-8859-15"; format=flowed Content-Transfer-Encoding: 7bit On 03/07/13 08:02, Don Slutz wrote: > On 03/07/13 03:43, Aurelien Jarno wrote: >> On Wed, Mar 06, 2013 at 07:53:51PM -0500, Kevin O'Connor wrote: >>> >On Thu, Mar 07, 2013 at 12:12:08AM +0100, Aurelien Jarno wrote: >>>> > >On Wed, Mar 06, 2013 at 08:21:11AM +0000, Dietmar Maurer wrote: > [snip] >>>> Maybe I am doing something wrong or there is a bug in my toolchain >>>> (Debian Sid). It would be nice if someone could try to reproduce >>>> that on another distro/system. >> -- Aurelien Jarno GPG: 1024D/F1BCDB73 aurelien@aurel32.net >> http://www.aurel32.net > > I reproduced this on "Fedora release 17 (Beefy Miracle)" > 3.7.3-101.fc17.x86_64 doing the steps provided. > -Don Slutz Turns out that this is not the normal kind of issue. Newer seabios works, older does not: good * 88cb66e (HEAD, tag: rel-1.7.2.1, origin/1.7.2-stable, 1.7.2-stable) seabios: Add a dummy PCI slot to irq mapping funct good * 985a9d3 seabios q35: Add new PCI slot to irq routing function good * 2b57726 seabios q35: Enable all PIRQn IRQs at startup good * e5fe4f9 Verify CC is valid during build tests. good * 4219149 build: Don't require $(OUT) to be a sub-directory of the main directory. bad * d75c22f Fix Makefile - don't reference "out/" directly, instead use "$(OUT)". bad * 12e8199 USB-EHCI: Fix null pointer assignment bad * f396871 Update tools/acpi_extract.py to handle iasl 20130117 release. bad * 4bd8aeb (tag: rel-1.7.2) vgabios: implement AX=1120H..1124H functions good: Version: rel-1.7.2-4-g4219149-20130307_085117-don-lt.don.CloudSwitch.com Fixed space: 0xe05b-0x10000 total: 8101 slack: 5 Percent slack: 0.1% 16bit size: 39856 32bit segmented size: 1430 32bit flat size: 18778 32bit flat init size: 62400 Lowmem size: 2176 bad: Version: rel-1.7.2-3-gd75c22f-20130307_085345-don-lt.don.CloudSwitch.com Fixed space: 0xe05b-0x10000 total: 8101 slack: 5 Percent slack: 0.1% 16bit size: 39808 32bit segmented size: 1430 32bit flat size: 18778 32bit flat init size: 62400 Lowmem size: 2176 The 16bit size change is the only output change. The changed that fixed it: commit 4219149ad2b783abfa61e80e9e9f6910db0c76c9 Author: Kevin O'Connor Date: Sun Feb 17 10:56:10 2013 -0500 build: Don't require $(OUT) to be a sub-directory of the main directory. Remove references to "../" and "out/" from the build so that "make OUT=/a/b/c/" will work. Signed-off-by: Kevin O'Connor diff --git a/Makefile b/Makefile index a482c94..20da6d0 100644 --- a/Makefile +++ b/Makefile @@ -84,7 +84,7 @@ vpath %.S src vgasrc ################ Common build rules # Verify the build environment works. -TESTGCC:=$(shell CC="$(CC)" LD="$(LD)" IASL="$(IASL)" tools/test-build.sh) +TESTGCC:=$(shell OUT="$(OUT)" CC="$(CC)" LD="$(LD)" IASL="$(IASL)" tools/test-build.sh) ifeq "$(TESTGCC)" "-1" $(error "Please upgrade the build environment") endif @@ -97,7 +97,7 @@ endif # Do a whole file compile by textually including all C code. define whole-compile @echo " Compiling whole program $3" -$(Q)printf '$(foreach i,$2,#include "../$i"\n)' > $3.tmp.c +$(Q)printf '$(foreach i,$2,#include "$(CURDIR)/$i"\n)' > $3.tmp.c $(Q)$(CC) $1 $(CFLAGSWHOLE) -c $3.tmp.c -o $3 endef diff --git a/src/Kconfig b/src/Kconfig index 0b112ed..2c9100d 100644 --- a/src/Kconfig +++ b/src/Kconfig @@ -367,7 +367,7 @@ menu "BIOS Tables" Support generation of ACPI tables. endmenu -source ../vgasrc/Kconfig +source vgasrc/Kconfig menu "Debugging" config DEBUG_LEVEL diff --git a/tools/test-build.sh b/tools/test-build.sh index 7bd6d1f..ce0aca9 100755 --- a/tools/test-build.sh +++ b/tools/test-build.sh @@ -14,13 +14,13 @@ if [ $? -ne 0 ]; then exit 0 fi -mkdir -p out -TMPFILE1=out/tmp_testcompile1.c -TMPFILE1o=out/tmp_testcompile1.o -TMPFILE1_ld=out/tmp_testcompile1.lds -TMPFILE2=out/tmp_testcompile2.c -TMPFILE2o=out/tmp_testcompile2.o -TMPFILE3o=out/tmp_testcompile3.o +mkdir -p ${OUT} +TMPFILE1=${OUT}/tmp_testcompile1.c +TMPFILE1o=${OUT}/tmp_testcompile1.o +TMPFILE1_ld=${OUT}/tmp_testcompile1.lds +TMPFILE2=${OUT}/tmp_testcompile2.c +TMPFILE2o=${OUT}/tmp_testcompile2.o +TMPFILE3o=${OUT}/tmp_testcompile3.o # Test if ld's alignment handling is correct. This is a known problem # with the linker that ships with Ubuntu 11.04. -Don Slutz --------------040303030908030505020506 Content-Type: text/html; charset="ISO-8859-15" Content-Transfer-Encoding: 8bit
On 03/07/13 08:02, Don Slutz wrote:
On 03/07/13 03:43, Aurelien Jarno wrote:
On Wed, Mar 06, 2013 at 07:53:51PM -0500, Kevin O'Connor wrote:
> On Thu, Mar 07, 2013 at 12:12:08AM +0100, Aurelien Jarno wrote:
> > On Wed, Mar 06, 2013 at 08:21:11AM +0000, Dietmar Maurer wrote:
[snip]
Maybe I am doing something wrong or there is a bug in my toolchain (Debian Sid). It would be nice if someone could try to reproduce that on another distro/system.
-- Aurelien Jarno GPG: 1024D/F1BCDB73 aurelien@aurel32.net http://www.aurel32.net

I reproduced this on "Fedora release 17 (Beefy Miracle)" 3.7.3-101.fc17.x86_64 doing the steps provided.
   -Don Slutz

Turns out that this is not the normal kind of issue.  Newer seabios works, older does not:

good   * 88cb66e (HEAD, tag: rel-1.7.2.1, origin/1.7.2-stable, 1.7.2-stable) seabios: Add a dummy PCI slot to irq mapping funct
good   * 985a9d3 seabios q35: Add new PCI slot to irq routing function
good   * 2b57726 seabios q35: Enable all PIRQn IRQs at startup
good   * e5fe4f9 Verify CC is valid during build tests.
good   * 4219149 build: Don't require $(OUT) to be a sub-directory of the main directory.
bad    * d75c22f Fix Makefile - don't reference "out/" directly, instead use "$(OUT)".
bad    * 12e8199 USB-EHCI: Fix null pointer assignment
bad    * f396871 Update tools/acpi_extract.py to handle iasl 20130117 release.
bad    * 4bd8aeb (tag: rel-1.7.2) vgabios: implement AX=1120H..1124H functions


good:
Version: rel-1.7.2-4-g4219149-20130307_085117-don-lt.don.CloudSwitch.com
Fixed space: 0xe05b-0x10000  total: 8101  slack: 5  Percent slack: 0.1%
16bit size:           39856
32bit segmented size: 1430
32bit flat size:      18778
32bit flat init size: 62400
Lowmem size:          2176

bad:
Version: rel-1.7.2-3-gd75c22f-20130307_085345-don-lt.don.CloudSwitch.com
Fixed space: 0xe05b-0x10000  total: 8101  slack: 5  Percent slack: 0.1%
16bit size:           39808
32bit segmented size: 1430
32bit flat size:      18778
32bit flat init size: 62400
Lowmem size:          2176


The 16bit size change is the only output change.

The changed that fixed it:

commit 4219149ad2b783abfa61e80e9e9f6910db0c76c9
Author: Kevin O'Connor <kevin@koconnor.net>
Date:   Sun Feb 17 10:56:10 2013 -0500

    build: Don't require $(OUT) to be a sub-directory of the main directory.
   
    Remove references to "../" and "out/" from the build so that "make
    OUT=/a/b/c/" will work.
   
    Signed-off-by: Kevin O'Connor <kevin@koconnor.net>

diff --git a/Makefile b/Makefile
index a482c94..20da6d0 100644
--- a/Makefile
+++ b/Makefile
@@ -84,7 +84,7 @@ vpath %.S src vgasrc
 ################ Common build rules
 
 # Verify the build environment works.
-TESTGCC:=$(shell CC="$(CC)" LD="$(LD)" IASL="$(IASL)" tools/test-build.sh)
+TESTGCC:=$(shell OUT="$(OUT)" CC="$(CC)" LD="$(LD)" IASL="$(IASL)" tools/test-build.sh)
 ifeq "$(TESTGCC)" "-1"
 $(error "Please upgrade the build environment")
 endif
@@ -97,7 +97,7 @@ endif
 # Do a whole file compile by textually including all C code.
 define whole-compile
 @echo "  Compiling whole program $3"
-$(Q)printf '$(foreach i,$2,#include "../$i"\n)' > $3.tmp.c
+$(Q)printf '$(foreach i,$2,#include "$(CURDIR)/$i"\n)' > $3.tmp.c
 $(Q)$(CC) $1 $(CFLAGSWHOLE) -c $3.tmp.c -o $3
 endef
 
diff --git a/src/Kconfig b/src/Kconfig
index 0b112ed..2c9100d 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -367,7 +367,7 @@ menu "BIOS Tables"
             Support generation of ACPI tables.
 endmenu
 
-source ../vgasrc/Kconfig
+source vgasrc/Kconfig
 
 menu "Debugging"
     config DEBUG_LEVEL
diff --git a/tools/test-build.sh b/tools/test-build.sh
index 7bd6d1f..ce0aca9 100755
--- a/tools/test-build.sh
+++ b/tools/test-build.sh
@@ -14,13 +14,13 @@ if [ $? -ne 0 ]; then
     exit 0
 fi
 
-mkdir -p out
-TMPFILE1=out/tmp_testcompile1.c
-TMPFILE1o=out/tmp_testcompile1.o
-TMPFILE1_ld=out/tmp_testcompile1.lds
-TMPFILE2=out/tmp_testcompile2.c
-TMPFILE2o=out/tmp_testcompile2.o
-TMPFILE3o=out/tmp_testcompile3.o
+mkdir -p ${OUT}
+TMPFILE1=${OUT}/tmp_testcompile1.c
+TMPFILE1o=${OUT}/tmp_testcompile1.o
+TMPFILE1_ld=${OUT}/tmp_testcompile1.lds
+TMPFILE2=${OUT}/tmp_testcompile2.c
+TMPFILE2o=${OUT}/tmp_testcompile2.o
+TMPFILE3o=${OUT}/tmp_testcompile3.o
 
 # Test if ld's alignment handling is correct.  This is a known problem
 # with the linker that ships with Ubuntu 11.04.

  -Don Slutz
--------------040303030908030505020506--