bug-autoconf
[Top][All Lists]
Advanced

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

gcl configure.in (was: Report this to address@hidden)


From: Ralf Wildenhues
Subject: gcl configure.in (was: Report this to address@hidden)
Date: Thu, 8 Jun 2006 17:59:32 +0200
User-agent: Mutt/1.5.11

Hello Robert,

* Robert Boyer wrote on Tue, Jun 06, 2006 at 04:58:25PM CEST:
> If one fetches Gnu Common Lisp from "cvs head", a la
> 
>   setenv CVSROOT :pserver:address@hidden:/sources/gcl
>   cvs -z9 -q checkout gcl 
>   
> and then does
> 
>   configure  --disable-statsysbfd --enable-locbfd --enable-debug --enable-ansi
> 
> One gets, somewhere in the 35,000 characters of output:
> 
>    checking asm/signal.h presence... yes
>    configure: WARNING: asm/signal.h: present but cannot be compiled

Yes.  In fact, I can reproduce this issue.  The underlying problem is
revealed in the config.log part accompanying this (some file included
by the default includes defines sigset_t, but the definition for
userspace is incompatible with the kernel definition).  The error is
explained in the "Present But Cannot Be Compiled" node of the Autoconf
manual.

The immediate "fix" is to use the fourth argument to AC_CHECK_HEADERS
to specify that the default includes should not be used for this header,
for example like this:
  AC_CHECK_HEADERS([asm/signal.h], [], [], [/* none */])

But this is likely to be a workaround only: the actual gcl code may
need to be adjusted to this, too; and asm/signal.h may actually need
other headers as prerequisite.  I haven't looked into that, and I don't
know enough about this area to help here.

Anyway, while trying a newer Autoconf on gcl, I found quite a few
underquotations and other bugs in configure.in.  Is gcl actively
maintained?  If yes, it may be more useful to fix its configure-new.ac
to be a suitable replacement for its current configure.in, but for
the time being, here's a proposed patch to get it to actually work
(better) with Autoconf 2.59 and upcoming 2.60, while still retaining
all the ugliness.  ;-)

