Emerging rpcbind fails on a uclibc based system Reproducible: Always Portage 2.1.11.50 (hardened/linux/uclibc/x86, gcc-4.6.3, uclibc-0.9.33.2-r2, 3.5.7-gentoo i686) ================================================================= System Settings ================================================================= System uname: Linux-3.5.7-gentoo-i686-QEMU_Virtual_CPU_version_1.2.2-with-gentoo-2.1 KiB Mem: 2074136 total, 1531576 free KiB Swap: 0 total, 0 free Timestamp of tree: Sun, 17 Feb 2013 18:15:01 +0000 ld GNU ld (GNU Binutils) 2.22 ccache version 3.1.8 [disabled] app-shells/bash: 4.2_p37 dev-lang/python: 2.7.3-r2, 3.2.3 dev-util/ccache: 3.1.8 dev-util/cmake: 2.8.9 dev-util/pkgconfig: 0.28 sys-apps/baselayout: 2.1-r1 sys-apps/openrc: 0.11.8 sys-apps/sandbox: 2.5 sys-devel/autoconf: 2.13, 2.69 sys-devel/automake: 1.10.3, 1.11.6 sys-devel/binutils: 2.22-r1 sys-devel/gcc: 4.6.3 sys-devel/gcc-config: 1.7.3 sys-devel/libtool: 2.4-r1 sys-devel/make: 3.82-r4 sys-kernel/linux-headers: 3.6 (virtual/os-headers) sys-libs/uclibc: 0.9.33.2-r2 Repositories: gentoo ACCEPT_KEYWORDS="x86" ACCEPT_LICENSE="* -@EULA Oracle-BCLA-JavaSE" CBUILD="i686-gentoo-linux-uclibc" CFLAGS="-O2 -march=geode -pipe -fomit-frame-pointer -mmmx -m3dnow" CHOST="i686-gentoo-linux-uclibc" CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-O2 -march=geode -pipe -fomit-frame-pointer -mmmx -m3dnow" DISTDIR="/usr/portage/distfiles" FCFLAGS="-O2 -pipe" FEATURES="assume-digests binpkg-logs collision-protect compress-build-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch xattr" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo" LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="cli cracklib crypt cxx dri fortran hardened iconv ipv6 modules mudflap ncurses nptl openmp pax_kernel pcre pic readline session ssl uclibc unicode x86 xattr zlib" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CURL_SSL="gnutls" ELIBC=" uclibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="de en_GB" LIRC_DEVICES="serial" PHP_TARGETS="php5-3" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_2" RUBY_TARGETS="ruby18 ruby19" SANE_BACKENDS="snapscan" USERLAND="GNU" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Created attachment 339180 [details] build.log
should be all set now in the tree; thanks for the report! Commit message: Fix building on non-glibc systems http://sources.gentoo.org/net-nds/rpcbind/files/rpcbind-0.2.0-no-nss.patch?rev=1.1 http://sources.gentoo.org/net-nds/rpcbind/rpcbind-0.2.0.ebuild?r1=1.15&r2=1.16
Created attachment 339378 [details] build.log Wow, this was quick! Now, unfortunately, not it fails with another header file only provided by glibc...
(In reply to comment #3) > Now, unfortunately, not it fails with another header file only provided by > glibc... oops a "not" too much ... So, now it fails with another missing header file...
Created attachment 339634 [details] patch for missing headers This one fixes the complaints about headers only provided by glibc
I researched a little bit, could modify security.c so that it compiles. However, linking fails due to missing symbols in libtirpc: /bin/sh ../libtool --tag=CC --mode=link i686-gentoo-linux-uclibc-gcc -I/usr/include/tirpc -O2 -march=geode -pipe -fomit-frame-pointer -mmmx -m3dnow -lpthread -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu -o rpcbind rpcbind-check_bound.o rpcbind-rpcbind.o rpcbind-rpcb_svc_4.o rpcbind-rpcb_svc_com.o rpcbind-util.o rpcbind-pmap_svc.o rpcbind-rpcb_stat.o rpcbind-rpcb_svc.o rpcbind-security.o rpcbind-warmstart.o -ltirpc -lpthread libtool: link: i686-gentoo-linux-uclibc-gcc -I/usr/include/tirpc -O2 -march=geode -pipe -fomit-frame-pointer -mmmx -m3dnow -Wl,-O1 -Wl,--hash-style=gnu -o rpcbind rpcbind-check_bound.o rpcbind-rpcbind.o rpcbind-rpcb_svc_4.o rpcbind-rpcb_svc_com.o rpcbind-util.o rpcbind-pmap_svc.o rpcbind-rpcb_stat.o rpcbind-rpcb_svc.o rpcbind-security.o rpcbind-warmstart.o -Wl,--as-needed -ltirpc -lpthread /lib/libtirpc.so.1: undefined reference to `ecb_crypt' /lib/libtirpc.so.1: undefined reference to `getnetname' /lib/libtirpc.so.1: undefined reference to `key_encryptsession_pk' /lib/libtirpc.so.1: undefined reference to `getpublickey' /lib/libtirpc.so.1: undefined reference to `key_gendes' /lib/libtirpc.so.1: undefined reference to `cbc_crypt' collect2: ld returned 1 exit status ... which means that this is directly affected by Bug 371615 ... I also found this one very interesting: http://lists.uclibc.org/pipermail/uclibc/2010-February/043569.html
Not sure what happened, but the no-nss patch doesn't seem to prevent 'rpcsvc/mount.h: no such file or directory' to get thrown.
Created attachment 384292 [details] build log
Created attachment 384294 [details] portage log
I managed to fix this. Besides spanky's no-nss patch (comment #2) a further patch is necessary as Mark Reiche indicated (comment #6). Please find attached a working patch based on the link Mark provided. (The undefined references when linking to libtirpc are already discussed in bug #371615 and bug #477756)
Created attachment 384332 [details, diff] patch to make rpcbind compile correctly when using uclibc
sys-libs/uclibc has been removed from the tree, replaced by sys-libs/uclibc-ng