Solaris definition of struct std::lconv
Rainer Orth
ro@CeBiTec.Uni-Bielefeld.DE
Wed Jul 31 12:25:27 GMT 2024
Hi Jonathan,
>> This block is not enabled for C++, but it should be, because C++17
>> incorporates the C99 standard library. So the C99 members of lconv
>> should be present in C++17 too.
>>
>> Do you know if this is a known issue?
>>
>> I can work around it by defining _LCONV_C99 in the relevant .cc files,
>> but it shouldn't be needed.
>
> That works, but I already have:
> #define _POSIX_C_SOURCE 200809L
> which I would have expected to be enough to enable the block above.
> POSIX.1-2008 is based on C99, so those members should be defined.
>
> I guess the "namespace and binary compatibility" concerns override the
> conformance requirements here?
I don't know: either nobody thought about C++11 at the time, or that's
just one of the areas not seeing much love due to Oracle's lay-offs ;-(
> Since these members only need to be acessed from inside libstdc++.so,
> not in headers, defining _LCONV_C99 is fine.
Fine, that's certainly the short-term route.
> This seems to be the only build failure I get with the new clocale
> model on Solaris 11.4, so I'll start testing it.
Perfect, thanks for doing this.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University
More information about the Libstdc++
mailing list