aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans Dedecker <dedeckeh@gmail.com>2019-02-19 15:14:42 +0100
committerHans Dedecker <dedeckeh@gmail.com>2019-02-19 15:22:28 +0100
commitde14f4301e7c40050a23a254bd62ed2edb496e09 (patch)
tree99dbb7ec401f3afa26be487f47a497462db4deb4
parent566bfa417e0e210a47b5481fa2001de0b47a9914 (diff)
downloadupstream-de14f4301e7c40050a23a254bd62ed2edb496e09.tar.gz
upstream-de14f4301e7c40050a23a254bd62ed2edb496e09.tar.bz2
upstream-de14f4301e7c40050a23a254bd62ed2edb496e09.zip
Revert "iproute2: simplify linking libelf for eBFP/XDP object file support"
This reverts commit 26681fa6a6fcbec0024906eb8367e9a3160521fb as it breaks the installation of the iproute2 utilities ip-bridge, ss, nstat, devlink and rdma for the ip-full variant Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
-rw-r--r--package/network/utils/iproute2/Makefile11
-rw-r--r--package/network/utils/iproute2/patches/145-keep_libelf_optional.patch11
-rw-r--r--package/network/utils/iproute2/patches/190-link-libelf-to-tc-only.patch60
3 files changed, 61 insertions, 21 deletions
diff --git a/package/network/utils/iproute2/Makefile b/package/network/utils/iproute2/Makefile
index a9bcfd40a0..56a16d095c 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 +libelf +(PACKAGE_devlink||PACKAGE_rdma):libmnl
+ DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl
endef
define Package/tc
@@ -100,14 +100,6 @@ 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
@@ -129,7 +121,6 @@ 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
deleted file mode 100644
index 2e3ad18809..0000000000
--- a/package/network/utils/iproute2/patches/145-keep_libelf_optional.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- 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
new file mode 100644
index 0000000000..31aacffba8
--- /dev/null
+++ b/package/network/utils/iproute2/patches/190-link-libelf-to-tc-only.patch
@@ -0,0 +1,60 @@
+--- 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 $@ $^