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 preprocessors result configure: WARNING: ## ------------------------------------ ## configure: WARNING: ## Report this to [EMAIL PROTECTED] ## 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 [EMAIL PROTECTED] +61 442 921 498 au.geocities.com/orac000000/bsd.html =============================== -- Aluminium Oxide [EMAIL PROTECTED] -- http://www.fastmail.fm - I mean, what is it about a decent email service? _______________________________________________ Evolution-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/evolution-list
