summaryrefslogtreecommitdiffstats
path: root/contrib
diff options
context:
space:
mode:
authordeischen <deischen@FreeBSD.org>2003-09-01 05:31:33 +0000
committerdeischen <deischen@FreeBSD.org>2003-09-01 05:31:33 +0000
commit591fec46c46db5741955ea71f2571001a039f4d0 (patch)
tree7a9f2c2c0831aa64842524279e54359e6ddf0199 /contrib
parent284da805ed783bce2fb095603a05350576b5c7ba (diff)
downloadFreeBSD-src-591fec46c46db5741955ea71f2571001a039f4d0.zip
FreeBSD-src-591fec46c46db5741955ea71f2571001a039f4d0.tar.gz
Backout rev 1.10.
Requested by: obrien
Diffstat (limited to 'contrib')
-rw-r--r--contrib/gcc/config/freebsd-spec.h40
1 files changed, 38 insertions, 2 deletions
diff --git a/contrib/gcc/config/freebsd-spec.h b/contrib/gcc/config/freebsd-spec.h
index bbb87f6..42311f2 100644
--- a/contrib/gcc/config/freebsd-spec.h
+++ b/contrib/gcc/config/freebsd-spec.h
@@ -127,13 +127,49 @@ Boston, MA 02111-1307, USA. */
%{shared:crtendS.o%s} \
crtn.o%s "
+/* Provide a LIB_SPEC appropriate for FreeBSD as configured and as
+ 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). */
+
/* Provide a LIB_SPEC appropriate for FreeBSD. Just select the appropriate
- libc, depending on whether we're doing profiling or not.
+ libc, depending on whether we're doing profiling or need threads support.
(simular to the default, except no -lg, and no -p). */
+#ifdef FBSD_NO_THREADS
#define FBSD_LIB_SPEC " \
- %{pthread: %eThe -pthread option is deprecated.} \
+ %{pthread: %eThe -pthread option is only supported on FreeBSD when gcc \
+is built with the --enable-threads configure-time option.} \
%{!shared: \
%{!pg: -lc} \
%{pg: -lc_p} \
}"
+#else
+#include <sys/param.h>
+#if __FreeBSD_version >= 500016
+#define FBSD_LIB_SPEC " \
+ %{!shared: \
+ %{!pg: %{pthread:-lc_r} -lc} \
+ %{pg: %{pthread:-lc_r_p} -lc_p} \
+ }"
+#else
+#define FBSD_LIB_SPEC " \
+ %{!shared: \
+ %{!pg: \
+ %{!pthread:-lc} \
+ %{pthread:-lc_r}} \
+ %{pg: \
+ %{!pthread:-lc_p} \
+ %{pthread:-lc_r_p}} \
+ }"
+#endif
+#endif
OpenPOWER on IntegriCloud