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>v19.07.3_mercusys_ac12_duma
parent
e6d84fa886
commit
26681fa6a6
@ -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"
|
||||
|
@ -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 $@ $^
|
Loading…
Reference in New Issue