Excerpts from clemens fischer's message of 2011-12-09 23:36:07 +0100: > Allan McRae wrote: > > > On 10/12/11 07:29, Ionut Biru wrote: > > > >> On 12/09/2011 09:25 PM, Philipp wrote: > >> > >>> Hi there, I have linking issues with one of the programs I maintain > >>> in AUR and I don't quite understand the issue. Here's the output: > >>> > >>> g++ -Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu > >>> -L/usr/X11R6/lib -o jmeters jmeters.o styles.o mainwin.o jclient.o > >>> mkimage.o meterwin.o -lsndfile -lclxclient -lclthreads -ljack > >>> -lpng -lXft -lX11 -lrt /usr/bin/ld: jmeters.o: undefined reference > >>> to symbol 'pthread_mutex_trylock@@GLIBC_2.2.5' /usr/bin/ld: > >>> note: 'pthread_mutex_trylock@@GLIBC_2.2.5' is defined in DSO > >>> /lib/libpthread.so.0 so try adding it to the linker command line > >>> /lib/libpthread.so.0: could not read symbols: Invalid operation > >>> collect2: ld returned 1 exit status make: *** [jmeters] Error 1 > >>> > >>> The program is jmeters > >>> (https://aur.archlinux.org/packages.php?ID=25711). > >>> > >>> It depends on clthreads > >>> (https://aur.archlinux.org/packages.php?ID=3627) which handles the > >>> threading stuff. > >>> > >>> I wonder where this problem comes from. Needles to say that it > >>> worked fine in the past. Any ideas? > >> > >> sounds like you don't have a fully up to date toolchain > > > > Actually, it sounds like he does have a fully up-to-date toolchain: > > http://fedoraproject.org/wiki/UnderstandingDSOLinkChange > > > > The output also gives the fix... > >>> /usr/bin/ld: note: 'pthread_mutex_trylock@@GLIBC_2.2.5' is defined in > >>> DSO /lib/libpthread.so.0 so try adding it to the linker command line > > I think you're both wrong 8-) > > The ld(8) output seems to indicate that libpthread is pulled in, but > points to something else than a fully functioning library. > > $ ls -l /lib/libpthread* > -rwxr-xr-x 1 root root 135326 Dec 2 19:28 /lib/libpthread-2.14.1.so > lrwxrwxrwx 1 root root 20 Dec 2 19:28 /lib/libpthread.so.0 -> libpthread-2.14.1.so $ ls -l /lib/libpthread* -rwxr-xr-x 1 root root 135326 Dec 2 19:29 /lib/libpthread-2.14.1.so lrwxrwxrwx 1 root root 20 Dec 2 19:29 /lib/libpthread.so.0 -> libpthread-2.14.1.so > $ nm /lib/libpthread.so.0 |g mutex.try > -:0000000000009f40 T __pthread_mutex_trylock > -:0000000000009f40 T pthread_mutex_trylock $ nm /lib/libpthread.so.0 |g mutex.try -bash: g: command not found but: $ nm /lib/libpthread.so.0 | grep -i mutex.try 0000000000009f40 T __pthread_mutex_trylock 0000000000009f40 T pthread_mutex_trylock I do wonder how I'm supposed to patch programs that aren't developed anymore and use 8000 line configure scripts... (example: bitmeter https://aur.archlinux.org/packages.php?ID=19762) Regards, Philipp