On 28.05.18 08:57, Gerald Pfeifer wrote:
On Thu, 24 May 2018, Jeff Law wrote:
Happy to trust you on what versions can be dropped and the resulting
simplifications.
Is it worth noting those old versions as deprecated/obsolete in config.gcc?
Good catch, Jeff, thanks. Updated patch (also wrt. comments) below.
Andreas, anyhing from your side?
Ok.
Thanks,
Andreas
Gerald
2018-05-27 Gerald Pfeifer <ger...@pfeifer.com>
* config.gcc: Identify FreeBSD 3.x and 4.x as unsupported.
* config/freebsd-spec.h (FBSD_LIB_SPEC): Only consider FreeBSD 5
and later.
Index: gcc/config.gcc
===================================================================
--- gcc/config.gcc (revision 260808)
+++ gcc/config.gcc (working copy)
@@ -268,7 +268,7 @@
| pdp11-*-bsd \
| sparc-hal-solaris2* \
| thumb-*-* \
- | *-*-freebsd[12] | *-*-freebsd[12].* \
+ | *-*-freebsd[12] | *-*-freebsd[1234].* \
| *-*-freebsd*aout* \
| *-*-linux*aout* \
| *-*-linux*coff* \
Index: gcc/config/freebsd-spec.h
===================================================================
--- gcc/config/freebsd-spec.h (revision 260808)
+++ gcc/config/freebsd-spec.h (working copy)
@@ -79,15 +79,10 @@
#define FBSD_ENDFILE_SPEC \
"%{shared|pie:crtendS.o%s;:crtend.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 the threading lib 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
+/* When threads support is requested include both -lc and the threading
+ library (which assumes FreeBSD 5.x or later, __FreeBSD_version 500016
+ to be precise).
+ And 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
@@ -106,19 +101,8 @@
%{pg: -lc_p} \
}"
#else
-#if FBSD_MAJOR < 5
#define FBSD_LIB_SPEC " \
%{!shared: \
- %{!pg: \
- %{!pthread:-lc} \
- %{pthread:-lc_r}}
\
- %{pg: \
- %{!pthread:-lc_p}
\
- %{pthread:-lc_r_p}} \
- }"
-#else
-#define FBSD_LIB_SPEC " \
- %{!shared: \
%{!pg: %{pthread:-lpthread} -lc} \
%{pg: %{pthread:-lpthread_p} -lc_p} \
} \
@@ -126,8 +110,10 @@
%{pthread:-lpthread} -lc \
}"
#endif
-#endif
+/* To make matters interesting, we can't actually use __FreeBSD_version
+ provided by <osreldate.h> directly since it breaks cross-compiling. */
+
#if FBSD_MAJOR < 6
#define FBSD_DYNAMIC_LINKER "/usr/libexec/ld-elf.so.1"
#else