As a follow up to the first patch "[PATCH] Add check if `libgcc` is available 
and link `winpthreads` against it instead of `fakelib`" I am sending another 
possibility how to overcome the undefined references of to outline atomics LSE 
intrinsic functions for `aarch64-w64-mingw32` GCC build that adds 
`-mno-outline-atomics` flag to build of `mingw-w64-crt` and 
`mingw-w64-libraries/winpthreads`. Note that the flag is required for both 
libraries.

---
 mingw-w64-crt/Makefile.am                    | 1 +
 mingw-w64-libraries/winpthreads/Makefile.am  | 1 +
 mingw-w64-libraries/winpthreads/configure.ac | 7 +++++++
 3 files changed, 9 insertions(+)

diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index 97ab3b474..fd3e7ae1b 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -23,6 +23,7 @@ AM_CPPFLAGS=$(sysincludes)
 AM_CFLAGS=-pipe -std=gnu99 -D_CRTBLD -D_WIN32_WINNT=0x0f00 
-D__MSVCRT_VERSION__=0x600 -D__USE_MINGW_ANSI_STDIO=0 @IMAGEBASE_CFLAGS@ 
@CFGUARD_CFLAGS@ @ADD_C_CXX_WARNING_FLAGS@ @ADD_C_ONLY_WARNING_FLAGS@
 AM_CXXFLAGS=@ADD_C_CXX_WARNING_FLAGS@ @ADD_CXX_ONLY_WARNING_FLAGS@
 CPPFLAGSARM32=-mfpu=vfpv3
+CPPFLAGSARM64=-mno-outline-atomics
 CPPFLAGS32=-m32 -masm=att
 CPPFLAGS64=-m64 -masm=att
 AM_DLLTOOLFLAGS=-k --as=$(AS) --output-lib $@
diff --git a/mingw-w64-libraries/winpthreads/Makefile.am 
b/mingw-w64-libraries/winpthreads/Makefile.am
index 54eca7b81..07f22d91d 100644
--- a/mingw-w64-libraries/winpthreads/Makefile.am
+++ b/mingw-w64-libraries/winpthreads/Makefile.am
@@ -18,6 +18,7 @@ if MSVC
 AM_CFLAGS += -nologo
 libwinpthread_la_CPPFLAGS += -D_CRT_NONSTDC_NO_WARNINGS
 else
+libwinpthread_la_CFLAGS = @HOST_CFLAGS@
 libwinpthread_la_CPPFLAGS += -D__USE_MINGW_ANSI_STDIO=0
 libwinpthread_la_LDFLAGS += -L$(builddir)/fakelib -Wc,-no-pthread
 EXTRA_libwinpthread_la_DEPENDENCIES = fakelib/libgcc.a  fakelib/libgcc_eh.a  
fakelib/libgcc_s.a
diff --git a/mingw-w64-libraries/winpthreads/configure.ac 
b/mingw-w64-libraries/winpthreads/configure.ac
index 47be2d6cc..22f7852b3 100644
--- a/mingw-w64-libraries/winpthreads/configure.ac
+++ b/mingw-w64-libraries/winpthreads/configure.ac
@@ -19,6 +19,13 @@ AC_PROG_CC
 AM_PROG_AS
 AM_PROG_AR
 
+case $host in
+  aarch64-*)
+    HOST_CFLAGS="-mno-outline-atomics"
+  ;;
+esac
+AC_SUBST([HOST_CFLAGS])
+
 AS_CASE([$CC],
   [*cl|*cl.exe],
     [RC="$am_aux_dir/windres-rc rc.exe"
-- 
2.34.1



_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to