fi
fi
+cat << EOF > weakdep_test.c
+#include <stddef.h>
+#include <libkmod.h>
+
+int main(void) {
+ struct kmod_module *mod = NULL;
+ struct kmod_list *modweak = NULL;
+
+ return kmod_module_get_weakdeps(mod, &modweak);
+}
+EOF
+
+# shellcheck disable=SC2086,SC2046
+${CC} $CFLAGS $LDFLAGS weakdep_test.c $(${PKG_CONFIG} --libs libkmod) > /dev/null 2>&1
+ret=$?
+rm -f weakdep_test.c a.out
+
+if test $ret -eq 0; then
+ KMOD_CFLAGS_EXTRA+=" -DCONFIG_WEAKDEP"
+fi
+
cat > Makefile.inc.$$ << EOF
prefix ?= ${prefix}
libdir ?= ${libdir:-${prefix}/lib}
enable_documentation ?= ${enable_documentation:-yes}
enable_dracut_cpio ?= ${enable_dracut_cpio}
bindir ?= ${bindir:-${prefix}/bin}
-KMOD_CFLAGS ?= $(${PKG_CONFIG} --cflags " libkmod >= 23 ")
+KMOD_CFLAGS ?= $(${PKG_CONFIG} --cflags " libkmod >= 23 ") ${KMOD_CFLAGS_EXTRA}
KMOD_LIBS ?= $(${PKG_CONFIG} --libs " libkmod >= 23 ")
FTS_LIBS ?= ${FTS_LIBS}
EOF
_cleanup_kmod_module_unref_list_ struct kmod_list *modlist = NULL;
_cleanup_kmod_module_unref_list_ struct kmod_list *modpre = NULL;
_cleanup_kmod_module_unref_list_ struct kmod_list *modpost = NULL;
+#ifdef CONFIG_WEAKDEP
_cleanup_kmod_module_unref_list_ struct kmod_list *modweak = NULL;
+#endif
log_debug("dracut_install '%s' '%s' OK", path, &path[kerneldirlen]);
install_firmware(mod);
modlist = kmod_module_get_dependencies(mod);
*err = *err ? : r;
}
}
+#ifdef CONFIG_WEAKDEP
if (*err == 0) {
*err = kmod_module_get_weakdeps(mod, &modweak);
if (*err == 0)
*err = install_dependent_modules(ctx, modweak, NULL);
}
+#endif
} else {
log_error("dracut_install '%s' '%s' ERROR", path, &path[kerneldirlen]);
}
_cleanup_kmod_module_unref_list_ struct kmod_list *modlist = NULL;
_cleanup_kmod_module_unref_list_ struct kmod_list *modpre = NULL;
_cleanup_kmod_module_unref_list_ struct kmod_list *modpost = NULL;
+#ifdef CONFIG_WEAKDEP
_cleanup_kmod_module_unref_list_ struct kmod_list *modweak = NULL;
+#endif
const char *path = NULL;
const char *name = NULL;
ret = ret ? : r;
}
}
+#ifdef CONFIG_WEAKDEP
if (ret == 0) {
ret = kmod_module_get_weakdeps(mod, &modweak);
if (ret == 0)
ret = install_dependent_modules(ctx, modweak, NULL);
}
+#endif
return ret;
}