[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v2] raisin: enable ovmf build for arm64



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"
>  }

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.