summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorFabian Groffen <grobian@gentoo.org>2011-01-12 21:01:07 +0100
committerKarel Zak <kzak@redhat.com>2011-01-17 16:32:39 +0100
commit0aeb57aca31816ca5b93cc10ad0fb9d62ad805de (patch)
tree15b5d1a3395da747dfaada6ac28f3a2b14b9b2e9 /configure.ac
parentaabe2441765c632bba697945491e3e0ac29ac886 (diff)
downloadutil-linux-old-0aeb57aca31816ca5b93cc10ad0fb9d62ad805de.tar.gz
build-sys: improve check for crypt
Check for crypt.h existence, and use it if available over using unistd.h for which a certain feature level has to be set to export a definition for crypt. On Solaris this set causes a standards conflict in the headers, because at the time of this check C99 mode is already enabled, which implies certain standards non-compatible with _XOPEN_SOURCE. 92 #define _XOPEN_SOURCE 93 #include <unistd.h> configure:16259: gcc -std=gnu99 -c -g -O2 conftest.c >&5 In file included from /usr/include/unistd.h:18, from conftest.c:93: /prefix/gentoo/usr/lib/gcc/i386-pc-solaris2.10/4.4.5/include-fixed/sys/feature_tests.h:341:2: error: #error "Compiler or options invalid for pre-UNIX 03 X/Open applications and pre-2001 POSIX applications" configure.ac: improve crypt check login-utils/my_crypt.h: replace old GNU_LIBRARY check with autoconf define for crypt.h [kzak@redhat.com: - remove my_crypt.h] Signed-off-by: Fabian Groffen <grobian@gentoo.org> Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac13
1 files changed, 12 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index f68d7907..8922d1f6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -520,17 +520,28 @@ else
AM_CONDITIONAL(HAVE_UTEMPTER, false)
fi
-
+# on Solaris, you can't mix and match standards, since we use c99
+# aparently at this stage, XOPEN_SOURCE will conflict. As workaround,
+# check for crypt.h and use that without XOPEN_SOURCE.
+AC_CHECK_HEADERS([crypt.h])
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+#ifdef HAVE_CRYPT_H
+#include <crypt.h>
+#else
#define _XOPEN_SOURCE
#include <unistd.h>
+#endif
]], [[
char *c = crypt("abc","pw");
]])],[],[
LIBS="$LIBS -lcrypt"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ #ifdef HAVE_CRYPT_H
+ #include <crypt.h>
+ #else
#define _XOPEN_SOURCE
#include <unistd.h>
+ #endif
]], [[
char *c = crypt("abc","pw");
]])],[