This reverts parts of 52c98b1273a61b7a3e1fc93142fa4b5e4c3ee5ab. While powf indeed is available in UCRT on i386 too, it's missing in Wine's i386 ucrtbase.dll (as of Wine 9.15). This probably stems from the same mistake originally. (Most of the float math functions, suffixed with -f, are unavailable in the i386 UCRT, but powf is available.)
Thus, to allow built executables to run on current Wine versions, avoid linking against this function, as a temporary workaround. After a grace period, to let fixed versions of Wine become more widely available, we can revert this, to link against powf on i386 too. At that point, we can stop including math/powf.c in src_ucrtbase32 in Makefile.am too. Signed-off-by: Martin Storsjö <mar...@martin.st> --- A fix for Wine was submitted in https://gitlab.winehq.org/wine/wine/-/merge_requests/6336. The change in 52c98b1273a61b7a3e1fc93142fa4b5e4c3ee5ab only broke an uncommon case, when linking directly against ucrtbase, rather than ucrt, as the commit only changed ucrtbase.def.in, but not api-ms-win-crt-math-l1-1-0.def.in. However, rather than updating api-ms-win-crt-math-l1-1-0.def.in in sync with that change, revert the changes to ucrtbase.def.in (now ucrtbase-common.def.in) temporarily, and add comments about why we want to keep this marked like this, for now. We can probably remove this Wine specific workaround after e.g. a year or so. --- mingw-w64-crt/lib-common/api-ms-win-crt-math-l1-1-0.def.in | 2 +- mingw-w64-crt/lib-common/ucrtbase-common.def.in | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mingw-w64-crt/lib-common/api-ms-win-crt-math-l1-1-0.def.in b/mingw-w64-crt/lib-common/api-ms-win-crt-math-l1-1-0.def.in index a0e3b75ca..a63d00fb1 100644 --- a/mingw-w64-crt/lib-common/api-ms-win-crt-math-l1-1-0.def.in +++ b/mingw-w64-crt/lib-common/api-ms-win-crt-math-l1-1-0.def.in @@ -342,7 +342,7 @@ norm normf norml pow -F_NON_I386(powf) +F_NON_I386(powf) ; Missing in Wine's ucrtbase.dll for i386 in Wine 9.15 and older F_ARM_ANY(powl == pow) remainder remainderf diff --git a/mingw-w64-crt/lib-common/ucrtbase-common.def.in b/mingw-w64-crt/lib-common/ucrtbase-common.def.in index 4e1c87da6..69052d686 100644 --- a/mingw-w64-crt/lib-common/ucrtbase-common.def.in +++ b/mingw-w64-crt/lib-common/ucrtbase-common.def.in @@ -2510,7 +2510,7 @@ normf norml perror pow -powf +F_NON_I386(powf) ; Missing in Wine's ucrtbase.dll for i386 in Wine 9.15 and older putc putchar puts -- 2.34.1 _______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public