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     [EMAIL PROTECTED]:/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: [EMAIL PROTECTED]

-- 
Weenies test. Geniuses solve problems that arise.

Attachment: pgpTvYCwmdETK.pgp
Description: PGP signature

Reply via email to