On Wed, 26 Jun 2024, Pali Rohár wrote:

@@ -2174,21 +2174,21 @@ acos
F_NON_I386(acosf)
acosh
acoshf
-acoshl F_X86_ANY(DATA)
+F_ARM_ANY(acoshl) ; Can't use long double functions from the CRT on x86

Also contrary to what the commit message made it sound like, most of these
functions were already skipped on x86, but by marking the functions as DATA,
while it's arguably more correct/consistent to omit them entirely like this
patch does.

Function marked by DATA is still used if the header file contains
dllimport attribute.

Yes of course - but from practical testing by building C code with our headers, these imports aren't used, as those functions aren't marked with dllimport.

So from a practical point of view of building a C application, most of these functions have already worked correctly.

Commenting functions is better as it is not exported at all.

Yes, of course.

But just for context - this patch shouldn't have much of a practically
observable effect, that aspect was already fixed long ago, this just makes
it consistent with this new pattern for doing it.

// Martin

Note that this change disabled also symbols which were not marked as
DATA and were exported. E.g. function cimagl(). So there are also some
observable changes.

Yes - but for many of the practically used functions, this already did work correctly.

I'm not saying the change isn't good - it's very good! I'm just reframing the scope for readers - someone reading the commit message might get an impression that long double math functions didn't work correctly on UCRT before at all, in practical use. In real use, things mostly worked fine, but this patch make it more consistent and complete (and correct on a technical level).

// Martin

_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to