The hand-rolled configure script, for multiple options (selinux,mnl,elf), sets
a variable as well as modifying CFLAGS & LDLIBS.

If config.mk is later amended to disable a feature, the CFLAGS/LDLIBS tweaks
are still in place.

Push the CFLAGS/LDLIBS changes into new conditional Makefile code, so that they
are only passed when correctly needed.

Prior Gentoo testcase for reproduction:
USE=minimal ebuild ... compile.
- Linking with libbsd, libelf, libmnl & libcap based only on presence.
- Links based on libselinux based only on presence.

Closes: https://bugs.gentoo.org/643722
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>

Forward-ported from v4.14.1 to v4.16.0 by Lars Wendler <polynomial-c@gentoo.org>
Added libcap to v4.17.0 by Lars Wendler <polynomial-c@gentoo.org>
Forward-ported from v4.17.0 to v4.20.0 by Lars Wendler <polynomial-c@gentoo.org>
Forward-ported from v4.20.0 to v5.11.0 by Lars Wendler <polynomial-c@gentoo.org>
Forward-ported from v5.11.0 to v5.12.0 by Lars Wendler <polynomial-c@gentoo.org>

--- iproute2-5.12.0/bridge/Makefile
+++ iproute2-5.12.0/bridge/Makefile
@@ -2,6 +2,7 @@
 BROBJ = bridge.o fdb.o monitor.o link.o mdb.o vlan.o
 
 include ../config.mk
+include ../config.include
 
 all: bridge
 
--- iproute2-5.12.0/config.include
+++ iproute2-5.12.0/config.include
@@ -0,0 +1,32 @@
+# We can only modify CFLAGS/LDLIBS after all the config options are known.
+ifeq ($(IP_CONFIG_SETNS),y)
+	CFLAGS += $(IP_CONFIG_SETNS_CFLAGS)
+endif
+ifeq ($(HAVE_ELF),y)
+	CFLAGS += $(HAVE_ELF_CFLAGS)
+	LDLIBS += $(HAVE_ELF_LDLIBS)
+endif
+ifeq ($(HAVE_SELINUX),y)
+	CFLAGS += $(HAVE_SELINUX_CFLAGS)
+	LDLIBS += $(HAVE_SELINUX_LDLIBS)
+endif
+ifeq ($(HAVE_MNL),y)
+	CFLAGS += $(HAVE_MNL_CFLAGS)
+	LDLIBS += $(HAVE_MNL_LDLIBS)
+endif
+ifeq ($(HAVE_CAP),y)
+	CFLAGS += $(HAVE_CAP_CFLAGS)
+	LDLIBS += $(HAVE_CAP_LDLIBS)
+endif
+ifeq ($(HAVE_LIBBSD),y)
+	CFLAGS += $(HAVE_LIBBSD_CFLAGS)
+	LDLIBS += $(HAVE_LIBBSD_LDLIBS)
+else
+	CFLAGS += -DNEED_STRLCPY
+endif
+
+# Rules can only be declared after all variables in them are known.
+%.o: %.c
+	$(QUIET_CC)$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CPPFLAGS) -c -o $@ $<
+
+# vim: ft=make:
--- iproute2-5.12.0/configure
+++ iproute2-5.12.0/configure
@@ -195,7 +195,7 @@
     if $CC -I$INCLUDE -o $TMPDIR/setnstest $TMPDIR/setnstest.c >/dev/null 2>&1; then
 	echo "IP_CONFIG_SETNS:=y" >>$CONFIG
 	echo "yes"
-	echo "CFLAGS += -DHAVE_SETNS" >>$CONFIG
+	echo "IP_CONFIG_SETNS_CFLAGS += -DHAVE_SETNS" >>$CONFIG
     else
 	echo "no"
     fi
@@ -238,8 +238,8 @@
 	echo "HAVE_ELF:=y" >>$CONFIG
 	echo "yes"
 
-	echo 'CFLAGS += -DHAVE_ELF' `${PKG_CONFIG} libelf --cflags` >> $CONFIG
-	echo 'LDLIBS += ' `${PKG_CONFIG} libelf --libs` >>$CONFIG
+	echo 'HAVE_ELF_CFLAGS += -DHAVE_ELF' `${PKG_CONFIG} libelf --cflags` >> $CONFIG
+	echo 'HAVE_ELF_LDLIBS += ' `${PKG_CONFIG} libelf --libs` >>$CONFIG
     else
 	echo "no"
     fi
@@ -357,8 +357,8 @@
 		echo "HAVE_SELINUX:=y" >>$CONFIG
 		echo "yes"
 
-		echo 'LDLIBS +=' `${PKG_CONFIG} --libs libselinux` >>$CONFIG
-		echo 'CFLAGS += -DHAVE_SELINUX' `${PKG_CONFIG} --cflags libselinux` >>$CONFIG
+		echo 'HAVE_SELINUX_CFLAGS += -DHAVE_SELINUX' `${PKG_CONFIG} --cflags libselinux` >>$CONFIG
+		echo 'HAVE_SELINUX_LDLIBS +=' `${PKG_CONFIG} --libs libselinux` >>$CONFIG
 	else
 		echo "no"
 	fi
@@ -370,8 +370,8 @@
 		echo "HAVE_MNL:=y" >>$CONFIG
 		echo "yes"
 
