X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=configure.ac;h=9a9adac32595a534294734299a66f3cdeb96a0b7;hb=3bcfbee1522c1824d19d911856486d590196931b;hp=19d9ea220a0fb672608236a26d3b9941091e0689;hpb=027e437ccbbc70c2131a55c5d2f4f04b12d17e16;p=mirror_lxc.git diff --git a/configure.ac b/configure.ac index 19d9ea220..9a9adac32 100644 --- a/configure.ac +++ b/configure.ac @@ -53,7 +53,7 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #define CLANG_VERSION \ (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__) -#if GCC_VERSION < 40600 && CLANG_VERSION < 10000 +#if GCC_VERSION < 40700 && CLANG_VERSION < 10000 #error Sorry, your compiler is too old - please upgrade it #endif ]])], [valid_compiler=yes], [valid_compiler=no]) @@ -483,7 +483,7 @@ AC_ARG_WITH([cgroup-pattern], [AC_HELP_STRING( [--with-cgroup-pattern=pattern], [pattern for container cgroups] - )], [], [with_cgroup_pattern=['lxc/%n']]) + )], [], [with_cgroup_pattern=['lxc.payload/%n']]) # The path for the apparmor_parser's cache for generated apparmor profiles AC_ARG_WITH([apparmor-cache-dir], @@ -611,7 +611,12 @@ AC_CHECK_DECLS([PR_SET_NO_NEW_PRIVS], [], [], [#include ]) AC_CHECK_DECLS([PR_GET_NO_NEW_PRIVS], [], [], [#include ]) # Check for some headers -AC_CHECK_HEADERS([sys/signalfd.h pty.h ifaddrs.h sys/memfd.h sys/personality.h utmpx.h sys/timerfd.h sys/resource.h]) +AC_CHECK_HEADERS([pty.h sys/memfd.h sys/personality.h sys/resource.h sys/signalfd.h sys/timerfd.h utmpx.h]) + +AC_CHECK_HEADER([ifaddrs.h], + AM_CONDITIONAL(HAVE_IFADDRS_H, true) + AC_DEFINE(HAVE_IFADDRS_H, 1, [Have ifaddrs.h]), + AM_CONDITIONAL(HAVE_IFADDRS_H, false)) # lookup major()/minor()/makedev() AC_HEADER_MAJOR @@ -619,6 +624,12 @@ AC_HEADER_MAJOR # Check for some syscalls functions AC_CHECK_FUNCS([setns pivot_root sethostname unshare rand_r confstr faccessat gettid memfd_create]) +# Check for strerror_r() support. Defines: +# - HAVE_STRERROR_R if available +# - HAVE_DECL_STRERROR_R if defined +# - STRERROR_R_CHAR_P if it returns char * +AC_FUNC_STRERROR_R + # Check for some functions AC_CHECK_LIB(pthread, main) AC_CHECK_FUNCS(statvfs) @@ -640,6 +651,10 @@ AC_CHECK_FUNCS([fgetln], AM_CONDITIONAL(HAVE_FGETLN, true) AC_DEFINE(HAVE_FGETLN,1,[Have fgetln]), AM_CONDITIONAL(HAVE_FGETLN, false)) +AC_CHECK_FUNCS([keyctl], + AM_CONDITIONAL(HAVE_KEYCTL, true) + AC_DEFINE(HAVE_KEYCTL,1,[Have keyctl]), + AM_CONDITIONAL(HAVE_KEYCTL, false)) AC_CHECK_FUNCS([prlimit], AM_CONDITIONAL(HAVE_PRLIMIT, true) AC_DEFINE(HAVE_PRLIMIT,1,[Have prlimit]), @@ -661,6 +676,9 @@ AC_CHECK_FUNCS([strlcat], AC_DEFINE(HAVE_STRLCAT,1,[Have strlcat]), AM_CONDITIONAL(HAVE_STRLCAT, false)) +# HAVE_STRUCT_RTNL_LINK_STATS64={0,1} +AC_CHECK_TYPES([struct rtnl_link_stats64], [], [], [[#include ]]) + # Check for some libraries AX_PTHREAD AC_SEARCH_LIBS(clock_gettime, [rt]) @@ -672,10 +690,43 @@ AC_PROG_SED # See if we support thread-local storage. LXC_CHECK_TLS +AX_CHECK_COMPILE_FLAG([-fdiagnostics-color], [CFLAGS="$CFLAGS -fdiagnostics-color"],,[-Werror]) +AX_CHECK_COMPILE_FLAG([-Wimplicit-fallthrough], [CFLAGS="$CFLAGS -Wimplicit-fallthrough"],,[-Werror]) +AX_CHECK_COMPILE_FLAG([-Wcast-align], [CFLAGS="$CFLAGS -Wcast-align"],,[-Werror]) +AX_CHECK_COMPILE_FLAG([-Wstrict-prototypes], [CFLAGS="$CFLAGS -Wstrict-prototypes"],,[-Werror]) +AX_CHECK_COMPILE_FLAG([-fno-strict-aliasing], [CFLAGS="$CFLAGS -fno-strict-aliasing"],,[-Werror]) +AX_CHECK_COMPILE_FLAG([-fstack-clash-protection], [CFLAGS="$CFLAGS -fstack-clash-protection"],,[-Werror]) +AX_CHECK_COMPILE_FLAG([-fstack-protector-strong], [CFLAGS="$CFLAGS -fstack-protector-strong"],,[-Werror]) +AX_CHECK_COMPILE_FLAG([-g], [CFLAGS="$CFLAGS -g"],,[-Werror]) +AX_CHECK_COMPILE_FLAG([--mcet -fcf-protection], [CFLAGS="$CFLAGS --mcet -fcf-protection"],,[-Werror]) +AX_CHECK_COMPILE_FLAG([-Werror=implicit-function-declaration], [CFLAGS="$CFLAGS -Werror=implicit-function-declaration"],,[-Werror]) + +AX_CHECK_LINK_FLAG([-z relro], [LDLAGS="$LDLAGS -z relro"],,[]) +AX_CHECK_LINK_FLAG([-z now], [LDLAGS="$LDLAGS -z now"],,[]) + +CFLAGS="$CFLAGS -Wvla -std=gnu11" if test "x$enable_werror" = "xyes"; then - CFLAGS="$CFLAGS -Werror -Wvla -std=gnu11" + CFLAGS="$CFLAGS -Werror" fi +AC_ARG_ENABLE([thread-safety], + [AC_HELP_STRING([--enable-thread-safety], [enforce thread-safety otherwise fail the build [default=yes]])], + [], [enable_thread_safety=yes]) +AM_CONDITIONAL([ENFORCE_THREAD_SAFETY], [test "x$enable_thread_safety" = "xyes"]) + +AC_ARG_ENABLE([dlog], + [AC_HELP_STRING([--enable-dlog], [enable dlog support [default=no]])], + [], [enable_dlog=no]) +AM_CONDITIONAL([ENABLE_DLOG], [test "x$enable_dlog" = "xyes"]) + +AM_COND_IF([ENABLE_DLOG], + [PKG_CHECK_MODULES([DLOG],[dlog],[],[ + AC_CHECK_HEADER([dlog.h],[],[AC_MSG_ERROR([You must install the dlog development package in order to compile lxc])]) + AC_CHECK_LIB([dlog], [dlog_print],[],[AC_MSG_ERROR([You must install the dlog development package in order to compile lxc])]) + AC_SUBST([DLOG_LIBS], [-ldlog]) + ]) + ]) + # Files requiring some variable expansion AC_CONFIG_FILES([ Makefile @@ -684,6 +735,7 @@ AC_CONFIG_FILES([ config/Makefile config/apparmor/Makefile + config/apparmor/abstractions/start-container config/selinux/Makefile config/bash/Makefile config/bash/lxc @@ -919,4 +971,10 @@ Debugging: Paths: - Logs in configpath: $enable_configpath_log + +Thread-safety: + - enforce: $enable_thread_safety + +Dlog: + - enable: $enable_dlog EOF