When attempting to emerge "=dev-libs/protobuf-2.4.1", build fails. The pthread stubs are installed. Configure spits out two noticeable warnings: ... checking for the pthreads library -lpthreads... no checking whether pthreads work without any flags... yes checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE checking if more special flags are required for pthreads... -D_THREAD_SAFE checking whether to check for GCC pthread/shared inconsistencies... no checking whether -pthread is sufficient with -shared... no checking whether -lpthread fixes that... no checking whether -lc_r fixes that... no configure: WARNING: Impossible to determine how to use pthreads with shared libraries checking whether what we have so far is sufficient with -nostdlib... no checking whether -lpthread saves the day... no configure: WARNING: Impossible to determine how to use pthreads with shared libraries and -nostdlib ... Reproducible: Always Steps to Reproduce: 1.emerge "=dev-libs/protobuf-2.4.1" 2.Watch it fail Portage 2.2.01.20430-prefix (prefix/darwin/macos/10.6/x64, gcc-4.2.1, unavailable, 10.8.0 i386) ================================================================= System uname: Darwin-10.8.0-i386-64bit Timestamp of tree: Thu, 17 May 2012 18:53:19 +0000 distcc 3.1-toolwhip.1 i386-apple-darwin10.0 [disabled] app-shells/bash: 4.2_p20::gentoo_prefix dev-lang/python: 2.7.3-r2::gentoo_prefix dev-util/cmake: 2.8.8-r2::gentoo_prefix dev-util/pkgconfig: 0.26::gentoo_prefix sys-devel/autoconf: 2.68::gentoo_prefix sys-devel/automake: 1.11.5::gentoo_prefix sys-devel/gcc-config: 1.5-r2::gentoo_prefix sys-devel/libtool: 2.4.2::gentoo_prefix sys-devel/make: 3.82-r4::gentoo_prefix Repositories: gentoo_prefix Installed sets: ACCEPT_KEYWORDS="** ~x64-macos" ACCEPT_LICENSE="* -@EULA" CBUILD="x86_64-apple-darwin10" CFLAGS="-O2 -pipe -march=nocona" CHOST="x86_64-apple-darwin10" CONFIG_PROTECT="/etc" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/portage /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-O2 -pipe -march=nocona" DISTDIR="/Users/potier/g-prefix/usr/portage/distfiles" FEATURES="assume-digests binpkg-logs collision-protect distlocks ebuild-locks fixlafiles force-prefix news nostrip parallel-fetch preserve-libs protect-owned sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch" FFLAGS="" GENTOO_MIRRORS="http://distfiles.gentoo.org" LANG="fr_FR.UTF-8" LDFLAGS="-Wl,-dead_strip_dylibs" PKGDIR="/Users/potier/g-prefix/usr/portage/packages" PORTAGE_CONFIGROOT="/Users/potier/g-prefix/" 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="/Users/potier/g-prefix/var/tmp" PORTDIR="/Users/potier/g-prefix/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.prefix.freens.org/gentoo-portage-prefix" USE="aqua coreaudio cracklib cxx mmx mmxext modules ncurses nls objc objc++ prefix readline sse sse2 ssl unicode x64-macos zlib" 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 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" ELIBC="Darwin" 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="Darwin" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" PHP_TARGETS="php5-3" PYTHON_TARGETS="python2_7" RUBY_TARGETS="ruby18" 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, LC_ALL, LINGUAS, MAKEOPTS, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Created attachment 312165 [details] build.log
As you've noticed yourself, config.log required.
I can confirm this. It seems to not be able to find pthread.h which isn't installed by prefix.
I just looked into this more. This error is happening when compiling because HAVE_PTHREAD isn't defined. Went to the config.log, and it seems it isn't finding the pthread library during config (Even if we supply -L/usr/lib -I/usr/include) The logs say configure:16142: checking for the pthreads library -lpthreads configure:16175: x86_64-apple-darwin12-gcc -o conftest -I/usr/include -L/usr/lib -L/usr/lib conftest.c -lpthreads -lz >&5 ld: library not found for -lpthreads This is funny because I have "libpthread.dyld" not "libpthreads.dyld" in my /usr/lib. I think patching the config script to look for -lpthread would work. Perhaps it is just a typo.
Sorry, my bad... I don't think my last comment is correct. Will just attach my config.log.
Created attachment 321148 [details] Failing config.log
Figured it out: "-Wl,-z,defs" is causing the pthread check to fail. When I removed it from the configure file, it works. This isn't a proper fix but it isolates the problem. --- configure 2012-08-12 12:36:22.000000000 -0700 +++ /Users/mike/foo/configure 2012-08-12 12:36:00.000000000 -0700 @@ -16315,7 +16315,7 @@ # FIXME: -fPIC is required for -shared on many architectures, # so we specify it here, but the right way would probably be to # properly detect whether it is actually required. - CFLAGS="-shared -fPIC -Wl,-z,defs $CFLAGS $PTHREAD_CFLAGS" + CFLAGS="-shared -fPIC $CFLAGS $PTHREAD_CFLAGS" LIBS="$PTHREAD_LIBS $LIBS" CC="$PTHREAD_CC
And for a fix: --- /sb/usr/portage/dev-libs/protobuf/protobuf-2.4.1.ebuild 2012-08-09 07:08:44.000000000 -0700 +++ dev-libs/protobuf/protobuf-2.4.1.ebuild 2012-08-12 13:04:17.000000000 -0700 @@ -43,6 +43,10 @@ python_convert_shebangs -r 2 . distutils_src_prepare fi + + if [[ ${CHOST} == *-darwin* ]] ; then + sed -i 's/-Wl,-z,defs //' configure + fi } src_configure() {
The error in config.log is: configure:16523: x86_64-apple-darwin12-gcc -o conftest -nostdlib -shared -fPIC -Wl,-z,defs -I/usr/include -L/usr/lib -D_THREAD_SAFE -L/usr/lib conftest.c -lpthread -lc_r -lz -lc >&5 ld: unknown option: -z so binutils complain, but seems prefix specific, as sys-devel/binutils shouldn't have this problem.
well, it's just passing a GNU ld specific flag to a non-GNU ld (linker) it's true that this only happens in Prefix we do have test-flag stuff
This was fixed in recent versions, thanks.