diff options
author | Zac Walker <zacwalker@microsoft.com> | 2024-04-11 13:38:59 +0200 |
---|---|---|
committer | Christophe Lyon <christophe.lyon@linaro.org> | 2024-05-07 16:02:34 +0000 |
commit | de2bcdaf399d3f97af6ab312893ffe089e69d42b (patch) | |
tree | 8df7d53f2af666e434f8d7c7f84be635e0e2fe1d /gcc | |
parent | 99d7d5ec8d88415a7e1f74fade0841a0ebbd0092 (diff) | |
download | gcc-de2bcdaf399d3f97af6ab312893ffe089e69d42b.zip gcc-de2bcdaf399d3f97af6ab312893ffe089e69d42b.tar.gz gcc-de2bcdaf399d3f97af6ab312893ffe089e69d42b.tar.bz2 |
Exclude i386 functionality from aarch64 build
This patch defines TARGET_AARCH64_MS_ABI in config.gcc and uses it to
exclude i386 functionality from aarch64 build and adjust MinGW headers
for AArch64 MS ABI.
gcc/ChangeLog:
* config.gcc: Define TARGET_AARCH64_MS_ABI.
* config/mingw/mingw-stdint.h (INTPTR_TYPE): Use
TARGET_AARCH64_MS_ABI to adjust MinGW headers for
AArch64 MS ABI.
(UINTPTR_TYPE): Likewise.
(defined): Likewise.
* config/mingw/mingw32.h (DEFAULT_ABI): Likewise.
(defined): Likewise.
* config/mingw/winnt.cc (defined): Use TARGET_ARM64_MS_ABI to
exclude ix86_get_callcvt.
(i386_pe_maybe_mangle_decl_assembler_name): Likewise.
(i386_pe_mangle_decl_assembler_name): Likewise.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config.gcc | 1 | ||||
-rw-r--r-- | gcc/config/mingw/mingw-stdint.h | 9 | ||||
-rw-r--r-- | gcc/config/mingw/mingw32.h | 4 | ||||
-rw-r--r-- | gcc/config/mingw/winnt.cc | 8 |
4 files changed, 19 insertions, 3 deletions
diff --git a/gcc/config.gcc b/gcc/config.gcc index f95417c..cb1bba7 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -1284,6 +1284,7 @@ aarch64-*-mingw*) esac default_use_cxa_atexit=yes user_headers_inc_next_post="${user_headers_inc_next_post} float.h" + tm_defines="${tm_defines} TARGET_AARCH64_MS_ABI=1" ;; aarch64*-wrs-vxworks*) tm_file="${tm_file} elfos.h aarch64/aarch64-elf.h" diff --git a/gcc/config/mingw/mingw-stdint.h b/gcc/config/mingw/mingw-stdint.h index c0feade..debbe82 100644 --- a/gcc/config/mingw/mingw-stdint.h +++ b/gcc/config/mingw/mingw-stdint.h @@ -46,5 +46,10 @@ along with GCC; see the file COPYING3. If not see #define UINT_FAST32_TYPE "unsigned int" #define UINT_FAST64_TYPE "long long unsigned int" -#define INTPTR_TYPE (TARGET_64BIT ? "long long int" : "int") -#define UINTPTR_TYPE (TARGET_64BIT ? "long long unsigned int" : "unsigned int") +#if defined (TARGET_AARCH64_MS_ABI) +# define INTPTR_TYPE "long long int" +# define UINTPTR_TYPE "long long unsigned int" +#else +# define INTPTR_TYPE (TARGET_64BIT ? "long long int" : "int") +# define UINTPTR_TYPE (TARGET_64BIT ? "long long unsigned int" : "unsigned int") +#endif
\ No newline at end of file diff --git a/gcc/config/mingw/mingw32.h b/gcc/config/mingw/mingw32.h index 58304fc..08f1b5f 100644 --- a/gcc/config/mingw/mingw32.h +++ b/gcc/config/mingw/mingw32.h @@ -19,7 +19,9 @@ along with GCC; see the file COPYING3. If not see <http://www.gnu.org/licenses/>. */ #undef DEFAULT_ABI -#define DEFAULT_ABI MS_ABI +#if !defined (TARGET_AARCH64_MS_ABI) +# define DEFAULT_ABI MS_ABI +#endif /* By default, target has a 80387, uses IEEE compatible arithmetic, returns float values in the 387 and needs stack probes. diff --git a/gcc/config/mingw/winnt.cc b/gcc/config/mingw/winnt.cc index 1ed38315..2a4fc03 100644 --- a/gcc/config/mingw/winnt.cc +++ b/gcc/config/mingw/winnt.cc @@ -224,6 +224,8 @@ gen_stdcall_or_fastcall_suffix (tree decl, tree id, bool fastcall) return get_identifier (new_str); } +#if !defined (TARGET_AARCH64_MS_ABI) + /* Maybe decorate and get a new identifier for the DECL of a stdcall or fastcall function. The original identifier is supplied in ID. */ @@ -250,6 +252,8 @@ i386_pe_maybe_mangle_decl_assembler_name (tree decl, tree id) return new_id; } +#endif + /* Emit an assembler directive to set symbol for DECL visibility to the visibility type VIS, which must not be VISIBILITY_DEFAULT. As for PE there is no hidden support in gas, we just warn for @@ -266,6 +270,8 @@ i386_pe_assemble_visibility (tree decl, int) "in this configuration; ignored"); } +#if !defined (TARGET_AARCH64_MS_ABI) + /* This is used as a target hook to modify the DECL_ASSEMBLER_NAME in the language-independent default hook langhooks,c:lhd_set_decl_assembler_name () @@ -278,6 +284,8 @@ i386_pe_mangle_decl_assembler_name (tree decl, tree id) return (new_id ? new_id : id); } +#endif + /* This hook behaves the same as varasm.cc/assemble_name(), but generates the name into memory rather than outputting it to a file stream. */ |