From: Martin S. <ma...@li...> - 2007-11-26 15:47:29
|
>>>>> On Sun, 25 Nov 2007 15:41:01 +0100, Kern Sibbald said: > > Hello Martin, > > On Friday 23 November 2007 13:00, Martin Simmons wrote: > ... > > > > I've found the problem that causes all of these config failures: nothing > > includes sys/types.h in the config tests. > > > > It looks like other OSes (and older versions of Mac OS X) include this file > > indirectly from some other header file, so it works by luck. > > > > Note that nothing defines HAVE_SYS_TYPES_H either, on any OS :-) > > > > This patch fixes configure, but it should obviously be done properly in the > > autoconf: > > > > --- configure~ 2007-10-05 18:56:48.000000000 +0100 > > +++ configure 2007-11-23 11:22:02.000000000 +0000 > > @@ -19283,6 +19283,7 @@ > > stdarg.h \ > > stdlib.h \ > > stdint.h \ > > + sys/types.h \ > > string.h \ > > termios.h \ > > termcap.h \ > > > > Well, in looking closely at the configure script (and the output of config.log > submitted to the bug report), it is indeed the case that the configure script > *blindly* assumes that HAVE_SYS_TYPES_H is defined, and if not, it does not > include sys/types in many of its tests. IMO, this is really incorrect. The > configure script also blindly assumes that several other HAVE_xxx are defined > or will not include certain headers in some of the tests it does. As a > consequence, I have explicitly included sys/types.h as well as several other > headers in the list of headers checked. Hopefully that will resolve all > current and future problems of this nature. > > I have also made Bacula's typedef for int8_t contain "signed", which is what > Mac does (now the Mac typedef and Bacula typedef are the same). The Mac code > that adds "signed" is a good idea. > > It looks like on Unix sys/types.h is normally included by some other include, > and was previously the case on Mac but is no longer the case, which is why it > started failing on the Mac build. The least I can say is that though it may > not be wrong (I am not sure), the Mac has moved a bit away from the other > Unix releases, and that autoconf is the "guilty" component because it makes > assumptions it should not. Yes, that's what I concluded too. The Mac is clearly superior because it doesn't drag sys/types.h into the compiler unless it is needed :-) __Martin > The patch that I have attached to the bug report should fix it. > > Thanks for finding the "root" of the problem. > > Best regards, > > Kern > |