headers "present but cannot be compiled" for autoconf 2.53

David Lee t.d.lee at durham.ac.uk
Wed Aug 27 09:34:10 GMT 2003

On Wed, 27 Aug 2003, Tim Potter wrote:

> Is anyone else annoyed by these guys?
> configure: WARNING: net/if.h: present but cannot be compiled
> configure: WARNING: net/if.h: check for missing prerequisite headers?
> configure: WARNING: net/if.h: proceeding with the preprocessor's result
> configure: WARNING:     ## ------------------------------------ ##
> configure: WARNING:     ## Report this to bug-autoconf at gnu.org. ##
> configure: WARNING:     ## ------------------------------------ ##
> Apparently the semantics of AC_CHECK_HEADERS has changed between 2.13 and
> 2.53 so that header files have to actually compile instead of simply pass
> through cpp.  I'm a bit reluctant to have to maintain header file
> dependencies as the exact header files required are going to vary greatly
> upon what is installed on the host machine.
> My favourite idea at the moment is to replace AC_CHECK_HEADERS with a
> macro that reinstates the old semantics.

Shudder... That may be OK right now, but it sounds substantially
sub-optimal longer term.  It would appear to create an ongoing maintenance
headache for us, having to maintain a parallel version (or more) of an
autoconf macro for samba users (also having to allow for different samba
developers using different autoconf versions).  It sounds worth avoiding
if possible.

And has the behaviour (i.e. technical results of the autoconf test)
actually changed?  Or is it just producing extra warning messages (perhaps
inappropriate, but nevertheless just warnings)?

Rather, having spotted this problem that affects us (samba developers) on
our island, and so might well affect many other projects on their islands,
might it not be cleaner and more productive all around (not just for
samba) to discuss the problem with the autoconf folk themselves?

For instance you could put the positive proposal to them that autoconf
continue to provide and support two parallel macros (or one macro with two
options) that allow both the CPP-only and CPP-and-compile behaviours.

It would seem relatively easy, and clean, for this to be done and
maintained within autoconf, rather than for lots of projects (of which
samba might be just one) to have to keep chasing the moving tail...  It
would also seem to be more truly in keeping with the open, cooperative
nature of the "Open Source" movement.

Hope that doesn't sound too critical... it's meant to be positive!


:  David Lee                                I.T. Service          :
:  Systems Programmer                       Computer Centre       :
:                                           University of Durham  :
:  http://www.dur.ac.uk/t.d.lee/            South Road            :
:                                           Durham                :
:  Phone: +44 191 334 2752                  U.K.                  :

More information about the samba-technical mailing list