From 2bee6b25315e7ddb754d2f0d7b50ac33fa23e995 Mon Sep 17 00:00:00 2001 From: Michael Jeanson Date: Mon, 22 Mar 2021 12:44:54 -0400 Subject: [PATCH] configure: regroup and expand C compiler checks This is part of an effort to standardise our autotools setup across project to simplify maintenance. Change-Id: I304f4bda39e60321248772ef9864cd205a049a6f Signed-off-by: Michael Jeanson Signed-off-by: Mathieu Desnoyers --- configure.ac | 86 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 52 insertions(+), 34 deletions(-) diff --git a/configure.ac b/configure.ac index 1f80ffe0..685e6fe4 100644 --- a/configure.ac +++ b/configure.ac @@ -57,21 +57,64 @@ AM_MAINTAINER_MODE([enable]) # Enable silent rules by default AM_SILENT_RULES([yes]) -# Checks for C compiler -AC_USE_SYSTEM_EXTENSIONS -AC_SYS_LARGEFILE + +## ## +## C compiler checks ## +## ## + +# Choose the C compiler AC_PROG_CC # AC_PROG_CC_STDC was merged in AC_PROG_CC in autoconf 2.70 m4_version_prereq([2.70], [], [AC_PROG_CC_STDC]) -AX_CXX_COMPILE_STDCXX([11], [noext], [optional]) -AM_CONDITIONAL([HAVE_CXX], [test "$HAVE_CXX11" = "1"]) -# Check if the compiler support weak symbols +# Make sure the C compiler supports C99 +AS_IF([test "$ac_cv_prog_cc_c99" = "no"], [AC_MSG_ERROR([The compiler does not support C99])]) + +# Enable available system extensions and LFS support +AC_USE_SYSTEM_EXTENSIONS +AC_SYS_LARGEFILE + +# Make sure the C compiler supports __attribute__ +AX_C___ATTRIBUTE__ +AS_IF([test "x$ax_cv___attribute__" != "xyes"], + [AC_MSG_ERROR([The compiler does not support __attribute__ extensions])]) + +# Make sure we have pthread support +AX_PTHREAD([], [AC_MSG_ERROR([Could not configure pthread support])]) + +# Make sure the C compiler supports weak symbols AX_SYS_WEAK_ALIAS +AS_IF([test "x$ax_cv_sys_weak_alias" = "xno"], + [AC_MSG_ERROR([Your platform doesn't support weak symbols.])]) + +# Checks for typedefs, structures, and compiler characteristics. +AC_C_INLINE +AC_C_TYPEOF +AC_TYPE_INT16_T +AC_TYPE_INT32_T +AC_TYPE_INT64_T +AC_TYPE_INT8_T +AC_TYPE_MODE_T +AC_TYPE_OFF_T +AC_TYPE_PID_T +AC_TYPE_SIZE_T +AC_TYPE_SSIZE_T +AC_TYPE_UID_T +AC_TYPE_UINT16_T +AC_TYPE_UINT32_T +AC_TYPE_UINT64_T +AC_TYPE_UINT8_T +AC_CHECK_TYPES([ptrdiff_t]) + + +## ## +## C++ compiler checks ## +## ## + +# Find an optional C++11 compiler without GNU extensions (-std=c++11) +AX_CXX_COMPILE_STDCXX([11], [noext], [optional]) +AM_CONDITIONAL([HAVE_CXX], [test "$HAVE_CXX11" = "1"]) -AS_IF([test "x${ax_cv_sys_weak_alias}" = "xno"], [ - AC_MSG_ERROR([Your platform doesn't support weak symbols.]) -]) # Checks for programs. AM_PROG_AR @@ -116,31 +159,6 @@ AS_IF([test "x$enable_shared" = "xyes"], [ AC_MSG_ERROR([LTTng-UST requires shared libraries to be enabled]) ]) -# Checks for typedefs, structures, and compiler characteristics. -AC_C_INLINE -AC_TYPE_INT8_T -AC_TYPE_INT16_T -AC_TYPE_INT32_T -AC_TYPE_INT64_T -AC_TYPE_MODE_T -AC_TYPE_OFF_T -AC_TYPE_PID_T -AC_TYPE_SIZE_T -AC_TYPE_SSIZE_T -AC_TYPE_UID_T -AC_TYPE_UINT8_T -AC_TYPE_UINT16_T -AC_TYPE_UINT32_T -AC_TYPE_UINT64_T -AC_CHECK_TYPES([ptrdiff_t]) - -AX_C___ATTRIBUTE__ -AS_IF([test "x$ax_cv___attribute__" = "xyes"], - [:], - [AC_MSG_ERROR([The compiler does not support __attribute__ extensions])]) - -AX_PTHREAD(,[AC_MSG_ERROR([Could not configure pthreads support])]) - # Checks for library functions. AC_FUNC_CHOWN AC_FUNC_FORK -- 2.34.1