[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT/NEWLIB PATCH 2/5] Use our own <time.h> and <sys/time.h> headers
I've just sent `glue.c: Include <signal.h> for signal-related functions` for libgo. Costin On 10/15/19 3:20 PM, Felipe Huici wrote: > Hi Costin, > > Spoke to soon: this patch breaks the libgo build. The reason is that newlib's > time.h includes sys/signal.h, which libgo's glue.c needs, but this patch's > newly-introduced time.h doesn't. Adding a #include <signal.h> to > include/time.h fixes the problem. Do you want me send a new version? > Otherwise I can push this one liner on upstreaming. > > -- Felipe > > On 14.10.19, 19:42, "Felipe Huici" <Felipe.Huici@xxxxxxxxx> wrote: > > Hi Costin, this looks ok. > > Reviewed-by: Felipe Huici <felipe.huici@xxxxxxxxx> > > On 13.10.19, 15:37, "Costin Lupu" <costin.lupu@xxxxxxxxx> wrote: > > The uktime internal library provides the headers with the time related > definitions that we need. Given that newlib does not provide guard > macros for > most of its definitions (and consequently we get errors because of > duplicated > definitions), we decided to skip using its time headers. > > In these glue headers we add only those definitions and inclusions > that are > needed by newlib. For example, newlib's <sys/time.h> includes > <sys/reent.h>, so > we will do the same here. In <time.h> we added the time zone/locale > definitions > needed by newlib. > > Signed-off-by: Costin Lupu <costin.lupu@xxxxxxxxx> > --- > include/sys/time.h | 42 ++++++++++++++++++++++++++++++++++++++++++ > include/time.h | 28 +++++++++++++++++++++++++++- > 2 files changed, 69 insertions(+), 1 deletion(-) > create mode 100644 include/sys/time.h > > diff --git a/include/sys/time.h b/include/sys/time.h > new file mode 100644 > index 0000000..4a81946 > --- /dev/null > +++ b/include/sys/time.h > @@ -0,0 +1,42 @@ > +/* SPDX-License-Identifier: BSD-3-Clause */ > +/* > + * Authors: Costin Lupu <costin.lupu@xxxxxxxxx> > + * > + * Copyright (c) 2019, University Politehnica of Bucharest. All > rights reserved. > + * > + * Redistribution and use in source and binary forms, with or without > + * modification, are permitted provided that the following conditions > + * are met: > + * > + * 1. Redistributions of source code must retain the above copyright > + * notice, this list of conditions and the following disclaimer. > + * 2. Redistributions in binary form must reproduce the above > copyright > + * notice, this list of conditions and the following disclaimer > in the > + * documentation and/or other materials provided with the > distribution. > + * 3. Neither the name of the copyright holder nor the names of its > + * contributors may be used to endorse or promote products > derived from > + * this software without specific prior written permission. > + * > + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND > CONTRIBUTORS "AS IS" > + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED > TO, THE > + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A > PARTICULAR PURPOSE > + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR > CONTRIBUTORS BE > + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, > OR > + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT > OF > + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR > BUSINESS > + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, > WHETHER IN > + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR > OTHERWISE) > + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF > ADVISED OF THE > + * POSSIBILITY OF SUCH DAMAGE. > + * > + * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY. > + */ > + > +#ifndef __NEWLIB_GLUE_SYS_TIME_H__ > +#define __NEWLIB_GLUE_SYS_TIME_H__ > + > +#include "_ansi.h" > + > +#include <sys/reent.h> > + > +#endif /* __NEWLIB_GLUE_SYS_TIME_H__ */ > diff --git a/include/time.h b/include/time.h > index 5361876..a510293 100644 > --- a/include/time.h > +++ b/include/time.h > @@ -42,6 +42,32 @@ > */ > #define _POSIX_TIMERS 1 > #define _POSIX_MONOTONIC_CLOCK 1 > -#include_next <time.h> > + > +#include <sys/reent.h> > +#include <xlocale.h> > + > +typedef struct __tzrule_struct > +{ > + char ch; > + int m; > + int n; > + int d; > + int s; > + time_t change; > + long offset; /* Match type of _timezone. */ > +} __tzrule_type; > + > +typedef struct __tzinfo_struct > +{ > + int __tznorth; > + int __tzyear; > + __tzrule_type __tzrule [2]; > +} __tzinfo_type; > + > +__tzinfo_type *__gettzinfo(void); > + > +extern long _timezone; > +extern int _daylight; > +extern char *_tzname[2]; > > #endif /* NEWLIBGLUE_TIME_H */ > -- > 2.20.1 > > > > > > _______________________________________________ > Minios-devel mailing list > Minios-devel@xxxxxxxxxxxxxxxxxxxx > https://lists.xenproject.org/mailman/listinfo/minios-devel > _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |