Adding this configure option fixes compilation errors which occur when building with musl-libc. These are known issues with musl that cause structure redefinition errors in headers between linux/if_ether.h and netinet/ether.h. Signed-off-by: Joshua Lant joshualant@xxxxxxxxx --- INSTALL | 7 +++++++ configure.ac | 10 +++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/INSTALL b/INSTALL index d62b428c..8095b0bb 100644 --- a/INSTALL +++ b/INSTALL @@ -63,6 +63,13 @@ Configuring and compiling optionally specify a search path to include anyway. This is probably only useful for development. +--enable-musl-build + + When compiling against musl-libc, you may encounter issues with + redefinitions of structures in headers between musl and the kernel. + This is a known issue with musl-libc, and setting this option + should fix your build. + If you want to enable debugging, use ./configure CFLAGS="-ggdb3 -O0" diff --git a/configure.ac b/configure.ac index 2293702b..7f54ccd1 100644 --- a/configure.ac +++ b/configure.ac @@ -77,6 +77,9 @@ AC_ARG_WITH([xt-lock-name], AS_HELP_STRING([--with-xt-lock-name=PATH], AC_ARG_ENABLE([profiling], AS_HELP_STRING([--enable-profiling], [build for use of gcov/gprof]), [enable_profiling="$enableval"], [enable_profiling="no"]) +AC_ARG_ENABLE([musl-build], + AS_HELP_STRING([--enable-musl-build], [Set this option if you encounter compilation errors when building with musl-libc]), + [enable_musl_build="$enableval"], [enable_musl_build="no"]) AC_MSG_CHECKING([whether $LD knows -Wl,--no-undefined]) saved_LDFLAGS="$LDFLAGS"; @@ -206,6 +209,10 @@ if test "x$enable_profiling" = "xyes"; then regular_LDFLAGS+=" -lgcov --coverage" fi +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 +284,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}" -- 2.25.1