Remove the -pthread option (in FreeBSD versions 500016 and greater) as
threatened over 2 years ago. Why? -pthread was a hack to prevent linking to both libc and libc_r and became unecessary when libc_r became free of libc. Now that we have multiple thread libraries from which to choose, it is more confusing because you can't link to more than one threads library at a time. Things like autoconf and libtool sometimes detect -pthread and also -lc_r, and in conjunction with ports usage of ${PTHREAD_LIBS}, really wacky things ensue when PTHREAD_LIBS is set to another threads library. This might not be so bad if the build broke when this happens, but it doesn't and you don't know it until funny things happen when you run the application (or use an affected library). Reviewed by: obrien
This commit is contained in:
parent
ab551d918c
commit
7231b5a661
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=119720
@ -131,15 +131,17 @@ Boston, MA 02111-1307, USA. */
|
||||
required by the user-land thread model. Before __FreeBSD_version
|
||||
500016, select the appropriate libc, depending on whether we're
|
||||
doing profiling or need threads support. At __FreeBSD_version
|
||||
500016 and later, when threads support is requested include both
|
||||
-lc and -lc_r instead of only -lc_r. To make matters interesting,
|
||||
we can't actually use __FreeBSD_version provided by <osreldate.h>
|
||||
directly since it breaks cross-compiling. As a final twist, make
|
||||
it a hard error if -pthread is provided on the command line and gcc
|
||||
was configured with --disable-threads (this will help avoid bug
|
||||
reports from users complaining about threading when they
|
||||
misconfigured the gcc bootstrap but are later consulting FreeBSD
|
||||
manual pages that refer to the mythical -pthread option). */
|
||||
500016 and later, threads libraries can be linked with libc.
|
||||
Because of this, and because different (not multiple) threading
|
||||
libraries may be selected in the link option, the -pthread option
|
||||
is no longer supported. To make matters interesting, we can't
|
||||
actually use __FreeBSD_version provided by <osreldate.h> directly
|
||||
since it breaks cross-compiling. As a final twist, make it a hard
|
||||
error if -pthread is provided on the command line and gcc was
|
||||
configured with --disable-threads (this will help avoid bug reports
|
||||
from users complaining about threading when they misconfigured the
|
||||
gcc bootstrap but are later consulting FreeBSD manual pages that
|
||||
refer to the mythical -pthread option). */
|
||||
|
||||
/* Provide a LIB_SPEC appropriate for FreeBSD. Just select the appropriate
|
||||
libc, depending on whether we're doing profiling or need threads support.
|
||||
@ -157,9 +159,10 @@ is built with the --enable-threads configure-time option.} \
|
||||
#include <sys/param.h>
|
||||
#if __FreeBSD_version >= 500016
|
||||
#define FBSD_LIB_SPEC " \
|
||||
%{pthread: %eThe -pthread option is deprecated.} \
|
||||
%{!shared: \
|
||||
%{!pg: %{pthread:-lc_r} -lc} \
|
||||
%{pg: %{pthread:-lc_r_p} -lc_p} \
|
||||
%{!pg: -lc} \
|
||||
%{pg: -lc_p} \
|
||||
}"
|
||||
#else
|
||||
#define FBSD_LIB_SPEC " \
|
||||
|
Loading…
Reference in New Issue
Block a user