From: Joshua Lant Date: Wed, 28 Aug 2024 12:47:31 +0000 (+0100) Subject: configure: Determine if musl is used for build X-Git-Tag: v1.8.11~27 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=76fce22826f8e860b5eb5b5a2463040c17ff85da;p=thirdparty%2Fiptables.git configure: Determine if musl is used for build Error compiling with musl-libc: The commit hash 810f8568f44f5863c2350a39f4f5c8d60f762958 introduces the netinet/ether.h header into xtables.h, which causes an error due to the redefinition of the ethhdr struct, defined in linux/if_ether.h and netinet/ether.h. This is fixed by the inclusion of -D__UAPI_DEF_ETHHDR=0 in CFLAGS for musl. Automatically check for this macro, since it is defined in musl but not in glibc. Signed-off-by: Joshua Lant joshualant@gmail.com Signed-off-by: Phil Sutter --- diff --git a/configure.ac b/configure.ac index 2293702b..a19a60c0 100644 --- a/configure.ac +++ b/configure.ac @@ -206,6 +206,25 @@ if test "x$enable_profiling" = "xyes"; then regular_LDFLAGS+=" -lgcov --coverage" fi +AC_MSG_CHECKING([whether the build is using musl-libc]) +enable_musl_build="" + +AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[#include ]], + [[ + #if ! defined(__UAPI_DEF_ETHHDR) || __UAPI_DEF_ETHHDR != 0 + #error error trying musl... + #endif + ]] + )], + [enable_musl_build="yes"],[enable_musl_build="no"] +) +AC_MSG_RESULT([${enable_musl_build}]) + +if test "x$enable_musl_build" = "xyes"; then + regular_CFLAGS+=" -D__UAPI_DEF_ETHHDR=0" +fi + define([EXPAND_VARIABLE], [$2=[$]$1 if test $prefix = 'NONE'; then @@ -277,7 +296,8 @@ Build parameters: Installation prefix (--prefix): ${prefix} Xtables extension directory: ${e_xtlibdir} Pkg-config directory: ${e_pkgconfigdir} - Xtables lock file: ${xt_lock_name}" + Xtables lock file: ${xt_lock_name} + Build against musl-libc: ${enable_musl_build}" if [[ -n "$ksourcedir" ]]; then echo " Kernel source directory: ${ksourcedir}"