Message ID | 20220809224427.1421622-1-giulio.benetti@benettiengineering.com |
---|---|
State | Accepted |
Headers | show |
Series | package/nfs-utils: bump version to 2.6.2 | expand |
Hello Giulio, On Wed, 10 Aug 2022 00:44:27 +0200 Giulio Benetti <giulio.benetti@benettiengineering.com> wrote: > nfs-utils 2.6.2 adds nfsrahead tool to set readahead through sysfs, but > this tool is mandatory and requires libmount that in order requires > libblkid. Also we need a local patch that is already pending upstream to > avoid failing static linking: > https://patchwork.kernel.org/project/linux-nfs/patch/20220809223308.1421081-1-giulio.benetti@benettiengineering.com/ > > So let's select: > - BR2_PACKAGE_UTIL_LINUX_LIBMOUNT > - BR2_PACKAGE_UTIL_LINUX_LIBBLKID > and add the pending patch for fixing static linking failure due to wrong > order of libraries in linker list(-lblkid must follow -lmount). This is > achieved by using pkg-config that is already a dependency of this package. > > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> Thanks, I have applied to master, but I have a comment below. > diff --git a/package/nfs-utils/0001-nfsrahead-fix-linking-while-static-linking.patch b/package/nfs-utils/0001-nfsrahead-fix-linking-while-static-linking.patch > new file mode 100644 > index 0000000000..b8dcea63f7 > --- /dev/null > +++ b/package/nfs-utils/0001-nfsrahead-fix-linking-while-static-linking.patch > @@ -0,0 +1,34 @@ > +From a69014a1b4e5b8068630abe3109f31eb64b6a076 Mon Sep 17 00:00:00 2001 > +From: Giulio Benetti <giulio.benetti@benettiengineering.com> > +Date: Wed, 10 Aug 2022 00:10:51 +0200 > +Subject: [PATCH] nfsrahead: fix linking while static linking > + > +-lmount must preceed -lblkid and to obtain this let's add: > +`pkg-config --libs mount` > +in place of: > +`-lmount` > +This ways the library order will always be correct. > + > +Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> > +--- > +Pending Upstream: > +https://patchwork.kernel.org/project/linux-nfs/patch/20220809223308.1421081-1-giulio.benetti@benettiengineering.com/ > +--- > + tools/nfsrahead/Makefile.am | 2 +- > + 1 file changed, 1 insertion(+), 1 deletion(-) > + > +diff --git a/tools/nfsrahead/Makefile.am b/tools/nfsrahead/Makefile.am > +index 845ea0d5..280a2eb4 100644 > +--- a/tools/nfsrahead/Makefile.am > ++++ b/tools/nfsrahead/Makefile.am > +@@ -1,6 +1,6 @@ > + libexec_PROGRAMS = nfsrahead > + nfsrahead_SOURCES = main.c > +-nfsrahead_LDFLAGS= -lmount > ++nfsrahead_LDFLAGS= `pkg-config --libs mount` This is not the correct way of using pkg-config in an autotools based project. Instead, the configure.ac should use the PKG_CHECK_MODULES macro, and use the appropriate variables in Makefile.am. Approximately something like this in configure.ac: PKG_CHECK_MODULES([LIBMOUNT], [mount]) and in the Makefile.am: nfsrahead_CFLAGS = $(LIBMOUNT_CFLAGS) nfsrahead_LDFLAGS = $(LIBMOUNT_LIBS) see https://bootlin.com/doc/training/autotools/autotools-slides.pdf slide 85 and following. Best regards, Thomas
On 10/08/22 23:18, Thomas Petazzoni via buildroot wrote: > Hello Giulio, > > On Wed, 10 Aug 2022 00:44:27 +0200 > Giulio Benetti <giulio.benetti@benettiengineering.com> wrote: > >> nfs-utils 2.6.2 adds nfsrahead tool to set readahead through sysfs, but >> this tool is mandatory and requires libmount that in order requires >> libblkid. Also we need a local patch that is already pending upstream to >> avoid failing static linking: >> https://patchwork.kernel.org/project/linux-nfs/patch/20220809223308.1421081-1-giulio.benetti@benettiengineering.com/ >> >> So let's select: >> - BR2_PACKAGE_UTIL_LINUX_LIBMOUNT >> - BR2_PACKAGE_UTIL_LINUX_LIBBLKID >> and add the pending patch for fixing static linking failure due to wrong >> order of libraries in linker list(-lblkid must follow -lmount). This is >> achieved by using pkg-config that is already a dependency of this package. >> >> Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> > > Thanks, I have applied to master, but I have a comment below. > >> diff --git a/package/nfs-utils/0001-nfsrahead-fix-linking-while-static-linking.patch b/package/nfs-utils/0001-nfsrahead-fix-linking-while-static-linking.patch >> new file mode 100644 >> index 0000000000..b8dcea63f7 >> --- /dev/null >> +++ b/package/nfs-utils/0001-nfsrahead-fix-linking-while-static-linking.patch >> @@ -0,0 +1,34 @@ >> +From a69014a1b4e5b8068630abe3109f31eb64b6a076 Mon Sep 17 00:00:00 2001 >> +From: Giulio Benetti <giulio.benetti@benettiengineering.com> >> +Date: Wed, 10 Aug 2022 00:10:51 +0200 >> +Subject: [PATCH] nfsrahead: fix linking while static linking >> + >> +-lmount must preceed -lblkid and to obtain this let's add: >> +`pkg-config --libs mount` >> +in place of: >> +`-lmount` >> +This ways the library order will always be correct. >> + >> +Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> >> +--- >> +Pending Upstream: >> +https://patchwork.kernel.org/project/linux-nfs/patch/20220809223308.1421081-1-giulio.benetti@benettiengineering.com/ >> +--- >> + tools/nfsrahead/Makefile.am | 2 +- >> + 1 file changed, 1 insertion(+), 1 deletion(-) >> + >> +diff --git a/tools/nfsrahead/Makefile.am b/tools/nfsrahead/Makefile.am >> +index 845ea0d5..280a2eb4 100644 >> +--- a/tools/nfsrahead/Makefile.am >> ++++ b/tools/nfsrahead/Makefile.am >> +@@ -1,6 +1,6 @@ >> + libexec_PROGRAMS = nfsrahead >> + nfsrahead_SOURCES = main.c >> +-nfsrahead_LDFLAGS= -lmount >> ++nfsrahead_LDFLAGS= `pkg-config --libs mount` > > This is not the correct way of using pkg-config in an autotools based > project. Instead, the configure.ac should use the PKG_CHECK_MODULES > macro, and use the appropriate variables in Makefile.am. > > Approximately something like this in configure.ac: > > PKG_CHECK_MODULES([LIBMOUNT], [mount]) > > and in the Makefile.am: > > nfsrahead_CFLAGS = $(LIBMOUNT_CFLAGS) > nfsrahead_LDFLAGS = $(LIBMOUNT_LIBS) > > see https://bootlin.com/doc/training/autotools/autotools-slides.pdf > slide 85 and following. Thank you Thomas! I was focusing too much on nfsrahead's Makefile.am without taking care of configure.ac, I rework the patch for upstream with this test-case and update the PR later. Best regards
diff --git a/package/nfs-utils/0001-nfsrahead-fix-linking-while-static-linking.patch b/package/nfs-utils/0001-nfsrahead-fix-linking-while-static-linking.patch new file mode 100644 index 0000000000..b8dcea63f7 --- /dev/null +++ b/package/nfs-utils/0001-nfsrahead-fix-linking-while-static-linking.patch @@ -0,0 +1,34 @@ +From a69014a1b4e5b8068630abe3109f31eb64b6a076 Mon Sep 17 00:00:00 2001 +From: Giulio Benetti <giulio.benetti@benettiengineering.com> +Date: Wed, 10 Aug 2022 00:10:51 +0200 +Subject: [PATCH] nfsrahead: fix linking while static linking + +-lmount must preceed -lblkid and to obtain this let's add: +`pkg-config --libs mount` +in place of: +`-lmount` +This ways the library order will always be correct. + +Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> +--- +Pending Upstream: +https://patchwork.kernel.org/project/linux-nfs/patch/20220809223308.1421081-1-giulio.benetti@benettiengineering.com/ +--- + tools/nfsrahead/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tools/nfsrahead/Makefile.am b/tools/nfsrahead/Makefile.am +index 845ea0d5..280a2eb4 100644 +--- a/tools/nfsrahead/Makefile.am ++++ b/tools/nfsrahead/Makefile.am +@@ -1,6 +1,6 @@ + libexec_PROGRAMS = nfsrahead + nfsrahead_SOURCES = main.c +-nfsrahead_LDFLAGS= -lmount ++nfsrahead_LDFLAGS= `pkg-config --libs mount` + nfsrahead_LDADD = ../../support/nfs/libnfsconf.la + + man5_MANS = nfsrahead.man +-- +2.34.1 + diff --git a/package/nfs-utils/Config.in b/package/nfs-utils/Config.in index f00debc420..f3cb17918e 100644 --- a/package/nfs-utils/Config.in +++ b/package/nfs-utils/Config.in @@ -8,6 +8,8 @@ config BR2_PACKAGE_NFS_UTILS depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBTIRPC # IPv6 requires libtirpc select BR2_PACKAGE_UTIL_LINUX + select BR2_PACKAGE_UTIL_LINUX_LIBBLKID + select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT select BR2_PACKAGE_UTIL_LINUX_LIBUUID help The NFS Linux kernel server. diff --git a/package/nfs-utils/nfs-utils.hash b/package/nfs-utils/nfs-utils.hash index a73bf80e70..2efe693875 100644 --- a/package/nfs-utils/nfs-utils.hash +++ b/package/nfs-utils/nfs-utils.hash @@ -1,4 +1,4 @@ -# From https://www.kernel.org/pub/linux/utils/nfs-utils/2.6.1/sha256sums.asc -sha256 60dfcd94a9f3d72a12bc7058d811787ec87a6d593d70da2123faf9aad3d7a1df nfs-utils-2.6.1.tar.xz +# From https://www.kernel.org/pub/linux/utils/nfs-utils/2.6.2/sha256sums.asc +sha256 5200873e81c4d610e2462fc262fe18135f2dbe78b7979f95accd159ae64d5011 nfs-utils-2.6.2.tar.xz # Locally computed sha256 576540abf5e95029ad4ad90e32071385a5e95b2c30708c706116f3eb87b9a3de COPYING diff --git a/package/nfs-utils/nfs-utils.mk b/package/nfs-utils/nfs-utils.mk index 44653e2707..ed205a26b1 100644 --- a/package/nfs-utils/nfs-utils.mk +++ b/package/nfs-utils/nfs-utils.mk @@ -4,7 +4,7 @@ # ################################################################################ -NFS_UTILS_VERSION = 2.6.1 +NFS_UTILS_VERSION = 2.6.2 NFS_UTILS_SOURCE = nfs-utils-$(NFS_UTILS_VERSION).tar.xz NFS_UTILS_SITE = https://www.kernel.org/pub/linux/utils/nfs-utils/$(NFS_UTILS_VERSION) NFS_UTILS_LICENSE = GPL-2.0+
nfs-utils 2.6.2 adds nfsrahead tool to set readahead through sysfs, but this tool is mandatory and requires libmount that in order requires libblkid. Also we need a local patch that is already pending upstream to avoid failing static linking: https://patchwork.kernel.org/project/linux-nfs/patch/20220809223308.1421081-1-giulio.benetti@benettiengineering.com/ So let's select: - BR2_PACKAGE_UTIL_LINUX_LIBMOUNT - BR2_PACKAGE_UTIL_LINUX_LIBBLKID and add the pending patch for fixing static linking failure due to wrong order of libraries in linker list(-lblkid must follow -lmount). This is achieved by using pkg-config that is already a dependency of this package. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> --- ...ead-fix-linking-while-static-linking.patch | 34 +++++++++++++++++++ package/nfs-utils/Config.in | 2 ++ package/nfs-utils/nfs-utils.hash | 4 +-- package/nfs-utils/nfs-utils.mk | 2 +- 4 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 package/nfs-utils/0001-nfsrahead-fix-linking-while-static-linking.patch