On Tuesday 18 March 2025 11:49:58 Martin Storsjö wrote: > On Sun, 16 Mar 2025, Pali Rohár wrote: > > > On Saturday 15 March 2025 21:17:07 Jacek Caban wrote: > > > On 15.03.2025 17:36, Martin Storsjö wrote: > > > > On Mon, 10 Mar 2025, Pali Rohár wrote: > > > > > > > > > --- > > > > > .../api-ms-win-crt-private-l1-1-0.def.in | 64 +++++++++---------- > > > > > 1 file changed, 32 insertions(+), 32 deletions(-) > > > > > > > > > > diff --git > > > > > a/mingw-w64-crt/lib-common/api-ms-win-crt-private-l1-1-0.def.in > > > > > b/mingw-w64-crt/lib-common/api-ms-win-crt-private-l1-1-0.def.in > > > > > index 3bcce9953157..90d530d6a686 100644 > > > > > --- a/mingw-w64-crt/lib-common/api-ms-win-crt-private-l1-1-0.def.in > > > > > +++ b/mingw-w64-crt/lib-common/api-ms-win-crt-private-l1-1-0.def.in > > > > > @@ -700,7 +700,7 @@ _o__strtof_l > > > > > _o__strtoi64 > > > > > _o__strtoi64_l > > > > > _o__strtol_l > > > > > -_o__strtold_l > > > > > +F_ARM_ANY(_o__strtold_l) ; Can't use long double functions from the > > > > > CRT on x86 > > > > > _o__strtoll_l > > > > > _o__strtoui64 > > > > > _o__strtoui64_l > > > > > > > > I'm a little undecided about this one. > > > > > > > > So far, I don't think we've done much about these extra prefixed > > > > functions in the def files, other than keeping track of which symbols > > > > exist in which DLL. In which way do the _o_ prefixed symbols differ from > > > > the unprefixed ones? > > > > _o_ prefixed symbols use UCRT global state, mostly used by DLL libs. > > non-prefixes symbols use application specific global state which does > > not affect global state of DLL libraries. > > > > It is documented on MS UCRT webpage: > > https://learn.microsoft.com/en-us/cpp/c-runtime-library/global-state > > > > If I understand correctly then system-wide DLL library should use _o_ > > prefixed symbols. To make it easier for using, msvc/ucrt provides import > > library named "ucrt.osmode.lib" which for each import function FUNC call > > exported symbol _o_FUNC. So source code DLL library can use normal C > > named functions without _o_ prefix. > > Right, thanks for the info! > > > mingw-w64 does not provide libucrt.osmode.a yet, but it could be > > extended and implemented in future (if there would be need for it). > > Ok. I guess that'd be doable, but I would also prefer to not do it until we > have an actual concrete need for it, not just for completeness.
Sure, for now there is no need for it. > > gcc has already -mcrtdll= argument and it can already process > > -mcrtdll=ucrt.osmode (as it process any -mcrtdll=ucrt*"), so it is just > > waiting until mingw-w64 gain such support. > > > > > > As for avoiding long doubles, there would be more of a case for that, if > > > > this was a function that we'd have a declaration for and try to > > > > reference somewhere. But nothing references these functions anywhere and > > > > nothing declares them; we don't have any implementation of our own that > > > > we'd like to link instead of these ones. > > > > AFAIK, no mingw-w64 code calls long double _o_ prefixed symbol. And > > applications should not call long double those symbols as ABI of those > > symbols expects regular double (not long double). > > > > If there is a needed for supporting 80-bit long double functions with > > _o_ prefix then it would be needed to emulate them in mingw-w64 as UCRT > > has support only for 64-bit double functions. > > Ok, fair enough. I guess this patch could be reasonable to apply then, also > for making things consistent between api-ms-win-crt-* and ucrtbase. Yes, in all other .def files were long double functions already disabled. This is the last remaining one. > But it > should probably be updated to use F_LD64() instead of F_ARM_ANY(), like the > other patch currently in review. > > // Martin I'm not sure if the F_LD64 is the best option. And if changing from F_ARM_ANY to F_LD64 is needed then it should be done globally for all files, not just for this one. So I would propose to put this change out of the scope. _______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public