summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDennis Camera <skonfig@dtnr.ch>2022-08-26 00:38:26 +0200
committerDennis Camera <skonfig@dtnr.ch>2022-08-26 00:38:26 +0200
commit4c3ff68495f5fddfa9691130532ac1d4920ff040 (patch)
tree3bf596dc577fc3773589b4488fc65216f928ff33
parent9e29745bfb9ab80489975f9b9acc7e8695b2486f (diff)
downloadskonfig-c-main.tar.gz
skonfig-c-main.zip
[configure.ac] Only check for compiler options late in the processHEADmain
Setting too many options already breaks some of autoconf's standard checks, e.g. for stdbool.h. configure:5449: checking for stdbool.h that conforms to C99 configure:5565: gcc -c -g -O2 -Wall -Werror -pedantic -pedantic-errors -Werror=pedantic -Wformat=2 -Wformat-overflow=2 -fstack-protector-strong -fstack-clash-protection -fsanitize=leak -fsanitize=address -fsanitize=pointer-compare -fsanitize=pointer-subtract -fsanitize=undefined -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=500 conftest.c >&5 conftest.c: In function 'main': conftest.c:125:14: error: the address of 's' will always evaluate as 'true' [-Werror=address] 125 | bool ps = &s; | ^~~~ conftest.c:130:16: error: the address of 't' will always evaluate as 'true' [-Werror=address] 130 | _Bool pt = &t; | ^~~~~ conftest.c:137:22: error: the address of 'a' will always evaluate as 'true' [-Werror=address] 137 | return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !j + !k | ^ conftest.c:137:27: error: the address of 'b' will always evaluate as 'true' [-Werror=address] 137 | return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !j + !k | ^ conftest.c:137:32: error: the address of 'c' will always evaluate as 'true' [-Werror=address] 137 | return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !j + !k | ^ conftest.c:137:37: error: the address of 'd' will always evaluate as 'true' [-Werror=address] 137 | return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !j + !k | ^ conftest.c:137:62: error: the address of 'i' will always evaluate as 'true' [-Werror=address] 137 | return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !j + !k | ^
-rw-r--r--configure.ac112
1 files changed, 56 insertions, 56 deletions
diff --git a/configure.ac b/configure.ac
index 9d10ffb..ce13421 100644
--- a/configure.ac
+++ b/configure.ac
@@ -24,6 +24,62 @@ m4_version_prereq([2.70],[],[AC_PROG_CC_C99])
AC_PROG_CPP
AC_PROG_MAKE_SET
+# Checks for libraries.
+
+# Check POSIX conformance level.
+_want_posix_level=200112L
+_posix_level_human=POSIX.1-2001
+AC_MSG_CHECKING([if the POSIX conformance level can be set to ${_posix_level_human}])
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([
+#define _POSIX_C_SOURCE ${_want_posix_level}
+#include <unistd.h>
+#if _POSIX_VERSION != ${_want_posix_level}
+#error incorrect _POSIX_VERSION
+#endif
+])],
+[AC_MSG_RESULT([yes])],
+[AC_MSG_RESULT([no]);
+ AC_MSG_FAILURE([this system does not conform to the ${_posix_level_human} standard])
+])
+AC_DEFINE_UNQUOTED([_POSIX_C_SOURCE], [${_want_posix_level}], [define the POSIX conformance level])
+CFLAGS=${CFLAGS-}${CFLAGS:+ }-D_POSIX_C_SOURCE=${_want_posix_level}
+
+# Define X/Open conformance level.
+_want_xopen_level=500
+AC_DEFINE_UNQUOTED([_XOPEN_SOURCE], [${_want_xopen_level}], [define the X/Open conformance level])
+CFLAGS=${CFLAGS-}${CFLAGS:+ }-D_XOPEN_SOURCE=${_want_xopen_level}
+
+# Checks for header files.
+AC_HEADER_STDC
+AC_HEADER_STDBOOL
+AC_HEADER_STAT
+
+AC_CHECK_HEADERS_ONCE([stdarg.h])
+AC_CHECK_HEADERS_ONCE([linux/limits.h])
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_C_CONST
+AC_C_INLINE
+AC_C_RESTRICT
+AC_C_STRINGIZE
+AC_C_VARARRAYS
+AC_TYPE_SIZE_T
+AC_TYPE_UINT8_T
+
+if test x"$ac_cv_c_vararrays" != x'yes'
+then
+ AC_MSG_ERROR([$CC does not support variable-length arrays (VLAs)])
+fi
+
+# Checks for library functions.
+
+AC_CHECK_FUNCS_ONCE([getenv getpwuid stat])
+AC_CHECK_FUNCS_ONCE([strdup strncpy strncat])
+
+AC_CHECK_FUNCS_ONCE([mktemp mkdtemp tempnam])
+AC_CHECK_DECLS([mkdtemp, mktemp], [], [], [[#include <stdlib.h>]])
+AC_CHECK_DECLS([tempnam], [], [], [[#include <stdio.h>]])
+
# Checks for compiler options.
_cccheckingopts=$(
# clang (newer versions) don't fail if they see an unknown argument.
@@ -129,62 +185,6 @@ AC_DEFINE_UNQUOTED([SK_WARN_UNUSED_RESULT], [${_sk_warn_unused_result:-/* warn_u
AC_DEFINE_UNQUOTED([HAVE_CC_NONNULL_CHECK], $((_sk_cc_nonnull_check)), [Define to 1 if the CC supports __attribute__(nonnull)])
-# Checks for libraries.
-
-# Check POSIX conformance level.
-_want_posix_level=200112L
-_posix_level_human=POSIX.1-2001
-AC_MSG_CHECKING([if the POSIX conformance level can be set to ${_posix_level_human}])
-AC_COMPILE_IFELSE([AC_LANG_SOURCE([
-#define _POSIX_C_SOURCE ${_want_posix_level}
-#include <unistd.h>
-#if _POSIX_VERSION != ${_want_posix_level}
-#error incorrect _POSIX_VERSION
-#endif
-])],
-[AC_MSG_RESULT([yes])],
-[AC_MSG_RESULT([no]);
- AC_MSG_FAILURE([this system does not conform to the ${_posix_level_human} standard])
-])
-AC_DEFINE_UNQUOTED([_POSIX_C_SOURCE], [${_want_posix_level}], [define the POSIX conformance level])
-CFLAGS=${CFLAGS-}${CFLAGS:+ }-D_POSIX_C_SOURCE=${_want_posix_level}
-
-# Define X/Open conformance level.
-_want_xopen_level=500
-AC_DEFINE_UNQUOTED([_XOPEN_SOURCE], [${_want_xopen_level}], [define the X/Open conformance level])
-CFLAGS=${CFLAGS-}${CFLAGS:+ }-D_XOPEN_SOURCE=${_want_xopen_level}
-
-# Checks for header files.
-AC_HEADER_STDC
-AC_HEADER_STDBOOL
-AC_HEADER_STAT
-
-AC_CHECK_HEADERS_ONCE([stdarg.h])
-AC_CHECK_HEADERS_ONCE([linux/limits.h])
-
-# Checks for typedefs, structures, and compiler characteristics.
-AC_C_CONST
-AC_C_INLINE
-AC_C_RESTRICT
-AC_C_STRINGIZE
-AC_C_VARARRAYS
-AC_TYPE_SIZE_T
-AC_TYPE_UINT8_T
-
-if test x"$ac_cv_c_vararrays" != x'yes'
-then
- AC_MSG_ERROR([$CC does not support variable-length arrays (VLAs)])
-fi
-
-# Checks for library functions.
-
-AC_CHECK_FUNCS_ONCE([getenv getpwuid stat])
-AC_CHECK_FUNCS_ONCE([strdup strncpy strncat])
-
-AC_CHECK_FUNCS_ONCE([mktemp mkdtemp tempnam])
-AC_CHECK_DECLS([mkdtemp, mktemp], [], [], [[#include <stdlib.h>]])
-AC_CHECK_DECLS([tempnam], [], [], [[#include <stdio.h>]])
-
# Add debug support
AC_ARG_ENABLE(
[debug],