Skip to contentSkip to conversation

OvmfPkg/build.sh: Make GCC5 the default toolchain, catch GCC43 and earlier]

PATCH In review Konrad Rzeszutek Wilk 3 participants 6 messages Nov 25, 2016 – Nov 29, 2016

lore
Share & tools
lore
#0 lore raw

PATCH v3 1/1 OvmfPkg/build.sh: Make GCC5 the default toolchain, catch GCC43 and earlier]

Hey Wei, Anthony,

Are you guys OK pushing this commit: 2667ad40919a in the
git://xenbits.xen.org/ovmf.git

tree? Without this I cannot build Xen 4.8 with TianoCore (--enable-ovmf).

Thanks.
----- Forwarded message from Laszlo Ersek <[email protected]> -----

Date: Thu, 24 Nov 2016 09:51:29 +0100
From: Laszlo Ersek <[email protected]>
To: Konrad Rzeszutek Wilk <[email protected]>, [email protected]
Cc: [email protected]
Subject: Re: [Xen-devel] [PATCH v3] OvmfPkg/build.sh: Make GCC5 the default toolchain, catch GCC43 and earlier
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.0

Quoted 45 lines · Konrad Rzeszutek Wilk

v2:
* Changes suggested by Laszlo:
- change the catch-all (*) to GCC5, from GCC44
- remove the (5.*.*) pattern from GCC49
- generate error for GCC < 4.4

In v3, also generate error for really GCC < 4.4, like GCC 1.

Bugzilla: https://bugzilla.tianocore.org/show_bug.cgi?id=62
Contributed-under: TianoCore Contribution Agreement 1.0

---
v1: Initial
v2: Redo it per Laszlo suggestions
v3: Fix up commit message per Jordan
Also generate error for prehistoric versions of GCC, like 1.

---
 OvmfPkg/build.sh | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)
OvmfPkg/build.sh +7 -0
index eb5eb73..95fe8fb 100755
@@ -83,6 +83,13 @@ case `uname` in
   Linux*)
     gcc_version=$(gcc -v 2>&1 | tail -1 | awk '{print $3}')
     case $gcc_version in
+      [1-3].*|4.[0-3].*)
+        echo OvmfPkg requires GCC4.4 or later
+        exit 1
+        ;;
+      4.4.*)
+        TARGET_TOOLS=GCC44
+        ;;
       4.5.*)
         TARGET_TOOLS=GCC45
         ;;
@@ -95,11 +102,11 @@ case `uname` in
       4.8.*)
         TARGET_TOOLS=GCC48
         ;;

OvmfPkg/build.sh case `uname` in · line 112

Quoted 10 lines
OvmfPkg/build.sh +2 -2
-      4.9.*|4.1[0-9].*|5.*.*)
+      4.9.*)
         TARGET_TOOLS=GCC49
         ;;
       *)
-        TARGET_TOOLS=GCC44
+        TARGET_TOOLS=GCC5
         ;;
     esac
 esac

(With gcc-4.8.)

Pushed as commit 2667ad40919a.

Thank you!
Laszlo

_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xen.org/xen-devel

----- End forwarded message -----

_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xen.org/xen-devel

#1 lore raw
Quoted 8 lines · Konrad Rzeszutek Wilk

Hey Wei, Anthony,

Are you guys OK pushing this commit: 2667ad40919a in the
git://xenbits.xen.org/ovmf.git

tree? Without this I cannot build Xen 4.8 with TianoCore (--enable-ovmf).

We normally don't deviate from upstream. We would need to wait for this to pass osstest pushgate, and then update Config.mk.

Wei.

_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xen.org/xen-devel

#2 lore raw
Quoted 6 lines · Wei Liu
Quoted 5 lines · Konrad Rzeszutek Wilk

Hey Wei, Anthony,

Are you guys OK pushing this commit: 2667ad40919a in the
git://xenbits.xen.org/ovmf.git

Quoted 6 lines
Quoted 3 lines

tree? Without this I cannot build Xen 4.8 with TianoCore (--enable-ovmf).

We normally don't deviate from upstream. We would need to wait for this to pass osstest pushgate, and then update Config.mk.

I see. We seem to be 791 commits behind upstream? Oh, and 770 to catch up with 2667ad40919a. Yikes.

_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xen.org/xen-devel

#3 lore raw
Quoted 11 lines · Konrad Rzeszutek Wilk
Quoted 10 lines · Wei Liu
Quoted 8 lines · Konrad Rzeszutek Wilk

Hey Wei, Anthony,

Are you guys OK pushing this commit: 2667ad40919a in the
git://xenbits.xen.org/ovmf.git

tree? Without this I cannot build Xen 4.8 with TianoCore (--enable-ovmf).

Quoted 6 lines
Quoted 2 lines

We normally don't deviate from upstream. We would need to wait for this to pass osstest pushgate, and then update Config.mk.

I see. We seem to be 791 commits behind upstream? Oh, and 770 to catch up with 2667ad40919a. Yikes.

I see that commit has passed our pushgate. I will see what I can do.

In any case, because OVMF is still experimental and disabled by default, we used to update the commit id in stable branches as well. So they will get the latest commit at the end.

Or you can provide a custom tree when building Xen. There isn't really anything that would tie OVMF to a specific version of Xen -- at least not for now.

