qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] osdep: Deal with TIME_MAX and OpenBSD 64-bit ti


From: Daniel P. Berrange
Subject: Re: [Qemu-devel] [PATCH] osdep: Deal with TIME_MAX and OpenBSD 64-bit time_t
Date: Mon, 6 Nov 2017 11:26:38 +0000
User-agent: Mutt/1.9.1 (2017-09-22)

On Mon, Nov 06, 2017 at 10:51:16AM +0000, Peter Maydell wrote:
> On 6 November 2017 at 00:56, Brad Smith <address@hidden> wrote:
> > Define TIME_MAX to LLONG_MAX for OpenBSD since OpenBSD uses 64-bit time_t.
> >
> > Signed-off-by: Brad Smith <address@hidden>
> >
> >
> > diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h
> > index 6855b94bbf..824714049b 100644
> > --- a/include/qemu/osdep.h
> > +++ b/include/qemu/osdep.h
> > @@ -132,8 +132,12 @@ extern int daemon(int, int);
> >  #define ESHUTDOWN 4099
> >  #endif
> >  #ifndef TIME_MAX
> > +#ifdef __OpenBSD__
> > +#define TIME_MAX LLONG_MAX
> > +#else
> >  #define TIME_MAX LONG_MAX
> >  #endif
> > +#endif
> 
> I'm not really a fan of adding new OS-specific #ifdefs --
> what if one of the other BSDs uses or switches to 64-bit
> time_t for 32-bit platforms? Is there some way we can detect
> this generically at compile time (possibly in configure) ?

You could use a pair of compile time asserts to figure it out.

Would need one compile test to check 32 vs 64 bit:

  #include <time.h>
  char time_t_64bit[sizeof(time_t) == 8 ? 1 : -1];

and a second to check signed vs unsigned:

  #include <time.h>
  char time_t_signed[(time_t) -1 < 0 ? 1 : -1];


Save each of these programs to the file $TMPC, and then run 'compile_object'
from configure. You then have a decision matrix for 4 different TIME_MAX
values to write into config-host.h.

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



reply via email to

[Prev in Thread] Current Thread [Next in Thread]