This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA] confine _TIMEVAL_DEFINED guard in libc/include/sys/time.h


On 11/12/2012 09:20 AM, Christopher Faylor wrote:
On Mon, Nov 12, 2012 at 11:40:31AM +0100, Corinna Vinschen wrote:
On Nov 11 13:58, Christopher Faylor wrote:
The _TIMEVAL_DEFINED guard in time.h is a little to enthusiastic in what
it is guarding.  It's possible that there are other guards needed here
but, IMO, _TIMEVAL_DEFINED shouldn't be turning off the declaration of
timezone.  Without this change, using Mingw64 headers becomes
problematic.

Ok to apply?
More or less, yes.  The Mingw64 header uses the _TIMEVAL_DEFINED guard
also to guard the macros timerisset, timercmp, and timerclear, so we
should do the same.  Would you mind to add that?
Well, maybe, but that isn't a necessary change as far as getting 32-bit
Cygwin building is concerned*.  Although I can see the sense in putting
the macros under this conditional, the macros on Linux are not protected
by the equivalent "__need_timeval".  Also, moving the macros has
potential side-effects for rtems.  Do they have to weigh in on this too?
RTEMS only supports newlib currently so as long as newlib is
internally consistent, we should be OK.

As a disclaimer to that, we have lots of code from NetBSD and
FreeBSD for things that range from shell commands to the
USB and TCP/IP stacks. Those may have .h files which depend
on the structure of this conditional. But I don't see _TIMEVAL_DEFINED
used in any of that code.

I think changing this to the cleanest form is OK for RTEMS.
I thought this was an obvious change architecturally for newlib since
the guard (or at least the naming of the guard) was clearly wrong.
Moving the macros seems slightly less obvious.
What's correct and what breaks assumptions that have been
in place for years are unfortunately often two different things.
cgf

*I've had to make a number of changes to Cygwin to get it to build with
the latest released version of the mingw64 headers.


--
Joel Sherrill, Ph.D.             Director of Research&  Development
joel.sherrill@OARcorp.com        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35806
Support Available               (256) 722-9985


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]