What is even better is that you can provide a OVMF binary direct via toolstack in this release.

Wei.

_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xen.org/xen-devel

#4 lore raw
In reply to Konrad Rzeszutek Wilk
Quoted 7 lines · Konrad Rzeszutek Wilk

Hey Wei, Anthony,

Are you guys OK pushing this commit: 2667ad40919a in the
git://xenbits.xen.org/ovmf.git

tree? Without this I cannot build Xen 4.8 with TianoCore (--enable-ovmf).

Can you actually start a guest this OVMF (when it's build on Fedora Core 25, and built using the GCC5 toolchain)?

On Arch Linux (gcc (GCC) 6.2.1 20160830), if I build OVMF with the GCC5 toolchain, the firmware fail to boot.

For reference, I have this error:
!!!! X64 Exception Type - 06(#UD - Invalid Opcode) CPU Apic ID - 00000000 !!!!

RIP  - 000000001F26AF6B, CS  - 0000000000000038, RFLAGS - 0000000000010202
RAX  - 0000000000000001, RCX - 000000001F26AF51, RDX - 0000000000000004
RBX  - 0000000000000000, RSP - 000000001F43C510, RBP - 000000001E583D18
RSI  - 0000000000000003, RDI - 0000000000000001
R8   - 0000000000000000, R9  - 0000000000000000, R10 - 000000001E58DB98
R11  - 0000000000000002, R12 - 000000001E58D898, R13 - 0000000000000000
R14  - 000000001E58D8A0, R15 - 000000001F26D001
DS   - 0000000000000030, ES  - 0000000000000030, FS  - 0000000000000030
GS   - 0000000000000030, SS  - 0000000000000030
CR0  - 0000000080000033, CR2 - 0000000000000000, CR3 - 000000001F3DB000
CR4  - 0000000000000668, CR8 - 0000000000000000
DR0  - 0000000000000000, DR1 - 0000000000000000, DR2 - 0000000000000000
DR3  - 0000000000000000, DR6 - 00000000FFFF0FF0, DR7 - 0000000000000400

GDTR - 000000001F3C9A98 0000000000000047, LDTR - 0000000000000000
IDTR - 000000001EB0A018 0000000000000FFF, TR - 0000000000000000
FXSAVE_STATE - 000000001F43C170
!!!! Find PE image ./Build/OvmfX64/DEBUG_GCC5/X64/OvmfPkg/XenBusDxe/XenBusDxe/DEBUG/XenBusDxe.dll (ImageBase=000000001F266000, EntryPoint=000000001F2669D5) !!!!

I'll try to investigate, and report upstream.

Signature · 6 lines
Anthony PERARD

_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xen.org/xen-devel
#5 lore raw
Quoted 11 lines · Anthony PERARD
Quoted 7 lines · Konrad Rzeszutek Wilk

Hey Wei, Anthony,

Are you guys OK pushing this commit: 2667ad40919a in the
git://xenbits.xen.org/ovmf.git

tree? Without this I cannot build Xen 4.8 with TianoCore (--enable-ovmf).

Can you actually start a guest this OVMF (when it's build on Fedora Core 25, and built using the GCC5 toolchain)?

Hadn't gotten to that part yet.

Quoted 3 lines

On Arch Linux (gcc (GCC) 6.2.1 20160830), if I build OVMF with the GCC5 toolchain, the firmware fail to boot.

Yikes!

Quoted 16 lines

For reference, I have this error:
!!!! X64 Exception Type - 06(#UD - Invalid Opcode) CPU Apic ID - 00000000 !!!!

RIP  - 000000001F26AF6B, CS  - 0000000000000038, RFLAGS - 0000000000010202
RAX  - 0000000000000001, RCX - 000000001F26AF51, RDX - 0000000000000004
RBX  - 0000000000000000, RSP - 000000001F43C510, RBP - 000000001E583D18
RSI  - 0000000000000003, RDI - 0000000000000001
R8   - 0000000000000000, R9  - 0000000000000000, R10 - 000000001E58DB98
R11  - 0000000000000002, R12 - 000000001E58D898, R13 - 0000000000000000
R14  - 000000001E58D8A0, R15 - 000000001F26D001
DS   - 0000000000000030, ES  - 0000000000000030, FS  - 0000000000000030
GS   - 0000000000000030, SS  - 0000000000000030
CR0  - 0000000080000033, CR2 - 0000000000000000, CR3 - 000000001F3DB000
CR4  - 0000000000000668, CR8 - 0000000000000000
DR0  - 0000000000000000, DR1 - 0000000000000000, DR2 - 0000000000000000
DR3  - 0000000000000000, DR6 - 00000000FFFF0FF0, DR7 - 0000000000000400
Quoted 9 lines

GDTR - 000000001F3C9A98 0000000000000047, LDTR - 0000000000000000
IDTR - 000000001EB0A018 0000000000000FFF, TR - 0000000000000000
FXSAVE_STATE - 000000001F43C170
!!!! Find PE image ./Build/OvmfX64/DEBUG_GCC5/X64/OvmfPkg/XenBusDxe/XenBusDxe/DEBUG/XenBusDxe.dll (ImageBase=000000001F266000, EntryPoint=000000001F2669D5) !!!!

I'll try to investigate, and report upstream.

Signature · 1 line
Anthony PERARD

_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xen.org/xen-devel