-		echo 'CFLAGS += -DHAVE_LIBMNL' `${PKG_CONFIG} libmnl --cflags` >>$CONFIG
-		echo 'LDLIBS +=' `${PKG_CONFIG} libmnl --libs` >> $CONFIG
+		echo 'HAVE_MNL_CFLAGS += -DHAVE_LIBMNL' `${PKG_CONFIG} libmnl --cflags` >>$CONFIG
+		echo 'HAVE_MNL_LDLIBS +=' `${PKG_CONFIG} libmnl --libs` >> $CONFIG
 	else
 		echo "no"
 	fi
@@ -411,8 +411,8 @@
 	echo "no"
     else
 	if ${PKG_CONFIG} libbsd --exists; then
-		echo 'CFLAGS += -DHAVE_LIBBSD' `${PKG_CONFIG} libbsd --cflags` >>$CONFIG
-		echo 'LDLIBS +=' `${PKG_CONFIG} libbsd --libs` >> $CONFIG
+		echo 'HAVE_LIBBSD_CFLAGS += -DHAVE_LIBBSD' `${PKG_CONFIG} libbsd --cflags` >>$CONFIG
+		echo 'HAVE_LIBBSD_LDLIBS +=' `${PKG_CONFIG} libbsd --libs` >> $CONFIG
 		echo "no"
 	else
 		echo 'CFLAGS += -DNEED_STRLCPY' >>$CONFIG
@@ -428,8 +428,8 @@
 		echo "HAVE_CAP:=y" >>$CONFIG
 		echo "yes"
 
-		echo 'CFLAGS += -DHAVE_LIBCAP' `${PKG_CONFIG} libcap --cflags` >>$CONFIG
-		echo 'LDLIBS +=' `${PKG_CONFIG} libcap --libs` >> $CONFIG
+		echo 'HAVE_CAP_CFLAGS += -DHAVE_LIBCAP' `${PKG_CONFIG} libcap --cflags` >>$CONFIG
+		echo 'HAVE_CAP_LDLIBS +=' `${PKG_CONFIG} libcap --libs` >> $CONFIG
 	else
 		echo "no"
 	fi
@@ -512,7 +512,3 @@
 
 echo -n "libcap support: "
 check_cap
-
-echo >> $CONFIG
-echo "%.o: %.c" >> $CONFIG
-echo '	$(QUIET_CC)$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CPPFLAGS) -c -o $@ $<' >> $CONFIG
--- iproute2-5.12.0/dcb/Makefile
+++ iproute2-5.12.0/dcb/Makefile
@@ -1,5 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0
 include ../config.mk
+include ../config.include
 
 TARGETS :=
 
--- iproute2-5.12.0/devlink/Makefile
+++ iproute2-5.12.0/devlink/Makefile
@@ -1,5 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0
 include ../config.mk
+include ../config.include
 
 TARGETS :=
 
--- iproute2-5.12.0/genl/Makefile
+++ iproute2-5.12.0/genl/Makefile
@@ -2,6 +2,7 @@
 GENLOBJ=genl.o
 
 include ../config.mk
+include ../config.include
 SHARED_LIBS ?= y
 
 CFLAGS += -fno-strict-aliasing
--- iproute2-5.12.0/ip/Makefile
+++ iproute2-5.12.0/ip/Makefile
@@ -16,6 +16,7 @@
 RTMONOBJ=rtmon.o
 
 include ../config.mk
+include ../config.include
 
 ALLOBJ=$(IPOBJ) $(RTMONOBJ)
 SCRIPTS=ifcfg rtpr routel routef
--- iproute2-5.12.0/lib/Makefile
+++ iproute2-5.12.0/lib/Makefile
@@ -1,5 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0
 include ../config.mk
+include ../config.include
 
 CFLAGS += -fPIC
 
--- iproute2-5.12.0/misc/Makefile
+++ iproute2-5.12.0/misc/Makefile
@@ -5,6 +5,7 @@
 TARGETS=ss nstat ifstat rtacct lnstat
 
 include ../config.mk
+include ../config.include
 
 ifeq ($(HAVE_BERKELEY_DB),y)
 	TARGETS += arpd
--- iproute2-5.12.0/netem/Makefile
+++ iproute2-5.12.0/netem/Makefile
@@ -1,5 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0
 include ../config.mk
+include ../config.include
 
 DISTGEN = maketable normal pareto paretonormal
 DISTDATA = normal.dist pareto.dist paretonormal.dist experimental.dist
--- iproute2-5.12.0/rdma/Makefile
+++ iproute2-5.12.0/rdma/Makefile
@@ -1,5 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB
 include ../config.mk
+include ../config.include
 
 TARGETS :=
 
--- iproute2-5.12.0/tc/Makefile
+++ iproute2-5.12.0/tc/Makefile
@@ -4,6 +4,7 @@
        emp_ematch.tab.o emp_ematch.lex.o
 
 include ../config.mk
+include ../config.include
 
 SHARED_LIBS ?= y
 
--- iproute2-5.12.0/tipc/Makefile
+++ iproute2-5.12.0/tipc/Makefile
@@ -1,5 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0
 include ../config.mk
+include ../config.include
 
 TARGETS :=
 
--- iproute2-5.12.0/vdpa/Makefile
+++ iproute2-5.12.0/vdpa/Makefile
@@ -1,5 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0
 include ../config.mk
+include ../config.include
 
 TARGETS :=
 
