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

Reply via email to