aboutsummaryrefslogtreecommitdiffstats
path: root/package/network/utils/iproute2/patches/190-link-libelf-to-tc-only.patch
blob: 31aacffba82231ba39c9a3c5097455c2ae28c930 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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 $@ $^