tcg/ppc: Define _CALL_AIX for clang on ppc64(be)

Restructure the ifdef ladder, separating 64-bit from 32-bit,
and ensure _CALL_AIX is set for ELF v1.  Fixes the build for
ppc64 big-endian host with clang.

Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
Richard Henderson 2023-06-06 00:40:31 +03:00
parent 2be6a48673
commit dc8a8cc879

View File

@ -29,15 +29,24 @@
/* /*
* Standardize on the _CALL_FOO symbols used by GCC: * Standardize on the _CALL_FOO symbols used by GCC:
* Apple XCode does not define _CALL_DARWIN. * Apple XCode does not define _CALL_DARWIN.
* Clang defines _CALL_ELF (64-bit) but not _CALL_SYSV (32-bit). * Clang defines _CALL_ELF (64-bit) but not _CALL_SYSV or _CALL_AIX.
*/ */
#if !defined(_CALL_SYSV) && \ #if TCG_TARGET_REG_BITS == 64
!defined(_CALL_DARWIN) && \ # ifdef _CALL_AIX
!defined(_CALL_AIX) && \ /* ok */
!defined(_CALL_ELF) # elif defined(_CALL_ELF) && _CALL_ELF == 1
# if defined(__APPLE__) # define _CALL_AIX
# elif defined(_CALL_ELF) && _CALL_ELF == 2
/* ok */
# else
# error "Unknown ABI"
# endif
#else
# if defined(_CALL_SYSV) || defined(_CALL_DARWIN)
/* ok */
# elif defined(__APPLE__)
# define _CALL_DARWIN # define _CALL_DARWIN
# elif defined(__ELF__) && TCG_TARGET_REG_BITS == 32 # elif defined(__ELF__)
# define _CALL_SYSV # define _CALL_SYSV
# else # else
# error "Unknown ABI" # error "Unknown ABI"