aboutsummaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
authorTony Ambardar <itugrok@yahoo.com>2018-11-23 16:33:45 -0800
committerKevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>2019-02-11 20:18:48 +0000
commit26681fa6a6fcbec0024906eb8367e9a3160521fb (patch)
tree7ebfc2e9277b130eb54a4eff60cd6b5b6b3d4385 /package
parente6d84fa8864e7bbbcec139dd09a2922a06f5b2a0 (diff)
downloadupstream-26681fa6a6fcbec0024906eb8367e9a3160521fb.tar.gz
upstream-26681fa6a6fcbec0024906eb8367e9a3160521fb.tar.bz2
upstream-26681fa6a6fcbec0024906eb8367e9a3160521fb.zip
iproute2: simplify linking libelf for eBFP/XDP object file support
Simplify build and runtime dependencies on libelf, which allows tc and ip to load BPF and XDP object files respectively. Preserve optionality of libelf by having configuration script follow the HAVE_ELF environment variable, used similarly to the HAVE_MNL variable. Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
Diffstat (limited to 'package')
-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, 21 insertions, 61 deletions
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 $@ $^