[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 07/44] tcg/ppc: Ensure _CALL_SYSV is set for 32-bit ELF
From: |
Richard Henderson |
Subject: |
[PULL 07/44] tcg/ppc: Ensure _CALL_SYSV is set for 32-bit ELF |
Date: |
Mon, 13 Sep 2021 17:14:19 -0700 |
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>
---
tcg/ppc/tcg-target.c.inc | 21 ++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)
diff --git a/tcg/ppc/tcg-target.c.inc b/tcg/ppc/tcg-target.c.inc
index 2202ce017e..5e1fac914a 100644
--- a/tcg/ppc/tcg-target.c.inc
+++ b/tcg/ppc/tcg-target.c.inc
@@ -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
--
2.25.1
- [PULL 00/44] tcg patch queue, v2, Richard Henderson, 2021/09/13
- [PULL 01/44] accel/tcg: Add DisasContextBase argument to translator_ld*, Richard Henderson, 2021/09/13
- [PULL 03/44] tcg/i386: Split P_VEXW from P_REXW, Richard Henderson, 2021/09/13
- [PULL 06/44] tcg/ppc: Replace TCG_TARGET_CALL_DARWIN with _CALL_DARWIN, Richard Henderson, 2021/09/13
- [PULL 02/44] accel/tcg: Clear PAGE_WRITE before translation, Richard Henderson, 2021/09/13
- [PULL 04/44] accel/tcg: remove redundant TCG_KICK_PERIOD define, Richard Henderson, 2021/09/13
- [PULL 09/44] target/avr: Remove pointless use of CONFIG_USER_ONLY definition, Richard Henderson, 2021/09/13
- [PULL 05/44] tcg: Remove tcg_global_reg_new defines, Richard Henderson, 2021/09/13
- [PULL 10/44] target/i386: Restrict sysemu-only fpu_helper helpers, Richard Henderson, 2021/09/13
- [PULL 08/44] tcg/arm: Fix tcg_out_vec_op function signature, Richard Henderson, 2021/09/13
- [PULL 07/44] tcg/ppc: Ensure _CALL_SYSV is set for 32-bit ELF,
Richard Henderson <=
- [PULL 21/44] target/microblaze: Restrict cpu_exec_interrupt() handler to sysemu, Richard Henderson, 2021/09/13
- [PULL 15/44] target/arm: Restrict cpu_exec_interrupt() handler to sysemu, Richard Henderson, 2021/09/13
- [PULL 18/44] target/i386: Restrict cpu_exec_interrupt() handler to sysemu, Richard Henderson, 2021/09/13
- [PULL 25/44] target/ppc: Restrict cpu_exec_interrupt() handler to sysemu, Richard Henderson, 2021/09/13
- [PULL 24/44] target/openrisc: Restrict cpu_exec_interrupt() handler to sysemu, Richard Henderson, 2021/09/13
- [PULL 28/44] target/sparc: Restrict cpu_exec_interrupt() handler to sysemu, Richard Henderson, 2021/09/13
- [PULL 14/44] target/alpha: Restrict cpu_exec_interrupt() handler to sysemu, Richard Henderson, 2021/09/13
- [PULL 11/44] target/i386: Simplify TARGET_X86_64 #ifdef'ry, Richard Henderson, 2021/09/13
- [PULL 16/44] target/cris: Restrict cpu_exec_interrupt() handler to sysemu, Richard Henderson, 2021/09/13
- [PULL 13/44] accel/tcg: Rename user-mode do_interrupt hack as fake_user_interrupt, Richard Henderson, 2021/09/13