diff --git a/package/network/utils/iproute2/Makefile b/package/network/utils/iproute2/Makefile index 56a16d095c..a9bcfd40a0 100644 --- a/package/network/utils/iproute2/Makefile +++ b/package/network/utils/iproute2/Makefile @@ -49,7 +49,7 @@ $(call Package/iproute2/Default) VARIANT:=full PROVIDES:=ip ALTERNATIVES:=300:/sbin/ip:/usr/libexec/ip-full - DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl + DEPENDS:=+libnl-tiny +libelf +(PACKAGE_devlink||PACKAGE_rdma):libmnl endef define Package/tc @@ -100,6 +100,14 @@ ifeq ($(BUILD_VARIANT),tiny) IP_CONFIG_TINY:=y endif +ifeq ($(BUILD_VARIANT),full) + HAVE_ELF:=y +endif + +ifeq ($(BUILD_VARIANT),tc) + HAVE_ELF:=y +endif + ifdef CONFIG_PACKAGE_devlink HAVE_MNL:=y endif @@ -121,6 +129,7 @@ MAKE_FLAGS += \ KERNEL_INCLUDE="$(LINUX_DIR)/user_headers/include" \ SHARED_LIBS="" \ IP_CONFIG_TINY=$(IP_CONFIG_TINY) \ + HAVE_ELF=$(HAVE_ELF) \ HAVE_MNL=$(HAVE_MNL) \ IPT_LIB_DIR=/usr/lib/iptables \ XT_LIB_DIR=/usr/lib/iptables \ diff --git a/package/network/utils/iproute2/patches/145-keep_libelf_optional.patch b/package/network/utils/iproute2/patches/145-keep_libelf_optional.patch new file mode 100644 index 0000000000..2e3ad18809 --- /dev/null +++ b/package/network/utils/iproute2/patches/145-keep_libelf_optional.patch @@ -0,0 +1,11 @@ +--- a/configure ++++ b/configure +@@ -228,7 +228,7 @@ EOF + + check_elf() + { +- if ${PKG_CONFIG} libelf --exists; then ++ if [ "${HAVE_ELF}" = "y" ] && ${PKG_CONFIG} libelf --exists; then + echo "HAVE_ELF:=y" >>$CONFIG + echo "yes" + diff --git a/package/network/utils/iproute2/patches/190-link-libelf-to-tc-only.patch b/package/network/utils/iproute2/patches/190-link-libelf-to-tc-only.patch deleted file mode 100644 index 31aacffba8..0000000000 --- a/package/network/utils/iproute2/patches/190-link-libelf-to-tc-only.patch +++ /dev/null @@ -1,60 +0,0 @@ ---- a/configure -+++ b/configure -@@ -231,8 +231,9 @@ check_elf() - echo "HAVE_ELF:=y" >>$CONFIG - echo "yes" - -- echo 'CFLAGS += -DHAVE_ELF' `${PKG_CONFIG} libelf --cflags` >> $CONFIG -- echo 'LDLIBS += ' `${PKG_CONFIG} libelf --libs` >>$CONFIG -+ echo 'CFLAGS += -DHAVE_ELF' >> $CONFIG -+ echo 'ELF_CFLAGS += ' `${PKG_CONFIG} libelf --cflags` >> $CONFIG -+ echo 'ELF_LDLIBS += ' `${PKG_CONFIG} libelf --libs` >>$CONFIG - else - echo "no" - fi ---- a/lib/Makefile -+++ b/lib/Makefile -@@ -11,9 +11,17 @@ UTILOBJ = utils.o rt_names.o ll_map.o ll - inet_proto.o namespace.o json_writer.o json_print.o \ - names.o color.o bpf.o exec.o fs.o - -+ELFOBJ=$(patsubst %.o,%.elf.o,$(UTILOBJ)) -+ - NLOBJ=libgenl.o libnetlink.o - --all: libnetlink.a libutil.a -+all: libnetlink.a libutil.a libutil-elf.a -+ -+%.o: %.c -+ $(QUIET_CC)$(CC) $(CFLAGS) -UHAVE_ELF $(EXTRA_CFLAGS) -c -o $@ $< -+ -+%.elf.o: %.c -+ $(QUIET_CC)$(CC) $(CFLAGS) $(ELF_CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $< - - libnetlink.a: $(NLOBJ) - $(QUIET_AR)$(AR) rcs $@ $^ -@@ -21,7 +29,10 @@ libnetlink.a: $(NLOBJ) - libutil.a: $(UTILOBJ) $(ADDLIB) - $(QUIET_AR)$(AR) rcs $@ $^ - -+libutil-elf.a: $(ELFOBJ) $(ADDLIB) -+ $(QUIET_AR)$(AR) rcs $@ $^ -+ - install: - - clean: -- rm -f $(NLOBJ) $(UTILOBJ) $(ADDLIB) libnetlink.a libutil.a -+ rm -f $(NLOBJ) $(UTILOBJ) $(ELFOBJ) $(ADDLIB) libnetlink.a libutil.a libutil-elf.a ---- a/tc/Makefile -+++ b/tc/Makefile -@@ -133,8 +133,8 @@ MODDESTDIR := $(DESTDIR)$(LIBDIR)/tc - - all: tc $(TCSO) - --tc: $(TCOBJ) $(LIBNETLINK) libtc.a -- $(QUIET_LINK)$(CC) $^ $(LDFLAGS) $(LDLIBS) -o $@ -+tc: $(TCOBJ) $(subst libutil.a,libutil-elf.a,$(LIBNETLINK)) libtc.a -+ $(QUIET_LINK)$(CC) $^ $(LDFLAGS) $(LDLIBS) $(ELF_LDLIBS) -o $@ - - libtc.a: $(TCLIB) - $(QUIET_AR)$(AR) rcs $@ $^