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


Martin Jansa
 

On Thu, May 10, 2018 at 11:24:02AM -0700, Khem Raj wrote:


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.
That's true, I've enabled CONFIG_FEATURE_MOUNT_NFS mostly to show how to
reproduce the issue.

If there isn't interest to enable this by default, I'm fine with keeping this
locally (to enable it only with our defconfig changes which enable it).

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
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@...

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