Re: [PATCH v2] configure: Avoid clobbering x18 on arm64 when building with clang
On Sat, 24 Jun 2017, André Hentschel wrote:
Am 21.06.2017 um 12:39 schrieb Martin Storsjo:
On aarch64/arm64, clang/LLVM feels free to use x18 for normal code generation on linux (while the register is reserved on iOS/darwin). For windows/arm64, this register must not be clobbered.
If targeting arm64, check for the clang cflags that allows this register to be left untouched.
This makes sure that wine for aarch64 built with clang doesn't crash immediately on startup.
Signed-off-by: Martin Storsjo <martin(a)martin.st> --- Now with the sign-off included, which was forgotten in v1. --- configure.ac | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/configure.ac b/configure.ac index 7ae29f7..5b5a1d8 100644 --- a/configure.ac +++ b/configure.ac @@ -179,6 +179,11 @@ case $host in CFLAGS="$CFLAGS -marm" AC_SUBST(TARGETFLAGS,"-marm") ;; + aarch64*) + # Clang needs these flags in order not to clobber the x18 register + WINE_TRY_CFLAGS([-Xclang -target-feature -Xclang +reserve-x18], + [CFLAGS="$CFLAGS -Xclang -target-feature -Xclang +reserve-x18"]) + ;; i[[3456789]]86*) enable_win16=${enable_win16:-yes} ;;
I think it's worthwhile adding it
Signed-off-by: André Hentschel <nerv(a)dawncrow.de>
FWIW, in case Alexandre also reconsiders merging it since you think it's worthwhile adding it - I reposted a v3, using the gcc compatible flag syntax and with an improved commit message. // Martin
participants (1)
-
Martin Storsjö