[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Minios-devel] [UNIKRAFT PATCH 2/3] lib/uktime: Introduce time_types.h for type defintions



On 10/15/19 9:52 AM, Felipe Huici wrote:
> Hi Costin,
> 
> I'lll give this a reviewed-by, but please read my comment below.
> 
> -- Felipe
> 
> Reviewed-by: Felipe Huici <felipe.huici@xxxxxxxxx>
> 
> On 14.10.19, 16:44, "Costin Lupu" <costin.lupu@xxxxxxxxx> wrote:
> 
>     On 10/14/19 5:02 PM, Felipe Huici wrote:
>     > Hi Costin,
>     > 
>     > Please find a comment inline.
>     > 
>     > -- Felipe
>     > 
>     > 
>     > On 13.10.19, 15:30, "Costin Lupu" <costin.lupu@xxxxxxxxx> wrote:
>     > 
>     >     We basically take the type definitions we used for nolibc and put 
> them in
>     >     time_types.h.
>     >     
>     >     In this patch we also add the changes for allowing custom 
> definitions in libc
>     >     implementations. We allow for all libc implementations but for 
> nolibc; the
>     >     alternative would have been to add empty headers in nolibc.
>     >     
>     >     Signed-off-by: Costin Lupu <costin.lupu@xxxxxxxxx>
>     >     ---
>     >      .../include/nolibc-internal/shareddefs.h      | 41 +---------
>     >      lib/uktime/include/uk/time_types.h            | 74 
> +++++++++++++++++++
>     >      lib/uktime/musl-imported/include/sys/time.h   | 10 ++-
>     >      lib/uktime/musl-imported/include/time.h       |  7 ++
>     >      plat/xen/x86/arch_time.c                      |  2 +-
>     >      5 files changed, 91 insertions(+), 43 deletions(-)
>     >      create mode 100644 lib/uktime/include/uk/time_types.h
>     >     
>     >     diff --git a/lib/nolibc/include/nolibc-internal/shareddefs.h 
> b/lib/nolibc/include/nolibc-internal/shareddefs.h
>     >     index 9eb613a1..a1661081 100644
>     >     --- a/lib/nolibc/include/nolibc-internal/shareddefs.h
>     >     +++ b/lib/nolibc/include/nolibc-internal/shareddefs.h
>     >     @@ -65,46 +65,7 @@ typedef __off off_t;
>     >      #define __DEFINED_off_t
>     >      #endif
>     >      
>     >     -#if (defined __NEED_time_t && !defined __DEFINED_time_t)
>     >     -typedef long time_t;
>     >     -#define __DEFINED_time_t
>     >     -#endif
>     >     -
>     >     -#if (defined __NEED_suseconds_t && !defined __DEFINED_suseconds_t)
>     >     -typedef long suseconds_t;
>     >     -#define __DEFINED_suseconds_t
>     >     -#endif
>     >     -
>     >     -#if (defined __NEED_struct_timeval && !defined 
> __DEFINED_struct_timeval)
>     >     -struct timeval {
>     >     -   time_t      tv_sec;
>     >     -   suseconds_t tv_usec;
>     >     -};
>     >     -#define __DEFINED_struct_timeval
>     >     -#endif
>     >     -
>     >     -#if (defined __NEED_struct_timespec && !defined 
> __DEFINED_struct_timespec)
>     >     -struct timespec {
>     >     -   time_t tv_sec;
>     >     -   long   tv_nsec;
>     >     -};
>     >     -#define __DEFINED_struct_timespec
>     >     -#endif
>     >     -
>     >     -#if defined(__NEED_timer_t) && !defined(__DEFINED_timer_t)
>     >     -typedef void *timer_t;
>     >     -#define __DEFINED_timer_t
>     >     -#endif
>     >     -
>     >     -#if (defined __NEED_clockid_t && !defined __DEFINED_clockid_t)
>     >     -typedef int clockid_t;
>     >     -#define __DEFINED_clockid_t
>     >     -#endif
>     >     -
>     >     -#if defined(__NEED_clock_t) && !defined(__DEFINED_clock_t)
>     >     -typedef long clock_t;
>     >     -#define __DEFINED_clock_t
>     >     -#endif
>     >     +#include <uk/time_types.h>
>     > 
>     > This sets a hard dependency for nolibc on uktime, which shouldn't be 
> the case. You should probably compile-guard it -- we'd like to be able to 
> keep noblic as small as possible where applicable.
>     
>     You're right, if we want to be able to disable time-related functions
>     from nolibc then this include directive should be protected. But that's
>     not enough, we should also make some kind of relationship between nolibc
>     and uktime in order to avoid things to get messy (please see my reply on
>     the `lib/vfscore: Add dependency to libuktime` thread).
>     
>     More than that, the include guard should check whether the "time
>     features" are enabled - this is a more generic way than checking whether
>     uktime is enabled. So we might need to define a CONFIG_HAVE_LIBC_TIME
>     flag which will be set when enabling time libs such as uktime.
> 
> Ok, then as a compromise I suggest that we:
> 
> 1. Compile-guard the one liner, something like:
> #if CONFIG_HAVE_LIBC_TIME /* or CONFIG_UKTIME */
> #include <uk/time_types.h>
> #endif
> 
> and
> 
> 2. Have noblic's Config.uk imply uktime.
> 
> To speed things along, I've given this patch a reviewed-by, but please send 
> this fix out sometime this week so we don't lose track of the issue.

I've just sent the patch, it's called ' lib/nolibc: Imply uktime for
time functions'

Costin

_______________________________________________
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®.