On Thu, 22 Aug 2024, Pali Rohár wrote:

On Thursday 22 August 2024 18:05:17 Martin Storsjö wrote:
On Thu, 22 Aug 2024, Pali Rohár wrote:

On Thursday 22 August 2024 13:24:32 Martin Storsjö wrote:
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.

Ok.

At that point, we can stop including math/powf.c in src_ucrtbase32
in Makefile.am too.

Signed-off-by: Martin Storsjö <[email protected]>
---
A fix for Wine was submitted in
https://gitlab.winehq.org/wine/wine/-/merge_requests/6336.

Looks like that this change does not contain fix for
api-ms-win-crt-math-l1-1-0 library.

The APIset DLLs aren't physicsl DLLs in Wine any longer, so there's no
symbol list for api-ms-win-crt-math-l1-1-0, that whole virtual DLL just
forwards to ucrtbase. (The same pretty much goes on actual Windows too -
there are no physical api-ms-win-*.dll on modern Windows.)

// Martin

But Is not somewhere a list of symbols which are allowed for forwarding
to ucrtbase? Or it means that I can link application to some non-math
api-ms-crt-* lib and can expect that it will forward also math symbols?

Not sure about actual Windows, but I believe this would work on current
Wine, yes. (But before a refactoring a couple years ago, only specific symbols were allowed.)

Btw, note how the set of function mappings to API sets is a bit weird, how api-ms-win-crt-math-l1-1-0 has _fdopen, which obviously is a stdio function, not math, but this is how it was in the initial UCRT release, and it can't be changed without breaking things at least with the physical API set DLLs.

// Martin

_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to