Seems like pthreads in uClibc not fully supported... Note: I'm using uClibc-0.9.29, need info about build with 0.9.28* Reproducible: Always Actual Results: fbsplashctl-daemon.o: In function `daemon_start': daemon.c:(.text+0xa21): undefined reference to `pthread_condattr_setclock' collect2: ld returned 1 exit status make[4]: *** [fbsplashctl] Error 1 # emerge --info Portage 2.1.5_rc10 (uclibc/x86, gcc-4.2.3, uclibc-0.9.29-r1, 2.6.25-gentoo-r3-cyberdungeon i686) ================================================================= System uname: 2.6.25-gentoo-r3-cyberdungeon i686 AMD Athlon(tm) 64 Processor 3200+ Timestamp of tree: Wed, 14 May 2008 10:45:02 +0000 app-shells/bash: 3.2_p39 dev-lang/python: 2.5.2-r2 sys-apps/baselayout: 2.0.0 sys-apps/openrc: 0.2.4 sys-apps/sandbox: 1.2.18.1-r2 sys-devel/autoconf: 2.62 sys-devel/automake: 1.4_p6, 1.9.6-r2, 1.10.1-r1 sys-devel/binutils: 2.18-r1 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 1.5.26 virtual/os-headers: 2.6.23-r3 ACCEPT_KEYWORDS="x86 ~x86" CBUILD="i386-gentoo-linux-uclibc" CFLAGS="-Os -march=i386 -mtune=i686 -pipe -fomit-frame-pointer" CHOST="i386-gentoo-linux-uclibc" CONFIG_PROTECT="/etc /var/bind" CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/gentoo-release /etc/initng/daemon /etc/initng/net /etc/initng/system /etc/revdep-rebuild /etc/splash /etc/terminfo /etc/udev/rules.d" CXXFLAGS="-Os -march=i386 -mtune=i686 -pipe -fomit-frame-pointer -fvisibility-inlines-hidden" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig buildpkg distlocks nodoc noinfo noman parallel-fetch sandbox sfperms strict unmerge-orphans userfetch userpriv usersandbox" GENTOO_MIRRORS="ftp://unix.miet.ru/pub/linux/gentoo/ ftp://mirror.yandex.ru/gentoo-distfiles/ " LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-zcombreloc -Wl,--sort-common" MAKEOPTS="-j1" PKGDIR="/usr/portage/packages/uclibc/x86/i386" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/overlays/uclibc /usr/local/overlays/initng /usr/local/overlays/killy" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="minimal nocxx x86" ALSA_PCM_PLUGINS="*" APACHE2_MODULES="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 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" ELIBC="uclibc" INITNG_PLUGINS="also bash_launcher chdir chroot conflict cpout critical ctrlaltdel daemon_clean debug_commands envparser find fmon fstat history idleprobe initctl interactive iparser last limit lockfile logfile netdev netprobe ngc4 ngcs nge pause provide reload renice rlparser simple_launcher stcmd stdout suid syncron syslog sysreq unneeded usplash" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="dummy fbdev v4l" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
pthread_condattr_setclock() seems to be available in the NTPL branch of uClibc. Mike: could you please comment on this? Is this branch going to be used as a basis for the next release of uClibc? Is it possible to get something based on it into Portage?
no, it wont be
No idea about how could this be solved then :(
(In reply to Pacho Ramos from comment #3) > No idea about how could this be solved then :( Whoah, why is this bug still open? It has been a while since all pthread_* has been in uclibc. Take a look at http://git.uclibc.org/uClibc/log/libpthread/nptl/pthread_condattr_setclock.c for just pthread_condattr_setclock()
(In reply to Anthony Basile from comment #4) to be fair, that only applies when uclibc is built with USE=nptl we probably should change the defaults for at least x86 ... i only recently unmasked that USE flag for all of uclibc ...