The DLL import/export mingw implementation, originally from ix86, requires minor adjustments to be compatible with AArch64.
gcc/ChangeLog: * config/mingw/mingw32.h (defined): Use the correct DllMainCRTStartup entry function. * config/mingw/winnt-dll.cc (defined): Exclude ix86-related code. --- gcc/config/mingw/mingw32.h | 2 +- gcc/config/mingw/winnt-dll.cc | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/gcc/config/mingw/mingw32.h b/gcc/config/mingw/mingw32.h index 08f1b5f0696..efe777051b4 100644 --- a/gcc/config/mingw/mingw32.h +++ b/gcc/config/mingw/mingw32.h @@ -79,7 +79,7 @@ along with GCC; see the file COPYING3. If not see #endif #undef SUB_LINK_ENTRY -#if TARGET_64BIT_DEFAULT +#if TARGET_64BIT_DEFAULT || defined (TARGET_AARCH64_MS_ABI) #define SUB_LINK_ENTRY SUB_LINK_ENTRY64 #else #define SUB_LINK_ENTRY SUB_LINK_ENTRY32 diff --git a/gcc/config/mingw/winnt-dll.cc b/gcc/config/mingw/winnt-dll.cc index 349ade6f5c0..294361fab4c 100644 --- a/gcc/config/mingw/winnt-dll.cc +++ b/gcc/config/mingw/winnt-dll.cc @@ -206,9 +206,13 @@ legitimize_pe_coff_symbol (rtx addr, bool inreg) } } +#if !defined (TARGET_AARCH64_MS_ABI) + if (ix86_cmodel != CM_LARGE_PIC && ix86_cmodel != CM_MEDIUM_PIC) return NULL_RTX; +#endif + if (GET_CODE (addr) == SYMBOL_REF && !is_imported_p (addr) && SYMBOL_REF_EXTERNAL_P (addr) -- 2.25.1