Re: [PATCH] Make st_*tim visible in stat for POSIX.1-2008

"Dionna Amalie Glaze via newlib" <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <CAAH4kHa=QzY6h=DLbJZPQfuNiaPgEK-_FJwNUaTBwLYmYjREYA@mail.gmail.com>
The timestamps are defined for non-rtems targets, it's just not in the
patch. The #else shows that they are defined as st_{a,m,c}time instead of
st_{a,m,c}tim with later #defines for st_([amc])time as st_\1tim.tv_sec.
This patch is just about having both field names available: st_{a,m,c}tim
and st_{a,m,c}time. It's a weird compatibility issue I'm hitting.

On Wed, Aug 14, 2019 at 1:41 AM Corinna Vinschen <[email protected]>
wrote:

> On Aug 13 13:46, Joel Sherrill wrote:
> > On Tue, Aug 13, 2019 at 1:30 PM Dionna Amalie Glaze via newlib <
> > [email protected]> wrote:
> >
> > > The st_{a,c,m}tim fields are needed for POSIX.1-2008, not just RTEMS.
> > >
> > > Signed-off-by: Dionna Glaze <[email protected]>
> > > ---
> > >  newlib/libc/include/sys/stat.h | 6 ++++--
> > >  1 file changed, 4 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/newlib/libc/include/sys/stat.h
> > > b/newlib/libc/include/sys/stat.h
> > > index eee98db64..052ef5a66 100644
> > > --- a/newlib/libc/include/sys/stat.h
> > > +++ b/newlib/libc/include/sys/stat.h
> > > @@ -34,10 +34,12 @@ struct      stat
> > >    gid_t                st_gid;
> > >    dev_t                st_rdev;
> > >    off_t                st_size;
> > > -#if defined(__rtems__)
> > > +#if defined(__USE_MISC) || __POSIX_VISIBLE >= 200809
> > >    struct timespec st_atim;
> > >    struct timespec st_mtim;
> > >    struct timespec st_ctim;
> > > +#endif
> > >
> >
> > If I am reading this change correctly, this is breakage for RTEMS. Both
> of
> > those
> > terms are defined as a consequence of user provided defines. If the user
> > application
> > and RTEMS are not compiled with the same options, the fields in the
> > structure will
> > not agree and these below will be overlaid on the time fields.
> >
> > Most of the newlib targets are single address space so changing the
> fields
> > in
> > the structure based on user provided conditionals is going to introduce
> > breakage.
> >
> > Perhaps adding a new define to sys/config.h so the fields are always
> there
> > for
> > the targets that support them. I couldn't find any example that wasn't
> > based on
> > a hard-coded always on value in either sys/config.h or sys/features.h.
> Maybe
> > someone else has another idea.
>
> I'm not sure why the timestamps are not defined for non-rtems
> targets but I guess it's all about size again.  Don't we have
> an already existing definition for small targets we can use here?
> _REENT_SMALL or something like that?
>
>
> Corinna
>
> --
> Corinna Vinschen
> Cygwin Maintainer
> Red Hat
>


-- 
-Dionna Glaze, PhD (she/her)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.