|
[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 |