[OE-core] [PATCH] busybox: Enable FEATURE_MOUNT_NFS and use libtirpc

Martin Jansa martin.jansa at gmail.com
Thu May 10 19:16:12 UTC 2018


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 at gmail.com> 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 at gmail.com>
> >>> ---
> >>>   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 at lists.openembedded.org
> >>> http://lists.openembedded.org/mailman/listinfo/openembedded-core

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20180510/bc11a383/attachment-0002.sig>


More information about the Openembedded-core mailing list