Date: Sun, 14 Oct 2012 19:52:59 +0300 From: Raphael Kubo da Costa <rakuco@FreeBSD.org> To: freebsd-hackers@freebsd.org Subject: Re: -lpthread vs -pthread: does -D_REENTRANT matter? Message-ID: <87zk3pnggk.fsf@FreeBSD.org> References: <CAF6rxg=PnQvtXydhx8%2BoRZJ2ERBoGwedXPcGi_9icYxAtPuxVw@mail.gmail.com> <20121014144222.GA14503@stack.nl>
next in thread | previous in thread | raw e-mail | index | archive | help
Jilles Tjoelker <jilles@stack.nl> writes: > On Mon, Oct 08, 2012 at 12:17:08PM -0400, Eitan Adler wrote: >> The only difference between -lpthread and -pthread that I could see is >> that the latter also sets -D_REENTRANT. >> However, I can't find any uses of _REENTRANT anywhere outside of a few >> utilities that seem to define it manually. > >> Testing with various manually written pthread programs resulted in >> identical binaries, let alone identical results. > >> Is there an actual difference between -pthread and -lpthread or is >> this just a historical artifact? > > In some cases, -pthread also affects the compiler's code generation. On > some RISC architectures, compilers may try to avoid loads and stores of > less than 32 bits. [...] > Because C99 does not specify threading, it allows these transformations. > In C11, they are forbidden. Passing -pthread disables them as well. And does this not happen at all if one uses -lpthread instead?
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?87zk3pnggk.fsf>