From 3e3af1908c9487e85d5666c83551024b6ec446e2 Mon Sep 17 00:00:00 2001 From: Tony Ambardar Date: Sun, 18 Apr 2021 03:09:44 -0700 Subject: [PATCH] iproute2: avoid unneeded compiles to speed building Skip building Makefile targets that aren't packaged: tipc, dcb, ifstat, rtacct, lnstat, and man. Also, only compile targets needed for the current build variant i.e. don't compile 'tc' when building an 'ip' variant and vice versa. These changes reduce typical build times by over 30%: $ make package/iproute2/clean && time make -j8 package/iproute2/compile (old) ... real 2m24.985s user 3m12.537s sys 0m26.677s (new) ... real 1m36.945s user 2m8.734s sys 0m20.046s Signed-off-by: Tony Ambardar --- package/network/utils/iproute2/Makefile | 3 ++- ...=> 120-no_arpd_ifstat_rtacct_lnstat.patch} | 7 +++++- ....patch => 130-no_netem_tipc_dcb_man.patch} | 2 +- .../patches/195-build_variant_ip_tc.patch | 22 +++++++++++++++++++ 4 files changed, 31 insertions(+), 3 deletions(-) rename package/network/utils/iproute2/patches/{120-no_arpd.patch => 120-no_arpd_ifstat_rtacct_lnstat.patch} (56%) rename package/network/utils/iproute2/patches/{130-no_netem.patch => 130-no_netem_tipc_dcb_man.patch} (84%) create mode 100644 package/network/utils/iproute2/patches/195-build_variant_ip_tc.patch diff --git a/package/network/utils/iproute2/Makefile b/package/network/utils/iproute2/Makefile index d7a7b3ed0f..54165636c7 100644 --- a/package/network/utils/iproute2/Makefile +++ b/package/network/utils/iproute2/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=iproute2 PKG_VERSION:=5.11.0 -PKG_RELEASE:=3 +PKG_RELEASE:=4 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2 @@ -153,6 +153,7 @@ MAKE_FLAGS += \ KERNEL_INCLUDE="$(LINUX_DIR)/user_headers/include" \ SHARED_LIBS=$(SHARED_LIBS) \ IP_CONFIG_TINY=$(IP_CONFIG_TINY) \ + BUILD_VARIANT=$(BUILD_VARIANT) \ LIBBPF_FORCE=$(LIBBPF_FORCE) \ HAVE_ELF=$(HAVE_ELF) \ HAVE_MNL=$(HAVE_MNL) \ diff --git a/package/network/utils/iproute2/patches/120-no_arpd.patch b/package/network/utils/iproute2/patches/120-no_arpd_ifstat_rtacct_lnstat.patch similarity index 56% rename from package/network/utils/iproute2/patches/120-no_arpd.patch rename to package/network/utils/iproute2/patches/120-no_arpd_ifstat_rtacct_lnstat.patch index 772398140b..bb6a8d0180 100644 --- a/package/network/utils/iproute2/patches/120-no_arpd.patch +++ b/package/network/utils/iproute2/patches/120-no_arpd_ifstat_rtacct_lnstat.patch @@ -1,6 +1,11 @@ --- a/misc/Makefile +++ b/misc/Makefile -@@ -6,9 +6,9 @@ TARGETS=ss nstat ifstat rtacct lnstat +@@ -2,13 +2,13 @@ + SSOBJ=ss.o ssfilter_check.o ssfilter.tab.o + LNSTATOBJ=lnstat.o lnstat_util.o + +-TARGETS=ss nstat ifstat rtacct lnstat ++TARGETS=ss nstat include ../config.mk diff --git a/package/network/utils/iproute2/patches/130-no_netem.patch b/package/network/utils/iproute2/patches/130-no_netem_tipc_dcb_man.patch similarity index 84% rename from package/network/utils/iproute2/patches/130-no_netem.patch rename to package/network/utils/iproute2/patches/130-no_netem_tipc_dcb_man.patch index 7d2fa03945..e3faee0d8f 100644 --- a/package/network/utils/iproute2/patches/130-no_netem.patch +++ b/package/network/utils/iproute2/patches/130-no_netem_tipc_dcb_man.patch @@ -5,7 +5,7 @@ YACCFLAGS = -d -t -v -SUBDIRS=lib ip tc bridge misc netem genl tipc devlink rdma dcb man -+SUBDIRS=lib ip tc bridge misc genl tipc devlink rdma dcb man ++SUBDIRS=lib ip tc bridge misc genl devlink rdma LIBNETLINK=../lib/libutil.a ../lib/libnetlink.a LDLIBS += $(LIBNETLINK) diff --git a/package/network/utils/iproute2/patches/195-build_variant_ip_tc.patch b/package/network/utils/iproute2/patches/195-build_variant_ip_tc.patch new file mode 100644 index 0000000000..13418662ee --- /dev/null +++ b/package/network/utils/iproute2/patches/195-build_variant_ip_tc.patch @@ -0,0 +1,22 @@ +--- a/ip/Makefile ++++ b/ip/Makefile +@@ -26,7 +26,7 @@ STATIC_SYM_SOURCES:=$(filter-out $(STATI + + ALLOBJ=$(IPOBJ) $(RTMONOBJ) + SCRIPTS=ifcfg rtpr routel routef +-TARGETS=ip rtmon ++TARGETS=$(findstring ip,$(BUILD_VARIANT)) rtmon + + all: $(TARGETS) $(SCRIPTS) + +--- a/tc/Makefile ++++ b/tc/Makefile +@@ -141,7 +141,7 @@ MODDESTDIR := $(DESTDIR)$(LIBDIR)/tc + $(QUIET_CC)$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -shared -fpic $< -o $@ + + +-all: tc $(TCSO) ++all: $(findstring tc,$(BUILD_VARIANT)) $(TCSO) + + tc: $(TCOBJ) $(LIBNETLINK) libtc.a + $(QUIET_LINK)$(CC) $(filter-out dynsyms.list, $^) $(LDFLAGS) $(LDLIBS) -o $@ -- 2.30.2