From: Terrence C. <ter...@tr...> - 2006-05-29 23:28:40
|
Csaba Henk wrote: > On 2006-05-29, Terrence Cole <ter...@tr...> wrote: >> Csaba Henk wrote: >>> On 2006-05-28, Terrence Cole <ter...@tr...> wrote: >> A very good question. From what I can glean in `man gcc`, -pthread is >> ... >> Thanks for prompting me to look all this up; I've been meaning to figure >> out the semantic differences on this issue for awhile. :-) > > Thank you for looking it up. > > Miklos, what do you think about this patch? > > One more weirdness can be seen related to pkg-config (for which you > didn't do the adjustments). What seemed logical to me is the following > for fuse.pc.in: Whoops. > --------------------------------------------- > prefix=@prefix@ > exec_prefix=@exec_prefix@ > libdir=@libdir@ > includedir=@includedir@ > pthread_cflags=@PTHREAD_CFLAGS@ > pthread_libs=@PTHREAD_LIBS@ > > Name: fuse > Description: Filesystem in Userspace > Version: @VERSION@ > Libs: -L${libdir} -lfuse ${pthread_libs} > Cflags: -I${includedir}/fuse -D_FILE_OFFSET_BITS=64 ${pthread_cflags} > --------------------------------------------- > > However, it's not good. (Eg. on FreeBSD, PTHREAD_CFLAGS will be set to > "-D_THREAD_SAFE -pthread", PTHREAD_LIBS to "", and then, sshfs > compilation fails at the final linking stage.) > > What works indeed is > > --------------------------------------------- > prefix=@prefix@ > exec_prefix=@exec_prefix@ > libdir=@libdir@ > includedir=@includedir@ > pthread_cflags=@PTHREAD_CFLAGS@ > > Name: fuse > Description: Filesystem in Userspace > Version: @VERSION@ > Libs: -L${libdir} -lfuse ${pthread_cflags} > Cflags: -I${includedir}/fuse -D_FILE_OFFSET_BITS=64 > --------------------------------------------- > > That is, it seems as if the toolchain would like to see the "-pthread" > exactly at those places where you'd put "-lpthread", regardless the > semantical difference between the two. Found why this is. From the documentation: "NOTE: You are assumed to not only compile your program with these flags, but also link it with them as well. e.g. you should link with $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS" Looks like I borked the patch. I'll fix this and resubmit it. -Terrence > Regards, > Csaba > > |