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
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public