After a quick analysis, some work seems to be needed here. I'll try to
summarize the details:
* ldd /sbin/tc confirms it needs libxtables.so.4
and disabling the build of m_xt via the CONFIG_TC_XT config option
gets rid of this dependency.
* the old m_ipt, which has been replaced by m_xt since
the introduction of libxtables in iptables, did runtime
linking of the libraries it requires while m_xt doesn't
make use of dlopen() and thus introduces a dependency
between iproute (tc) and iptables (libxtables.so.4).
* tc (and ip) support plugins by runtime linking parts
of tc, which we make use of for the atm support.
* tc/m_action.c handles runtime linking of action modules,
this would be our way of avoiding iptables dependency
by building m_xt as a plugin instead of part of tc.
tc/Makefile need to be improved to support building
m_xt.so (instead of m_xt.o) and installing it in the tc module
directory.
Hopefully the attached patch together with
echo "TC_CONFIG_XT_MODULE:=y" >> Config
after configuration and before build should
(or added to the make command line) in debian/rules
should solve this..... needs testing....
... as always, help would be very appreciated.
--
Regards,
Andreas Henriksson
diff --git a/tc/Makefile b/tc/Makefile
index 805c108..3af33cf 100644
--- a/tc/Makefile
+++ b/tc/Makefile
@@ -43,10 +43,18 @@ TCMODULES += em_cmp.o
TCMODULES += em_u32.o
TCMODULES += em_meta.o
+TCSO :=
+ifeq ($(TC_CONFIG_ATM),y)
+ TCSO += q_atm.so
+endif
ifeq ($(TC_CONFIG_XT),y)
- TCMODULES += m_xt.o
- LDLIBS += -lxtables
+ ifeq ($(TC_CONFIG_XT_MODULE),y)
+ TCSO += m_xt.so
+ else
+ TCMODULES += m_xt.o
+ LDLIBS += -lxtables
+ endif
else
ifeq ($(TC_CONFIG_XT_OLD),y)
TCMODULES += m_xt_old.o
@@ -81,11 +89,6 @@ ifneq ($(IPT_LIB_DIR),)
CFLAGS += -DIPT_LIB_DIR=\"$(IPT_LIB_DIR)\"
endif
-TCSO :=
-ifeq ($(TC_CONFIG_ATM),y)
- TCSO += q_atm.so
-endif
-
YACC := bison
LEX := flex
@@ -114,6 +117,9 @@ clean:
q_atm.so: q_atm.c
$(CC) $(CFLAGS) $(LDFLAGS) -shared -fpic -o q_atm.so q_atm.c -latm
+m_xt.so: m_xt.c
+ $(CC) $(CFLAGS) $(LDFLAGS) -shared -fpic -o m_xt.so m_xt.c -lxtables
+
%.yacc.c: %.y
$(YACC) $(YACCFLAGS) -o $@ $<