This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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 <vinschen@redhat.com>
wrote:

> On Aug 13 13:46, Joel Sherrill wrote:
> > On Tue, Aug 13, 2019 at 1:30 PM Dionna Amalie Glaze via newlib <
> > newlib@sourceware.org> wrote:
> >
> > > The st_{a,c,m}tim fields are needed for POSIX.1-2008, not just RTEMS.
> > >
> > > Signed-off-by: Dionna Glaze <dionnaglaze@google.com>
> > > ---
> > >  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)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]