X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=configure.ac;h=c8371f304e5177a1a475e56ec3508cb7f69f55aa;hb=f94ed830df98218447f00b97f856de811bfcc4a2;hp=0bfcc833fafe357f954306c216043fa94937716e;hpb=8887295390c5785b82922eeb5caba49da2f373d9;p=mirror_frr.git diff --git a/configure.ac b/configure.ac index 0bfcc833f..c8371f304 100755 --- a/configure.ac +++ b/configure.ac @@ -7,7 +7,7 @@ ## AC_PREREQ([2.60]) -AC_INIT([frr], [7.3-dev], [https://github.com/frrouting/frr/issues]) +AC_INIT([frr], [7.4-dev], [https://github.com/frrouting/frr/issues]) PACKAGE_URL="https://frrouting.org/" AC_SUBST([PACKAGE_URL]) PACKAGE_FULLNAME="FRRouting" @@ -30,7 +30,7 @@ build_clippy="true" dnl case 1: external clippy if test -n "$with_clippy" -a "$with_clippy" != "no" -a "$with_clippy" != "yes"; then - if test "$enable_clippy_only" == "yes"; then + if test "$enable_clippy_only" = "yes"; then AC_MSG_ERROR([--enable-clippy-only does not make sense with --with-clippy]) fi @@ -249,7 +249,18 @@ if test "x${enable_gcov}" = "xyes"; then fi LDFLAGS="${LDFLAGS} -lgcov" -elif test "x${enable_dev_build}" = "xyes"; then +fi + +if test "x${enable_clang_coverage}" = "xyes"; then + AC_C_FLAG([-fprofile-instr-generate], [ + AC_MSG_ERROR([$CC does not support -fprofile-instr-generate.]) + ]) + AC_C_FLAG([-fcoverage-mapping], [ + AC_MSG_ERROR([$CC does not support -fcoverage-mapping.]) + ]) +fi + +if test "x${enable_dev_build}" = "xyes"; then AC_DEFINE([DEV_BUILD], [1], [Build for development]) if test "z$orig_cflags" = "z"; then AC_C_FLAG([-g3]) @@ -331,7 +342,14 @@ if test "$enable_memory_sanitizer" = "yes"; then AC_C_FLAG([-fsanitize=memory -fPIE -pie], [ AC_MSG_ERROR([$CC does not support Memory Sanitizer.]) ], [ - SAN_FLAGS="-fsanitize=memory -fPIE -pie" + SAN_FLAGS="$SAN_FLAGS -fsanitize=memory -fPIE -pie" + ]) +fi +if test "$enable_undefined_sanitizer" = "yes"; then + AC_C_FLAG([-fsanitize=undefined], [ + AC_MSG_ERROR([$CC does not support UndefinedBehaviorSanitizer.]) + ], [ + SAN_FLAGS="$SAN_FLAGS -fsanitize=undefined" ]) fi AC_SUBST([SAN_FLAGS]) @@ -567,7 +585,9 @@ AC_ARG_ENABLE([clippy-only], AC_ARG_ENABLE([numeric_version], AS_HELP_STRING([--enable-numeric-version], [Only numeric digits allowed in version (for Alpine)])) AC_ARG_ENABLE([gcov], - AS_HELP_STRING([--enable-gcov], [Add code coverage information])) + AS_HELP_STRING([--enable-gcov], [Collect coverage information with gcov])) +AC_ARG_ENABLE([clang_coverage], + AS_HELP_STRING([--enable-clang-coverage], [Collect coverage information with Clang Coverage])) AC_ARG_ENABLE([bfdd], AS_HELP_STRING([--disable-bfdd], [do not build bfdd])) AC_ARG_ENABLE([address-sanitizer], @@ -576,6 +596,8 @@ AC_ARG_ENABLE([thread-sanitizer], AS_HELP_STRING([--enable-thread-sanitizer], [enable ThreadSanitizer support for detecting data races])) AC_ARG_ENABLE([memory-sanitizer], AS_HELP_STRING([--enable-memory-sanitizer], [enable MemorySanitizer support for detecting uninitialized memory reads])) +AC_ARG_ENABLE([undefined-sanitizer], + AS_HELP_STRING([--undefined-sanitizer], [enable UndefinedBehaviorSanitizer support for detecting undefined behavior])) AC_ARG_WITH([crypto], AS_HELP_STRING([--with-crypto=], [choose between different implementations of cryptographic functions(default value is --with-crypto=internal)])) @@ -2091,6 +2113,19 @@ if test x"${enable_backtrace}" != x"no" ; then AC_DEFINE([HAVE_LIBUNWIND], [1], [libunwind]) backtrace_ok=yes ], [ + true + ]) + + if test "$backtrace_ok" = "no"; then + AC_CHECK_HEADER([unwind.h], [ + AC_SEARCH_LIBS([unw_getcontext], [unwind], [ + AC_DEFINE([HAVE_LIBUNWIND], [1], [libunwind]) + backtrace_ok=yes + ]) + ]) + fi + + if test "$backtrace_ok" = "no"; then case "$host_os" in sunos* | solaris2*) AC_CHECK_FUNCS([printstack], [ @@ -2107,7 +2142,7 @@ if test x"${enable_backtrace}" != x"no" ; then ],, [-lm]) ]) fi - ]) + fi if test x"${enable_backtrace}" = x"yes" -a x"${backtrace_ok}" = x"no"; then dnl user explicitly requested backtrace but we failed to find support