Solaris definition of struct std::lconv
Jonathan Wakely
jwakely.gcc@gmail.com
Wed Jul 31 12:29:16 GMT 2024
On Wed, 31 Jul 2024 at 13:25, Rainer Orth <ro@cebitec.uni-bielefeld.de> wrote:
>
> 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.
I've attached my current work-in-progress to PR 57585.
More information about the Libstdc++
mailing list