Date: Sun, 14 Sep 2014 11:28:37 +0200 From: Tijl Coosemans <tijl@FreeBSD.org> To: "Jason E. Hale" <jhale@freebsd.org> Cc: "svn-ports-head@freebsd.org" <svn-ports-head@freebsd.org>, "svn-ports-all@freebsd.org" <svn-ports-all@freebsd.org>, ports-committers <ports-committers@freebsd.org> Subject: Re: svn commit: r368130 - in head/devel/bennugd-core: . files Message-ID: <20140914112837.375964ab@kalimero.tijl.coosemans.org> In-Reply-To: <CAJE75NEGTy0%2BPNT040Cj7rSinq_DBEDYaJbPzbLTiX=zHp_kEQ@mail.gmail.com> References: <201409131920.s8DJKNGP095467@svn.freebsd.org> <CAJE75NEGTy0%2BPNT040Cj7rSinq_DBEDYaJbPzbLTiX=zHp_kEQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 14 Sep 2014 04:20:34 -0400 "Jason E. Hale" <jhale@freebsd.org> wrote: > On Sat, Sep 13, 2014 at 3:20 PM, Tijl Coosemans <tijl@freebsd.org> wrote: >> Author: tijl >> Date: Sat Sep 13 19:20:22 2014 >> New Revision: 368130 >> URL: http://svnweb.freebsd.org/changeset/ports/368130 >> QAT: https://qat.redports.org/buildarchive/r368130/ >> >> Log: >> - Convert to USES=libtool >> - Remove -lpthread patching >> >> Modified: head/devel/bennugd-core/files/patch-configure >> ============================================================================== >> --- head/devel/bennugd-core/files/patch-configure Sat Sep 13 19:03:41 2014 (r368129) >> +++ head/devel/bennugd-core/files/patch-configure Sat Sep 13 19:20:22 2014 (r368130) >> @@ -1,6 +1,6 @@ >> --- configure.orig 2013-01-06 05:50:56.000000000 +0400 >> +++ configure 2013-09-12 05:48:18.186226351 +0400 >> -@@ -11277,10 +11277,10 @@ >> +@@ -11277,7 +11277,7 @@ >> USE_OPENSSL=no >> ;; >> >> @@ -8,8 +8,4 @@ >> + dragonfly* | freebsd*) >> INCLUDES="-I/usr/local/include" >> COMMON_CFLAGS="-Wall -DTARGET_BSD -DUSE_OPENSSL" >> -- COMMON_LDFLAGS="-L/usr/local/lib -lpthread" >> -+ COMMON_LDFLAGS="-L/usr/local/lib -pthread" >> - LIBSSL="crypto" >> - USE_OPENSSL=yes >> - ;; >> + COMMON_LDFLAGS="-L/usr/local/lib -lpthread" >> > > Should we no longer be patching for -lpthread? Does > https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/dads-pthread.html > no longer apply? If you ask me it doesn't. The C compiler automatically links in libc and we used to have two, libc (without threading) and libc_r (with threading). The -pthread flag told the compiler which one to use. Nowadays we have one libc and libpthread provides threading functions. All -pthread does is tell the compiler to link in libpthread, just like -lpthread does. They are the same. It used to be that this libpthread could only be linked into executables and not into libraries. This meant that if an executable depended on a library that used threading, it had to be linked with libpthread even if it didn't use threading itself. This is why several ports still have LDFLAGS+=-pthread or similar, just because one of the libraries in the dependency chain used threading. This is no longer necessary. There's one thing that is still special about libpthread and that is that it needs to be loaded into memory before libc because it overrides some libc symbols. So if you mention -lc explicitly on the command line (which you normally don't), -lpthread has to appear in front of it. And, if an executable dlopen()s a library that uses threading, the executable needs to be linked with libpthread even if it doesn't use threading itself.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20140914112837.375964ab>