[Evolution] configure: evolution-data-server-1.4.2.1_1: configure: WARNING: sys/mount.h present but cannot be compiled



Hi. I'm building gnome2 on an Athlon64 based FreeBSD 6.0 RELEASE system,
cvsupped yesterday (RELENG_6_0_0_RELEASE) - ie., not following current,
but maintaining a 6.0 RELEASE system with errata and security patches.
During the evolution-data-server configuration I saw the following
warning:
....
 Configuring for evolution-data-server-1.4.2.1_1
....
 checking for sys/mount.h useability... no
 checking for sys/mount.h presence... yes
 configure: WARNING: sys/mount.h: present but cannot be compiled
 configure: WARNING: sys/mount.h:       check for missing prerequisite
 headers?
 configure: WARNING: sys/mount.h: see the Autoconf documentation
 configure: WARNING: sys/mount.h:       section "Present But Cannot Be
 Compiled"
 configure: WARNING: sys/mount.h: proceeding with the preprocessor's
 result
 configure: WARNING: sys/mount.h: in the future, the compiler will take
 precedence
....
and a warning to report it as a bug.

'm using gcc 3.4.4, with autoconf259. 

My CFLAGS+=02 -march=athlon64 -msse -msse2 -msse3 -m64 -mmmx -m3dnow
--pipe -fforce-mem -fforce-addr -funroll-loops -fcse-follow-jumps
-frename-registers --param max-gcse-memory=8388608 -finline-limit=2048
--param inline-unit-growth -480 



The autoconf.pdf at http://www.gnu.org/software/autoconf/manual/ states:
_______________________________________________________________
Chapter 17: Frequent Autoconf Questions, with answers                   
              199 [pdf doc page 206]
17.7 Header Present But Cannot Be Compiled
The most important guideline to bear in mind when checking for features
is to mimic as much as possible the intended use. Unfortunately, old
versions of AC_CHECK_HEADER and AC_CHECK_HEADERS failed to follow this
idea, and called the preprocessor, instead of the compiler, to check for
headers. As a result, incompatibilities between headers went unnoticed
during configuration, and maintainers finally had to deal
with this issue elsewhere.
   As of Autoconf 2.56 both checks are performed, and configure
   complains loudly if the compiler and the preprocessor do not agree.
   For the time being the result used is that of the preprocessor, to
   give maintainers time to adjust their ?configure.ac?, but in the near
   future, only the compiler will be considered.

_______________________________________________________________

(An example is then shown of a configure with this error, and how to fix
it:)
"The proper way the handle this case is using the fourth argument (see
Section 5.6.3 [Generic Headers], page 53):
......
_______________________________________________________________
 5.6.3 Generic Header Checks
53 [pdf doc page 61]
AC CHECK HEADER (header-file, [action-if-found ],
[action-if-not-found ], 
                                [includes = ?default-includes?])        
                                         [Macro]


AC CHECK HEADERS (header-file . . . , [action-if-found ],
[action-if-not-found ],                                [includes =
?default-includes?])                [Macro]

and to use the fourth argument of th(ese) check(s) in your configure.ac
.

_______________________________________________________________
This is the example of this problem, and the solution:

_______________________________________________________________
199 [pdf doc page 207]
     $ cat number.h
     typedef int number;
     $ cat pi.h
     const number pi = 3;
     $ cat configure.ac
     AC_INIT
     AC_CHECK_HEADERS(pi.h)
     $ autoconf -Wall
     $ ./configure
     checking for gcc... gcc
     checking for C compiler default output... a.out
     checking whether the C compiler works... yes
     checking whether we are cross compiling... no
     checking for suffix of executables...
     checking for suffix of object files... o
     checking whether we are using the GNU C compiler... yes
     checking whether gcc accepts -g... yes
     checking for gcc option to accept ANSI C... none needed
     checking how to run the C preprocessor... gcc -E
     checking for egrep... grep -E
     checking for ANSI C header files... yes
     checking for sys/types.h... yes
     checking for sys/stat.h... yes
     checking for stdlib.h... yes
     checking for string.h... yes
     checking for memory.h... yes
     checking for strings.h... yes
     checking for inttypes.h... yes
     checking for stdint.h... yes
     checking for unistd.h... yes
     checking pi.h usability... no
     checking pi.h presence... yes
     configure: WARNING: pi.h: present but cannot be compiled
     configure: WARNING: pi.h: check for missing prerequisite headers?
     configure: WARNING: pi.h: proceeding with the preprocessor?s result
     configure: WARNING:          ##
     ------------------------------------ ##
     configure: WARNING:          ## Report this to
     bug-autoconf gnu org  ##
     configure: WARNING:          ##
     ------------------------------------ ##
     checking for pi.h... yes
The proper way the handle this case is using the fourth argument (see
Section 5.6.3 [Generic Headers], page 53):
     $ cat configure.ac
     AC_INIT
200                                                           Autoconf
      AC_CHECK_HEADERS(number.h pi.h,,,
      [[#if HAVE_NUMBER_H
      # include <number.h>
      #endif
      ]])
      $ autoconf -Wall
      $ ./configure
      checking for gcc... gcc
      checking for C compiler default output... a.out
      checking whether the C compiler works... yes
      checking whether we are cross compiling... no
      checking for suffix of executables...
      checking for suffix of object files... o
      checking whether we are using the GNU C compiler... yes
      checking whether gcc accepts -g... yes
      checking for gcc option to accept ANSI C... none needed
      checking for number.h... yes
      checking for pi.h... yes
    See Section 5.6.2 [Particular Headers], page 49, for a list of
    headers with their prerequisite.


_______________________________________________________________

......
There isn't a configure.ac with the FreeBSD evolution-data-server port,
so I can't try this myself, but I hope these notes may be of some use.

Damien Miller

===============================
              Sub POSIX lumen
        orac000 internet-mail org
              +61 442 921 498
au.geocities.com/orac000000/bsd.html
===============================
-- 
  Aluminium Oxide
  orac000 internet-mail org

-- 
http://www.fastmail.fm - I mean, what is it about a decent email service?




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