From f58d41ff24cd35c9a351c2d805c869552576baae Mon Sep 17 00:00:00 2001 From: Rainer Orth Date: Tue, 30 Jan 2018 21:18:40 +0000 Subject: [PATCH] Fix use of Solaris values-Xc.o (PR target/40411) PR target/40411 * config/sol2.h (STARTFILE_ARCH_SPEC): Use -std=c*, -std=iso9899:199409 instead of -pedantic to select values-Xc.o. From-SVN: r257209 --- gcc/ChangeLog | 6 ++++++ gcc/config/sol2.h | 7 +++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 56a16496ab8..0d2f6dab0d1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2018-01-30 Rainer Orth + + PR target/40411 + * config/sol2.h (STARTFILE_ARCH_SPEC): Use -std=c*, + -std=iso9899:199409 instead of -pedantic to select values-Xc.o. + 2018-01-30 Vladimir Makarov PR target/84112 diff --git a/gcc/config/sol2.h b/gcc/config/sol2.h index f296cf5731c..ec4b111ba0e 100644 --- a/gcc/config/sol2.h +++ b/gcc/config/sol2.h @@ -180,7 +180,10 @@ along with GCC; see the file COPYING3. If not see The values-X[ac].o objects set the variable _lib_version. The Studio C compilers use values-Xc.o with either -Xc or (since Studio 12.6) -pedantic to select strictly conformant ISO C behaviour, otherwise - values-Xa.o. + values-Xa.o. Since -pedantic is a diagnostic option only in GCC, we + need to specifiy the -std=c* options and -std=iso9899:199409. We + traditionally include -ansi, which affects C and C++, and also -std=c++* + for consistency. The values-xpg[46].o objects define either or both __xpg[46] variables, selecting XPG4 mode (__xpg4) and conforming C99/SUSv3 behavior (__xpg6). @@ -195,7 +198,7 @@ along with GCC; see the file COPYING3. If not see #undef STARTFILE_ARCH_SPEC #define STARTFILE_ARCH_SPEC \ "%{!shared:%{!symbolic: \ - %{pedantic:values-Xc.o%s; :values-Xa.o%s} \ + %{ansi|std=c*|std=iso9899\\:199409:values-Xc.o%s; :values-Xa.o%s} \ %{std=c90|std=gnu90:values-xpg4.o%s; :values-xpg6.o%s}}}" #if defined(HAVE_LD_PIE) && defined(HAVE_SOLARIS_CRTS) -- 2.30.2