Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
tcg/ppc: Ensure _CALL_SYSV is set for 32-bit ELF
Clang only sets _CALL_ELF for ppc64, and nothing at all to specify
the ABI for ppc32.  Make a good guess based on other symbols.

Reported-by: Brad Smith <brad@comstyle.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
  • Loading branch information
rth7680 committed Sep 14, 2021
1 parent 8323604 commit 101e77c
Showing 1 changed file with 18 additions and 3 deletions.
21 changes: 18 additions & 3 deletions tcg/ppc/tcg-target.c.inc
Expand Up @@ -25,9 +25,24 @@
#include "elf.h"
#include "../tcg-pool.c.inc"

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

#ifdef _CALL_SYSV
# define TCG_TARGET_CALL_ALIGN_ARGS 1
#endif
Expand Down

0 comments on commit 101e77c

Please sign in to comment.