All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kevin O'Connor <kevin@koconnor.net>
To: Christoph Egger <Christoph.Egger@amd.com>
Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
	seabios@seabios.org
Subject: Re: seabios build failure in xen tree
Date: Wed, 8 Feb 2012 20:28:18 -0500	[thread overview]
Message-ID: <20120209012818.GA476@morn.localdomain> (raw)
In-Reply-To: <4F324F2A.9000308@amd.com>

[-- Attachment #1: Type: text/plain, Size: 749 bytes --]

On Wed, Feb 08, 2012 at 11:32:10AM +0100, Christoph Egger wrote:
> On 02/08/12 02:18, Kevin O'Connor wrote:
> >We can change the seabios makefile to call these scripts with an
> >explicit $(PYTHON).
> 
> Awesome!

See the attached patch.

> >That's quite odd.  This looks data related instead of python related.
> >Try running a "make clean" and then "make" in just the seabios
> >directory.  If you still see an issue, tar up the seabios "out/"
> >directory and mail it to me.
> 
> It failed the same way.
> I sent you the tarball offlist due its size.

Looks like your version of gcc is defining sections with
.rodata.__PRETTY_FUNCTION__ - which is odd as that macro isn't used in
the code.  Does the second attached patch fix it for you?

-Kevin

[-- Attachment #2: 0001-Add-PYTHON-definition-to-Makefile.patch --]
[-- Type: text/plain, Size: 2838 bytes --]

>From 97f1ffcfac4ca382b5008a7aabfc2c300131f978 Mon Sep 17 00:00:00 2001
From: Kevin O'Connor <kevin@koconnor.net>
Date: Wed, 8 Feb 2012 20:21:29 -0500
Subject: [PATCH 1/2] Add PYTHON definition to Makefile.

Add PYTHON definition to Makefile so users can override it.  This
allows users to specify an exact python executable name to use during
the build.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
---
 Makefile |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/Makefile b/Makefile
index 0343ce5..513e8f1 100644
--- a/Makefile
+++ b/Makefile
@@ -63,6 +63,7 @@ export KCONFIG_CONFIG     := $(CURDIR)/.config
 OBJCOPY=objcopy
 OBJDUMP=objdump
 STRIP=strip
+PYTHON=python
 
 # Default targets
 -include $(KCONFIG_CONFIG)
@@ -152,7 +153,7 @@ $(OUT)romlayout16.lds: $(OUT)ccode32flat.o $(OUT)code32seg.o $(OUT)code16.o tool
 	$(Q)$(OBJDUMP) -thr $(OUT)code32flat.o > $(OUT)code32flat.o.objdump
 	$(Q)$(OBJDUMP) -thr $(OUT)code32seg.o > $(OUT)code32seg.o.objdump
 	$(Q)$(OBJDUMP) -thr $(OUT)code16.o > $(OUT)code16.o.objdump
-	$(Q)./tools/layoutrom.py $(OUT)code16.o.objdump $(OUT)code32seg.o.objdump $(OUT)code32flat.o.objdump $(OUT)romlayout16.lds $(OUT)romlayout32seg.lds $(OUT)romlayout32flat.lds
+	$(Q)$(PYTHON) ./tools/layoutrom.py $(OUT)code16.o.objdump $(OUT)code32seg.o.objdump $(OUT)code32flat.o.objdump $(OUT)romlayout16.lds $(OUT)romlayout32seg.lds $(OUT)romlayout32flat.lds
 
 # These are actually built by tools/layoutrom.py above, but by pulling them
 # into an extra rule we prevent make -j from spawning layoutrom.py 4 times.
@@ -174,7 +175,7 @@ $(OUT)bios.bin.elf $(OUT)bios.bin: $(OUT)rom.o tools/checkrom.py
 	@echo "  Prepping $@"
 	$(Q)$(OBJDUMP) -thr $< > $<.objdump
 	$(Q)$(OBJCOPY) -O binary $< $(OUT)bios.bin.raw
-	$(Q)./tools/checkrom.py $<.objdump $(OUT)bios.bin.raw $(OUT)bios.bin
+	$(Q)$(PYTHON) ./tools/checkrom.py $<.objdump $(OUT)bios.bin.raw $(OUT)bios.bin
 	$(Q)$(STRIP) -R .comment $< -o $(OUT)bios.bin.elf
 
 
@@ -204,15 +205,15 @@ $(OUT)vgabios.bin.raw: $(OUT)vgarom.o
 
 $(OUT)vgabios.bin: $(OUT)vgabios.bin.raw tools/buildrom.py
 	@echo "  Finalizing rom $@"
-	$(Q)./tools/buildrom.py $< $@
+	$(Q)$(PYTHON) ./tools/buildrom.py $< $@
 
 ####### dsdt build rules
 src/%.hex: src/%.dsl ./tools/acpi_extract_preprocess.py ./tools/acpi_extract.py
 	@echo "Compiling DSDT"
 	$(Q)cpp -P $< > $(OUT)$*.dsl.i.orig
-	$(Q)./tools/acpi_extract_preprocess.py $(OUT)$*.dsl.i.orig > $(OUT)$*.dsl.i
+	$(Q)$(PYTHON) ./tools/acpi_extract_preprocess.py $(OUT)$*.dsl.i.orig > $(OUT)$*.dsl.i
 	$(Q)iasl -l -tc -p $(OUT)$* $(OUT)$*.dsl.i
-	$(Q)./tools/acpi_extract.py $(OUT)$*.lst > $(OUT)$*.off
+	$(Q)$(PYTHON) ./tools/acpi_extract.py $(OUT)$*.lst > $(OUT)$*.off
 	$(Q)cat $(OUT)$*.off > $@
 
 $(OUT)ccode32flat.o: src/acpi-dsdt.hex src/ssdt-proc.hex src/ssdt-pcihp.hex
-- 
1.7.6.5


[-- Attachment #3: 0002-Permit-.rodata.__PRETTY_FUNCTION__.-sections-in-roms.patch --]
[-- Type: text/plain, Size: 1993 bytes --]

>From 805ede2bd35243a4298bc64bd81be6db7cf57f58 Mon Sep 17 00:00:00 2001
From: Kevin O'Connor <kevin@koconnor.net>
Date: Wed, 8 Feb 2012 20:23:36 -0500
Subject: [PATCH 2/2] Permit .rodata.__PRETTY_FUNCTION__. sections in roms.

Some versions of gcc appear to define these sections even though they
aren't used in the code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
---
 tools/layoutrom.py |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/tools/layoutrom.py b/tools/layoutrom.py
index 45738a3..86e1f33 100755
--- a/tools/layoutrom.py
+++ b/tools/layoutrom.py
@@ -147,8 +147,10 @@ def getSectionsPrefix(sections, category, prefix):
 def doLayout(sections):
     # Determine 16bit positions
     textsections = getSectionsPrefix(sections, '16', '.text.')
-    rodatasections = (getSectionsPrefix(sections, '16', '.rodata.str1.1')
-                      + getSectionsPrefix(sections, '16', '.rodata.__func__.'))
+    rodatasections = (
+        getSectionsPrefix(sections, '16', '.rodata.str1.1')
+        + getSectionsPrefix(sections, '16', '.rodata.__func__.')
+        + getSectionsPrefix(sections, '16', '.rodata.__PRETTY_FUNCTION__.'))
     datasections = getSectionsPrefix(sections, '16', '.data16.')
     fixedsections = getSectionsPrefix(sections, '16', '.fixedaddr.')
 
@@ -159,8 +161,10 @@ def doLayout(sections):
 
     # Determine 32seg positions
     textsections = getSectionsPrefix(sections, '32seg', '.text.')
-    rodatasections = (getSectionsPrefix(sections, '32seg', '.rodata.str1.1')
-                      +getSectionsPrefix(sections, '32seg', '.rodata.__func__.'))
+    rodatasections = (
+        getSectionsPrefix(sections, '32seg', '.rodata.str1.1')
+        + getSectionsPrefix(sections, '32seg', '.rodata.__func__.')
+        + getSectionsPrefix(sections, '32seg', '.rodata.__PRETTY_FUNCTION__.'))
     datasections = getSectionsPrefix(sections, '32seg', '.data32seg.')
 
     code32seg_start = setSectionsStart(
-- 
1.7.6.5


[-- Attachment #4: Type: text/plain, Size: 137 bytes --]

_______________________________________________
SeaBIOS mailing list
SeaBIOS@seabios.org
http://www.seabios.org/mailman/listinfo/seabios

  reply	other threads:[~2012-02-09  1:28 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-07 13:35 seabios build failure in xen tree Christoph Egger
2012-02-08  1:18 ` Kevin O'Connor
2012-02-08 10:32   ` [SeaBIOS] " Christoph Egger
2012-02-09  1:28     ` Kevin O'Connor [this message]
2012-02-09 10:25       ` Christoph Egger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120209012818.GA476@morn.localdomain \
    --to=kevin@koconnor.net \
    --cc=Christoph.Egger@amd.com \
    --cc=seabios@seabios.org \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.