iproute2: fix libbpf detection with NLS enabled
authorTony Ambardar <itugrok@yahoo.com>
Sat, 27 Mar 2021 12:43:03 +0000 (05:43 -0700)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 10 Apr 2021 12:22:28 +0000 (14:22 +0200)
Upstream iproute2 detects libbpf using a one-line $CC test-compile, which
normally ignores LDFLAGS. With NLS enabled however, LDFLAGS includes an
"rpath-link" linker option needed to resolve libintl.so. Its absence
causes both the compile and libbpf detection to fail:

  ld: warning: libintl.so.8, needed by libbpf.so, not found (try using
      -rpath or -rpath-link)
  ld: libelf.so.1: undefined reference to `libintl_dgettext'
  collect2: error: ld returned 1 exit status

Fix this by directly including $LDFLAGS in the test-compile command.

Reported-by: Ian Cooper <iancooper@hotmail.com>
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
(cherry picked from commit aab3a04ce87c27996b7ce9ea306db8c6eed86941)

package/network/utils/iproute2/Makefile
package/network/utils/iproute2/patches/190-fix-nls-rpath-link.patch [new file with mode: 0644]

index b1a137c18f6d3e93304917c2c749af8ae8f56ad9..d7a7b3ed0f7f0380fc14e17fa3a1cbbb41791ef6 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=iproute2
 PKG_VERSION:=5.11.0
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2
diff --git a/package/network/utils/iproute2/patches/190-fix-nls-rpath-link.patch b/package/network/utils/iproute2/patches/190-fix-nls-rpath-link.patch
new file mode 100644 (file)
index 0000000..d0f8cec
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/configure
++++ b/configure
+@@ -259,7 +259,7 @@ int main(int argc, char **argv) {
+ }
+ EOF
+-    $CC -o $TMPDIR/libbpf_test $TMPDIR/libbpf_test.c $LIBBPF_CFLAGS $LIBBPF_LDLIBS >/dev/null 2>&1
++    $CC -o $TMPDIR/libbpf_test $TMPDIR/libbpf_test.c $LIBBPF_CFLAGS $LIBBPF_LDLIBS $LDFLAGS >/dev/null 2>&1
+     local ret=$?
+     rm -f $TMPDIR/libbpf_test.c $TMPDIR/libbpf_test
+@@ -277,7 +277,7 @@ int main(int argc, char **argv) {
+ }
+ EOF
+-    $CC -o $TMPDIR/libbpf_sec_test $TMPDIR/libbpf_sec_test.c $LIBBPF_CFLAGS $LIBBPF_LDLIBS >/dev/null 2>&1
++    $CC -o $TMPDIR/libbpf_sec_test $TMPDIR/libbpf_sec_test.c $LIBBPF_CFLAGS $LIBBPF_LDLIBS $LDFLAGS >/dev/null 2>&1
+     local ret=$?
+     rm -f $TMPDIR/libbpf_sec_test.c $TMPDIR/libbpf_sec_test