Re: [PATCH] busybox: Enable FEATURE_MOUNT_NFS and use libtirpc


Khem Raj
 

On 5/10/18 11:21 AM, Khem Raj wrote:
On 5/10/18 6:01 AM, Burton, Ross wrote:
Fails to build here:

  coreutils/lib.a(mktemp.o): In function `mktemp_main':
| /usr/src/debug/busybox/1.27.2-r0/busybox-1.27.2/coreutils/mktemp.c:105:
warning: the use of `mktemp' is dangerous, better use `mkstemp' or
`mkdtemp'
| util-linux/lib.a(mount.o): In function `xdr_fhstatus':
| /usr/src/debug/busybox/1.27.2-r0/busybox-1.27.2/util-linux/mount.c:1057:
undefined reference to `xdr_u_int'
| util-linux/lib.a(mount.o): In function `xdr_fhandle':
| /usr/src/debug/busybox/1.27.2-r0/busybox-1.27.2/util-linux/mount.c:1052:
undefined reference to `xdr_opaque'
| util-linux/lib.a(mount.o): In function `xdr_mountstat3':
| /usr/src/debug/busybox/1.27.2-r0/busybox-1.27.2/util-linux/mount.c:1089:
undefined reference to `xdr_enum'
| util-linux/lib.a(mount.o): In function `xdr_fhandle3':
| /usr/src/debug/busybox/1.27.2-r0/busybox-1.27.2/util-linux/mount.c:1071:
undefined reference to `xdr_bytes'
| util-linux/lib.a(mount.o): In function `xdr_mountres3_ok':
| /usr/src/debug/busybox/1.27.2-r0/busybox-1.27.2/util-linux/mount.c:1080:
undefined reference to `xdr_int'
| /usr/src/debug/busybox/1.27.2-r0/busybox-1.27.2/util-linux/mount.c:1080:
undefined reference to `xdr_array'
| util-linux/lib.a(mount.o): In function `xdr_dirpath':
| /usr/src/debug/busybox/1.27.2-r0/busybox-1.27.2/util-linux/mount.c:1066:
undefined reference to `xdr_string'
| util-linux/lib.a(mount.o): In function `get_mountport':
| /usr/src/debug/busybox/1.27.2-r0/busybox-1.27.2/util-linux/mount.c:1145:
undefined reference to `pmap_getmaps'
| util-linux/lib.a(mount.o): In function `nfsmount':
| /usr/src/debug/busybox/1.27.2-r0/busybox-1.27.2/util-linux/mount.c:1662:
undefined reference to `clnttcp_create'
| /usr/src/debug/busybox/1.27.2-r0/busybox-1.27.2/util-linux/mount.c:1677:
undefined reference to `authunix_create_default'
| /usr/src/debug/busybox/1.27.2-r0/busybox-1.27.2/util-linux/mount.c:1652:
undefined reference to `clntudp_create'
| /usr/src/debug/busybox/1.27.2-r0/busybox-1.27.2/util-linux/mount.c:1672:
undefined reference to `clnt_spcreateerror'
| /usr/src/debug/busybox/1.27.2-r0/busybox-1.27.2/util-linux/mount.c:1702:
undefined reference to `clnt_sperror'
| /usr/src/debug/busybox/1.27.2-r0/busybox-1.27.2/util-linux/mount.c:1707:
undefined reference to `clnt_sperror'
| /usr/src/debug/busybox/1.27.2-r0/busybox-1.27.2/util-linux/mount.c:1788:
undefined reference to `pmap_getport'
We need to specify
CONFIG_EXTRA_LDLIBS="tirpc"
along with
CONFIG_FEATURE_MOUNT_NFS=y
secondly in v2 please delete
# CONFIG_FEATURE_MOUNT_NFS is not set
from meta/recipes-core/busybox/busybox/musl.cfg as well
On second thought, this probably should be enabled using a config fragment, since its not gonna link in another library it may not be common case to justify for a default config.

Ross

On 10 May 2018 at 13:20, Martin Jansa <martin.jansa@...> wrote:
* We dropped in-tree obsoleted rpc from glibc and now busybox builds
   which had CONFIG_FEATURE_MOUNT_NFS enabled were failing with:
   | util-linux/mount.c:252:11: fatal error: rpc/rpc.h: No such file or directory
   |  # include <rpc/rpc.h>
   |            ^~~~~~~~~~~
   | compilation terminated.
   | make[1]: *** [util-linux/mount.o] Error 1

Signed-off-by: Martin Jansa <Martin.Jansa@...>
---
  meta/recipes-core/busybox/busybox.inc       | 6 +++---
  meta/recipes-core/busybox/busybox/defconfig | 2 +-
  2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/meta/recipes-core/busybox/busybox.inc b/meta/recipes-core/busybox/busybox.inc
index d1675c37aa..2db19ed317 100644
--- a/meta/recipes-core/busybox/busybox.inc
+++ b/meta/recipes-core/busybox/busybox.inc
@@ -3,7 +3,7 @@ DESCRIPTION = "BusyBox combines tiny versions of many common UNIX utilities into
  HOMEPAGE = "http://www.busybox.net"
  BUGTRACKER = "https://bugs.busybox.net/"

-DEPENDS += "kern-tools-native"
+DEPENDS += "kern-tools-native libtirpc"

  # bzip2 applet in busybox is based on lightly-modified bzip2 source
  # the GPL is version 2 only
@@ -15,8 +15,8 @@ SECTION = "base"
  # Whether to split the suid apps into a seperate binary
  BUSYBOX_SPLIT_SUID ?= "1"

-export EXTRA_CFLAGS = "${CFLAGS}"
-export EXTRA_LDFLAGS = "${LDFLAGS}"
+export EXTRA_CFLAGS = "${CFLAGS} -I${STAGING_INCDIR}/tirpc"
+export EXTRA_LDFLAGS = "${LDFLAGS} -ltirpc"

  EXTRA_OEMAKE = "CC='${CC}' LD='${CCLD}' V=1 ARCH=${TARGET_ARCH} CROSS_COMPILE=${TARGET_PREFIX} SKIP_STRIP=y HOSTCC='${BUILD_CC}' HOSTCPP='${BUILD_CPP}'"

diff --git a/meta/recipes-core/busybox/busybox/defconfig b/meta/recipes-core/busybox/busybox/defconfig
index fbb5fd852c..816555fc21 100644
--- a/meta/recipes-core/busybox/busybox/defconfig
+++ b/meta/recipes-core/busybox/busybox/defconfig
@@ -638,7 +638,7 @@ CONFIG_MOUNT=y
  # CONFIG_FEATURE_MOUNT_VERBOSE is not set
  # CONFIG_FEATURE_MOUNT_HELPERS is not set
  # CONFIG_FEATURE_MOUNT_LABEL is not set
-# CONFIG_FEATURE_MOUNT_NFS is not set
+CONFIG_FEATURE_MOUNT_NFS=y
  # CONFIG_FEATURE_MOUNT_CIFS is not set
  CONFIG_FEATURE_MOUNT_FLAGS=y
  CONFIG_FEATURE_MOUNT_FSTAB=y
--
2.17.0

--
_______________________________________________
Openembedded-core mailing list
Openembedded-core@...
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Join openembedded-core@lists.openembedded.org to automatically receive all group messages.