[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

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.