Cheers,
Ralf


        * configure.in: Disable default includes in check for
        `asm/signal.h', to prevent conflicting definitions of sigset_t.
        Report by Robert Boyer <address@hidden>.
        Rewrite some checks, adding better M4 quotation, and separating
        actions by newlines.  This is actually necessary in order so
        that some variable settings do not hold just for the command
        that follows them, but for the rest of the script.

Index: configure.in
===================================================================
RCS file: /sources/gcl/gcl/configure.in,v
retrieving revision 1.233
diff -u -r1.233 configure.in
--- configure.in        18 Apr 2006 04:38:06 -0000      1.233
+++ configure.in        8 Jun 2006 15:56:03 -0000
@@ -847,25 +847,28 @@
 
 if test "$enable_statsysbfd" = "yes" || test "$enable_dynsysbfd" = "yes" ; then
        AC_CHECK_HEADER(bfd.h,
-               AC_CHECK_LIB(bfd,bfd_init,
+               [AC_CHECK_LIB(bfd,bfd_init,
                #
                # Old binutils appear to need CONST defined to const
                #
-                       AC_MSG_CHECKING(if need to define CONST for bfd)
+                       [AC_MSG_CHECKING(if need to define CONST for bfd)
                        AC_TRY_RUN([#define IN_GCC
                                    #include <bfd.h>
                                    int main() { symbol_info t; return 0;}],
-                               AC_MSG_RESULT(no),
-                               AC_TRY_RUN([#define CONST const
+                               [AC_MSG_RESULT(no)],
+                               [AC_TRY_RUN([#define CONST const
                                             #define IN_GCC
                                            #include <bfd.h>
                                            int main() {symbol_info t; return 
0;}],
-                                       AC_MSG_RESULT(yes) 
-                                       AC_DEFINE(NEED_CONST),
-                                       AC_MSG_RESULT(cannot use bfd) exit 1;,
-                                       AC_MSG_RESULT(cannot use bfd) exit 1;),
-                               AC_MSG_RESULT(cannot use bfd) exit 1;)
-                       ,,-liberty))
+                                       [AC_MSG_RESULT(yes) 
+                                       AC_DEFINE(NEED_CONST)],
+                                       [AC_MSG_RESULT(cannot use bfd)
+                                        exit 1;],
+                                       [AC_MSG_RESULT(cannot use bfd)
+                                        exit 1;])],
+                               AC_MSG_RESULT(cannot use bfd)
+                               exit 1;)]
+                       ,,[-liberty])])
 
        AC_DEFINE(HAVE_LIBBFD)
 
@@ -1817,16 +1820,24 @@
                float f;
                return isnormal(f) || !isnormal(f) ? 0 : 1;
                }],
-               AC_DEFINE(HAVE_ISNORMAL) AC_MSG_RESULT(yes),
+               AC_DEFINE(HAVE_ISNORMAL)
+               AC_MSG_RESULT(yes),
                AC_MSG_CHECKING([for fpclass in ieeefp.h])
                AC_TRY_RUN([#include <ieeefp.h>
                            int main() {
                                float f;
                                return fpclass(f)>=FP_NZERO || 
fpclass(f)<FP_NZERO ? 0 : 1;
                                }],
-               AC_DEFINE(HAVE_IEEEFP) AC_MSG_RESULT(yes),
-               HAVE_IEEEFP=0 AC_MSG_RESULT(no),HAVE_IEEEFP=0 AC_MSG_RESULT(no))
-       ,HAVE_ISNORMAL=0 AC_MSG_RESULT(no),HAVE_ISNORMAL=0 AC_MSG_RESULT(no))
+               AC_DEFINE(HAVE_IEEEFP)
+               AC_MSG_RESULT(yes),
+               HAVE_IEEEFP=0
+               AC_MSG_RESULT(no),
+               HAVE_IEEEFP=0
+               AC_MSG_RESULT(no))
+       ,HAVE_ISNORMAL=0
+       AC_MSG_RESULT(no),
+       HAVE_ISNORMAL=0
+       AC_MSG_RESULT(no))
 
 AC_MSG_CHECKING([for isfinite])
 AC_TRY_RUN([#define _GNU_SOURCE 1
@@ -1844,8 +1855,14 @@
                                return finite(f) || !finite(f) ? 0 : 1;
                                }],
                AC_DEFINE(HAVE_FINITE) AC_MSG_RESULT(yes),
-               HAVE_FINITE=0 AC_MSG_RESULT(no),HAVE_FINITE=0 AC_MSG_RESULT(no))
-       ,HAVE_ISFINITE=0 AC_MSG_RESULT(no),HAVE_ISFINITE=0 AC_MSG_RESULT(no))
+               HAVE_FINITE=0
+               AC_MSG_RESULT(no),
+               HAVE_FINITE=0
+               AC_MSG_RESULT(no))
+       ,HAVE_ISFINITE=0
+        AC_MSG_RESULT(no),
+        HAVE_ISFINITE=0
+        AC_MSG_RESULT(no))
 
 
 
@@ -1879,7 +1896,7 @@
     TLIBS="$TLIBS -lsocket -lnsl"
     AC_CHECK_FUNC(accept, tcl_checkNsl=0, [TLIBS=$tk_oldLibs])
 fi
-AC_CHECK_FUNC(gethostbyname, , AC_CHECK_LIB(nsl, main, [TLIBS="$TLIBS -lnsl"]))
+AC_CHECK_FUNC(gethostbyname, , [AC_CHECK_LIB(nsl, main, [TLIBS="$TLIBS 
-lnsl"])])
 
 RL_OJBS=""
 RL_LIB=""
@@ -2027,7 +2044,10 @@
 
 #if test $use = "386-linux" ; then
        AC_CHECK_HEADERS(asm/sigcontext.h)
-       AC_CHECK_HEADERS(asm/signal.h)
+       dnl Do not use the default includes for asm/signal.h
+       dnl because sys/select.h may have a conflicting 
+       dnl declaration for sigset_t
+       AC_CHECK_HEADERS([asm/signal.h], [], [], [/* none */])
        AC_MSG_CHECKING([for sigcontext...])
         AC_TRY_COMPILE([#include <signal.h>
        ],




reply via email to

[Prev in Thread] Current Thread [Next in Thread]