[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 11/11] tcg/ppc: Ensure _CALL_SYSV is set for 32-bit ELF
|
From: |
Richard Henderson |
|
Subject: |
[PATCH 11/11] tcg/ppc: Ensure _CALL_SYSV is set for 32-bit ELF |
|
Date: |
Mon, 12 Jul 2021 14:55:35 -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
- [PATCH 02/11] accel/tcg: Remove unused variable in cpu_exec, (continued)
- [PATCH 02/11] accel/tcg: Remove unused variable in cpu_exec, Richard Henderson, 2021/07/12
- [PATCH 07/11] hw/pci-hist/pnv_phb4: Fix typo in pnv_phb4_ioda_write, Richard Henderson, 2021/07/12
- [PATCH 05/11] hw/audio/adlib: Remove unused variable in adlib_callback, Richard Henderson, 2021/07/12
- [PATCH 06/11] hw/ppc/spapr_events: Remove unused variable from check_exception, Richard Henderson, 2021/07/12
- [PATCH 08/11] linux-user/syscall: Remove unused variable from execve, Richard Henderson, 2021/07/12
- [PATCH 11/11] tcg/ppc: Ensure _CALL_SYSV is set for 32-bit ELF,
Richard Henderson <=
- [PATCH 09/11] tests/unit: Remove unused variable from test_io, Richard Henderson, 2021/07/12
- [PATCH 10/11] tcg/ppc: Replace TCG_TARGET_CALL_DARWIN with _CALL_DARWIN, Richard Henderson, 2021/07/12