From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: Re: [PATCH v2] raisin: enable ovmf build for arm64 Date: Wed, 14 Oct 2015 17:11:42 +0100 Message-ID: <1444839102.23192.231.camel@citrix.com> References: <1444838247-30253-2-git-send-email-stefano.stabellini@eu.citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1444838247-30253-2-git-send-email-stefano.stabellini@eu.citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Stefano Stabellini Cc: xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org On Wed, 2015-10-14 at 16:57 +0100, Stefano Stabellini wrote: > Disable ovmf build on x86_32: it does not work, the code was already > forcing a x86_64 build. FYI osstest builds OVMF (64-bit) in its build-i386 jobs just fine. e.g. in [0]. That's useful in 32-on-64 type scenarios, maybe raisin doesn't want to support those? The build run for both x86's in xen.git is just: OvmfPkg/build.sh -a X64 -b $(TARGET) -n 4 cp Build/OvmfX64/$(TARGET)_GCC*/FV/OVMF.fd ovmf.bin Which looks pretty close to what you have below... Ian [0] http://logs.test-lab.xenproject.org/osstest/logs/62946/build-i386/5.ts-xen-build.log > > --- > > Changes in v2: > - disable x86_32 build (it doesn't work, but it wasn't explicitly > disabled) > - remove export GCC48_AARCH64_PREFIX= as it is not necessary > - add a comment on why we are using -t GCC48 > --- > components/ovmf | 47 +++++++++++++++++++++++++++++++---------------- > 1 file changed, 31 insertions(+), 16 deletions(-) > > diff --git a/components/ovmf b/components/ovmf > index ffdde19..48091ac 100644 > --- a/components/ovmf > +++ b/components/ovmf > @@ -1,24 +1,28 @@ > #!/usr/bin/env bash > > function ovmf_skip() { > - if [[ $RAISIN_ARCH != "x86_64" && $RAISIN_ARCH != "x86_32" ]] > - then > - return 0 > - else > - return 1 > - fi > + case $RAISIN_ARCH in > + "arm32"|"x86_32" ) > + return 0 > + ;; > + "arm64"|"x86_64" ) > + return 1 > + ;; > + esac > } > > function ovmf_check_package() { > - local DEP_Debian_common="build-essential nasm uuid-dev python iasl" > - local DEP_Debian_x86_32="$DEP_Debian_common" > - local DEP_Debian_x86_64="$DEP_Debian_common" > - local DEP_Debian_arm32="$DEP_Debian_common" > + local DEP_Debian_common="build-essential uuid-dev python iasl" > + local DEP_Debian_x86_64="$DEP_Debian_common nasm" > local DEP_Debian_arm64="$DEP_Debian_common" > > - local DEP_Fedora_common="make gcc gcc-c++ nasm libuuid-devel python > acpica-tools" > - local DEP_Fedora_x86_32="$DEP_Fedora_common" > - local DEP_Fedora_x86_64="$DEP_Fedora_common" > + local DEP_Fedora_common="make gcc gcc-c++ libuuid-devel python > acpica-tools" > + local DEP_Fedora_x86_64="$DEP_Fedora_common nasm" > + local DEP_Fedora_arm64="$DEP_Debian_common" > + > + local DEP_CentOS_common="$DEP_Fedora_common" > + local DEP_CentOS_x86_64="$DEP_Fedora_x86_64" > + local DEP_CentOS_arm64="$DEP_Fedora_arm64" > > verbose_echo Checking OVMF dependencies > eval check-package \$DEP_"$DISTRO"_"$RAISIN_ARCH" > @@ -30,9 +34,20 @@ function ovmf_build() { > git-checkout $OVMF_URL $OVMF_REVISION ovmf-dir > cd ovmf-dir > > - make -C BaseTools/Source/C > - OvmfPkg/build.sh -a X64 -b RELEASE -n 4 > - cp Build/OvmfX64/RELEASE_GCC*/FV/OVMF.fd ovmf.bin > + make -C BaseTools > + > + if [[ $RAISIN_ARCH = "arm64" ]] > + then > + # Just use gcc4.8 flags for now: we have to specify a gcc > + # version and the 4.8 flags are almost identical to 4.9, etc. > + bash -c "source edksetup.sh && \ > + build -a AARCH64 -t GCC48 -p ArmVirtPkg/ArmVirtXen.dsc > -b RELEASE" > + mkdir -p "$INST_DIR"/$PREFIX/lib/xen/boot > + cp Build/ArmVirtXen-AARCH64/RELEASE_GCC*/FV/XEN_EFI.fd > "$INST_DIR"/$PREFIX/lib/xen/boot/XEN_EFI.fd > + else > + OvmfPkg/build.sh -a X64 -b RELEASE -n 4 > + cp Build/OvmfX64/RELEASE_GCC*/FV/OVMF.fd ovmf.bin > + fi > > cd "$BASEDIR" > }