Subject: Re: package build failure due to thread-related problem?
To: Steve Bellovin <smb@research.att.com>
From: Todd Willey <xtoddx@gmail.com>
List: tech-pkg
Date: 03/29/2005 16:51:37
On Sun, 28 Nov 2004 14:29:02 -0500, Steve Bellovin <smb@research.att.com> wrote:
> On -current from 23 November, when trying to build pkgsrc/security/
> gpgme, I get this:
> 
> configure:2376: checking for C compiler version
> configure:2379: gcc --version </dev/null >&5
> gcc (GCC) 3.3.3 (NetBSD nb3 20040520)
> Copyright (C) 2003 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> 
> configure:2382: $? = 0
> configure:2384: gcc -v </dev/null >&5
> Using built-in specs.
> Configured with: /home/nick/work/netbsd/src/tools/gcc/../../gnu/dist/gcc/configu
> re --enable-long-long --disable-multilib --enable-threads --disable-symvers --bu
> ild=i386-unknown-netbsdelf2.0. --host=i386--netbsdelf --target=i386--netbsdelf :
>  (reconfigured) /home/nick/work/netbsd/src/tools/gcc/../../gnu/dist/gcc/configur
> e --enable-long-long --disable-multilib --enable-threads --disable-symvers --bui
> ld=i386-unknown-netbsdelf2.0. --host=i386--netbsdelf --target=i386--netbsdelf
> Thread model: posix
> gcc version 3.3.3 (NetBSD nb3 20040520)
> configure:2387: $? = 0
> configure:2389: gcc -V </dev/null >&5
> gcc: couldn't run `/usr/bin/i386--netbsdelf-gcc--I/usr/pkgsrc/security/gpgme/wor
> k/.buildlink/include': No such file or directory
> configure:2392: $? = 1
> configure:2415: checking for C compiler default output file name
> configure:2418: gcc -O2 -I/usr/pkg/include -I/usr/include -I/usr/pkg/include -I/
> usr/include -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -L/usr/lib -Wl,-R/usr/lib -lrfuncs
>  conftest.c  -lintl >&5
> /usr/pkgsrc/security/gpgme/work/.buildlink/lib/librfuncs.so: undefined reference
>  to `pthread_mutex_unlock'
> /usr/pkgsrc/security/gpgme/work/.buildlink/lib/librfuncs.so: undefined reference
>  to `pthread_mutex_lock'
> configure:2421: $? = 1
> configure: failed program was:
> | /* confdefs.h.  */
> |
> | #define PACKAGE_NAME "gpgme"
> | #define PACKAGE_TARNAME "gpgme"
> | #define PACKAGE_VERSION "1.0.1"
> | #define PACKAGE_STRING "gpgme 1.0.1"
> | #define PACKAGE_BUGREPORT "bug-gpgme@gnupg.org"
> | #define PACKAGE "gpgme"
> | #define VERSION "1.0.1"
> | /* end confdefs.h.  */
> |
> | int
> | main ()
> | {
> |
> |   ;
> |   return 0;
> | }
> configure:2459: error: C compiler cannot create executables
> See `config.log' for more details.
> 
> 
>                 --Steve Bellovin, http://www.research.att.com/~smb
> 
> 


I just ran into the same problem with sources from today (March 29,
2005).  I was able to work around it with
`bmake LDFLAGS=-pthread`

It seems to be a problem with unresolved pthread_* symbols in
librfuncts, which are resolved when using the -pthread flag.  I'm
using DragonFlyBSD, but use whatever linker flags are needed to
include thread linkages for your compiler as the value of the LDFLAGS
variable.

-todd[1]