Stripping `-lmingwex` from the Fortran standard linker flags can lead to a situation where the first `-lmsvcrt` can appear before the first `-lmingwex` for a library that consists of Fortran and C++ sources. That means that the linker picks some functions from the Windows CRT that should instead be picked from `libmingwex.a`. It took quite some time to figure out an odd behavior when calling `std::asin` with a complex double precision value with a real part larger than 1 in such a library. See also: https://octave.discourse.group/t/6026/75 Also don't strip `-lmoldname` from these flags because there is no reason to do that as far as I can tell. This essentially reverts the upstream changes from: https://lists.gnu.org/r/autoconf-patches/2021-09/msg00000.html
15 lines
636 B
Diff
15 lines
636 B
Diff
Do not strip mingw libraries from list of Fortran standard linker flags.
|
|
|
|
diff -urN autoconf-2.72/lib/autoconf/fortran.m4.orig autoconf-2.72/lib/autoconf/fortran.m4
|
|
--- autoconf-2.72/lib/autoconf/fortran.m4.orig 2024-10-30 13:31:24.456674400 +0100
|
|
+++ autoconf-2.72/lib/autoconf/fortran.m4 2024-12-11 16:08:46.415095400 +0100
|
|
@@ -705,7 +705,7 @@
|
|
-lang* | -lcrt*.o | -lc | -lgcc* | -lSystem | -libmil | -little \
|
|
|-LANG:=* | -LIST:* | -LNO:* | -link)
|
|
;;
|
|
- -lkernel32 | -lmingw* | -lmoldname)
|
|
+ -lkernel32)
|
|
# Ignore this library only on Windows-like systems.
|
|
case $host_os in
|
|
cygwin* | msys* | mingw* | windows*) ;;
|