From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
To: Pete Batard <pete@akeo.ie>
Cc: "edk2-devel@lists.01.org" <edk2-devel@lists.01.org>,
"Gao, Liming" <liming.gao@intel.com>
Subject: Re: [PATCH 0/4] Add ARM64 support for VS2017
Date: Fri, 23 Feb 2018 11:55:41 +0000 [thread overview]
Message-ID: <CAKv+Gu-5ptcFAebQ5h1DZE6UUz=C03=evsVsZHVnH4xkF66qLA@mail.gmail.com> (raw)
In-Reply-To: <20180223095003.6012-1-pete@akeo.ie>
On 23 February 2018 at 09:49, Pete Batard <pete@akeo.ie> wrote:
> This is v2, which just removes a redundant #if defined(_MSC_EXTENSIONS) in 1/4.
>
> This series completes VS2017 support by enabling AARCH64 compilation.
> * PATCH 1 targets the disabling of VS Level 4 warnings. The disabled
> warnings for ARM64 are the same as the ones for IA32, X64 and ARM.
> * PATCH 2 adds assembly source in MdePkg/Library/BaseLib for various low
> level required functions. These new assembly files were converted from
> their GCC version, with minor changes applied to make them palatable
> to the MSFT assembler.
> * PATCH 3 adds variable argument handlers for print output. This is
> achieved without relying on any external toolchain headers. However
> a call to the __va_start() compiler intrinsic function is now being
> used for the VA_START macros, which we apply for ARM as well.
> * PATCH 4 enables the selection of ARM64 in the conf templates.
> One item of note is that the build options for ARM64 are the same as
> for ARM, except for /BASE:0 which was removed to avoid error:
> 'invalid base address 0x0; ARM64 image cannot have base address below 4GB'
>
This series looks fine to me, with the exception of the error
mentioned here, which seems strange to me. It does appear to be a
toolchain issue rather than anything else, so if you can build working
binaries with these patches, it's all fine by me.
Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> With these patches, VS2017 toolchain users should be able to compile
> regular UEFI ARM64 applications using EDK2.
>
> Note however that ARM64 support requires the use of Visual Studio 2017
> Update 4 or later (a.k.a. v15.4), as native ARM64 compilation was not
> included in any version of Visual Studio prior to that.
>
> Additional notes:
>
> We tested compiling and running the full UEFI Shell with this series, as
> well as a small set of applications and drivers, and saw no issues.
> Since we also modified the VA_START() macro for ARM, we also re-ran
> similar tests for ARM, to confirm that there was no regression there.
>
> Finally, we did not test the generation of a complete QEMU ARM64 firmware
> as it requires porting a handful of assembly sources, that don't exist
> yet, and our focus is with the generation of working AARCH64 drivers or
> applications. Hopefully, this can be tackled as VS2017/ARM64 sees more
> usage...
>
> Regards,
>
> /Pete
>
> Pete Batard (4):
> MdePkg: Disable some Level 4 warnings for VS2017/ARM64
> MdePkg/Library/BaseLib: Enable VS2017/ARM64 builds
> MdePkg/Include: Add VA list support for VS2017/ARM64
> BaseTools/Conf: Add VS2017/ARM64 support
>
> BaseTools/Conf/build_rule.template | 2 +-
> BaseTools/Conf/tools_def.template | 32 ++++++-
> MdePkg/Include/AArch64/ProcessorBind.h | 53 +++++++++-
> MdePkg/Include/Base.h | 7 +-
> MdePkg/Library/BaseLib/AArch64/CpuBreakpoint.asm | 39 ++++++++
> MdePkg/Library/BaseLib/AArch64/DisableInterrupts.asm | 37 +++++++
> MdePkg/Library/BaseLib/AArch64/EnableInterrupts.asm | 37 +++++++
> MdePkg/Library/BaseLib/AArch64/GetInterruptsState.asm | 49 ++++++++++
> MdePkg/Library/BaseLib/AArch64/MemoryFence.asm | 38 ++++++++
> MdePkg/Library/BaseLib/AArch64/SetJumpLongJump.asm | 101 ++++++++++++++++++++
> MdePkg/Library/BaseLib/AArch64/SwitchStack.asm | 69 +++++++++++++
> MdePkg/Library/BaseLib/BaseLib.inf | 8 ++
> 12 files changed, 463 insertions(+), 9 deletions(-)
> create mode 100644 MdePkg/Library/BaseLib/AArch64/CpuBreakpoint.asm
> create mode 100644 MdePkg/Library/BaseLib/AArch64/DisableInterrupts.asm
> create mode 100644 MdePkg/Library/BaseLib/AArch64/EnableInterrupts.asm
> create mode 100644 MdePkg/Library/BaseLib/AArch64/GetInterruptsState.asm
> create mode 100644 MdePkg/Library/BaseLib/AArch64/MemoryFence.asm
> create mode 100644 MdePkg/Library/BaseLib/AArch64/SetJumpLongJump.asm
> create mode 100644 MdePkg/Library/BaseLib/AArch64/SwitchStack.asm
>
> --
> 2.9.3.windows.2
>
next prev parent reply other threads:[~2018-02-23 11:49 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-23 9:49 [PATCH 0/4] Add ARM64 support for VS2017 Pete Batard
2018-02-23 9:50 ` [PATCH 1/4] MdePkg: Disable some Level 4 warnings for VS2017/ARM64 Pete Batard
2018-02-23 9:50 ` [PATCH 2/4] MdePkg/Library/BaseLib: Enable VS2017/ARM64 builds Pete Batard
2018-02-23 9:50 ` [PATCH 3/4] MdePkg/Include: Add VA list support for VS2017/ARM64 Pete Batard
2018-02-23 9:50 ` [PATCH 4/4] BaseTools/Conf: Add VS2017/ARM64 support Pete Batard
2018-02-23 11:55 ` Ard Biesheuvel [this message]
2018-02-23 13:14 ` [PATCH 0/4] Add ARM64 support for VS2017 Pete Batard
2018-03-15 6:15 ` Gao, Liming
2018-03-15 9:28 ` Pete Batard
2018-03-16 8:24 ` Gao, Liming
2018-03-16 11:03 ` Pete Batard
2018-03-16 15:56 ` Gao, Liming
2018-03-16 16:11 ` Pete Batard
2018-03-16 16:31 ` Gao, Liming
2018-03-16 16:35 ` Pete Batard
2018-03-19 9:07 ` Gao, Liming
-- strict thread matches above, loose matches on Subject: below --
2018-02-14 13:08 Pete Batard
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-list 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='CAKv+Gu-5ptcFAebQ5h1DZE6UUz=C03=evsVsZHVnH4xkF66qLA@mail.gmail.com' \
--to=devel@edk2.groups.io \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox