-pthread ldflag doesn't links against any libs

Gergely CZUCZY phoemix at harmless.hu
Thu Nov 8 07:10:59 PST 2007


Hello,

I've got a wierd issue here and I'd like to ask for some suggestion.

First of all I've noticed that pcsc-lite (libpcsclite.so) is using pthreads
but isn't linked against any threading libs. I've started digging around
the source, and it really wasn't linked against it, nor mentioned in the
pkgconfig .pc file among the Libs: section.

The strange part came after this. I've re-linked the lib by hand, and when
I specified -pthread as an additional flag at the linking stage it wasn't
linked against any threading libs, while specifying -lpthread/-lthr worked
just fine.

The original command was:
# gcc -shared  .libs/libpcsclite_la-debug.o .libs/libpcsclite_la-dyn_hpux.o .libs/libpcsclite_la-dyn_macosx.o .libs/libpcsclite_la-dyn_unix.o .libs/libpcsclite_la-error.o .libs/libpcsclite_la-winscard_clnt.o .libs/libpcsclite_la-strlcat.o .libs/libpcsclite_la-strlcpy.o .libs/libpcsclite_la-sys_unix.o .libs/libpcsclite_la-thread_unix.o .libs/libpcsclite_la-utils.o .libs/libpcsclite_la-winscard_msg.o   -pthread -Wl,-soname -Wl,libpcsclite.so.1 -o .libs/libpcsclite.so.1

Which resulted in:
# ldd .libs/libpcsclite.so.1
.libs/libpcsclite.so.1:
#

After this I've added -pthread:
# gcc -shared  .libs/libpcsclite_la-debug.o .libs/libpcsclite_la-dyn_hpux.o .libs/libpcsclite_la-dyn_macosx.o .libs/libpcsclite_la-dyn_unix.o .libs/libpcsclite_la-error.o .libs/libpcsclite_la-winscard_clnt.o .libs/libpcsclite_la-strlcat.o .libs/libpcsclite_la-strlcpy.o .libs/libpcsclite_la-sys_unix.o .libs/libpcsclite_la-thread_unix.o .libs/libpcsclite_la-utils.o .libs/libpcsclite_la-winscard_msg.o   -pthread -Wl,-soname -Wl,libpcsclite.so.1 -pthread -o .libs/libpcsclite.so.1 && ldd .libs/libpcsclite.so.1
.libs/libpcsclite.so.1:
#

Still no threading libs, whereas according to gcc(1) -pthread should specify
the proper flags to the linker.
Adding the -lpthread flag by hand works, as the -lthr:
# gcc -shared  .libs/libpcsclite_la-debug.o .libs/libpcsclite_la-dyn_hpux.o .libs/libpcsclite_la-dyn_macosx.o .libs/libpcsclite_la-dyn_unix.o .libs/libpcsclite_la-error.o .libs/libpcsclite_la-winscard_clnt.o .libs/libpcsclite_la-strlcat.o .libs/libpcsclite_la-strlcpy.o .libs/libpcsclite_la-sys_unix.o .libs/libpcsclite_la-thread_unix.o .libs/libpcsclite_la-utils.o .libs/libpcsclite_la-winscard_msg.o   -pthread -Wl,-soname -Wl,libpcsclite.so.1 -lpthread -o .libs/libpcsclite.so.1 && ldd .libs/libpcsclite.so.1
.libs/libpcsclite.so.1:
        libpthread.so.2 => /lib/libpthread.so.2 (0x2817b000)
# gcc -shared  .libs/libpcsclite_la-debug.o .libs/libpcsclite_la-dyn_hpux.o .libs/libpcsclite_la-dyn_macosx.o .libs/libpcsclite_la-dyn_unix.o .libs/libpcsclite_la-error.o .libs/libpcsclite_la-winscard_clnt.o .libs/libpcsclite_la-strlcat.o .libs/libpcsclite_la-strlcpy.o .libs/libpcsclite_la-sys_unix.o .libs/libpcsclite_la-thread_unix.o .libs/libpcsclite_la-utils.o .libs/libpcsclite_la-winscard_msg.o   -pthread -Wl,-soname -Wl,libpcsclite.so.1 -lthr -o .libs/libpcsclite.so.1 && ldd .libs/libpcsclite.so.1
.libs/libpcsclite.so.1:
        libthr.so.2 => /usr/lib/libthr.so.2 (0x2817b000)
#

It's a few months older 6-STABLE:
FreeBSD twoflower.in.publishing.hu 6.2-STABLE FreeBSD 6.2-STABLE #2: Tue Aug 21 15:35:20 CEST 2007     toor at twoflower.in.publishing.hu:/usr/obj/usr/src/sys/TWOFLOWER  i386

So, am I messing up something, is there anything I left out, or it's really
some kind of nasty bug?

Sincerely,

Gergely Czuczy
mailto: gergely.czuczy at harmless.hu

-- 
Weenies test. Geniuses solve problems that arise.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 1739 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20071108/8d991274/attachment.pgp


More information about the freebsd-ports mailing list