This is the mail archive of the
mailing list for the glibc project.
Re: [PATCH] Y2038: add struct __timespec64
On Wed, 19 Sep 2018 15:00:33 +0000, Joseph Myers
<email@example.com> wrote :
> On Wed, 19 Sep 2018, Joseph Myers wrote:
> > The bit-fields needs to be *anonymous* for initializers to work as
> > intended. It can't have the name tv_pad that it has in this patch, or any
> > other name, with our without leading underscores.
> Ignore this, I see you are distinguishing between an internal type here
> with a named field and a public type with an anonymous field.
Indeed I am, and rather than ignoring your remark, I'll take it as a
sign that my comment is possibly confusing and needs to make it
explicit that there are two types, one private to glibc and one public.
> *But* I wouldn't expect the internal type to be declared in any public
> header at all. That is, this should not be a bits/ header at all, not an
> installed header, because it would only be used in implementation code,
> not from any public interface. So you need to rename the header out of
> the bits/ namespace, which is purely for installed headers, and remove all
> the #includes from installed headers.
> Regarding the comment you have on this type: 2038, not 2036; things, not
> tings; don't reference timeval at all (describing timespec in terms of
> timeval is a very historical way of writing a comment, that may have made
> sense when timeval was the established type and timespec was the new one,
> but doesn't make sense for over 20 years now; rather, comments on timeval
> should describe it as a legacy type, superseded by timespec).