Link with correct values-*.o files on Solaris (PR target/40411)

gcc/testsuite:
	PR libfortran/67412
	* gfortran.dg/execute_command_line_2.f90: Remove dg-xfail-run-if
	on *-*-solaris2.10.

	libstdc++-v3:
	PR libstdc++/64054
	* testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
	Remove dg-xfail-run-if.

	gcc:
	PR target/40411
	* config/sol2.h (STARTFILE_ARCH_SPEC): Don't use with -shared or
	-symbolic.
	Use values-Xc.o for -pedantic.
	Link with values-xpg4.o for C90, values-xpg6.o otherwise.

From-SVN: r256568
This commit is contained in:
Rainer Orth 2018-01-12 09:52:53 +00:00 committed by Rainer Orth
parent a7448bdfbc
commit c969e34e3f
6 changed files with 47 additions and 4 deletions

View File

@ -1,3 +1,11 @@
2018-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR target/40411
* config/sol2.h (STARTFILE_ARCH_SPEC): Don't use with -shared or
-symbolic.
Use values-Xc.o for -pedantic.
Link with values-xpg4.o for C90, values-xpg6.o otherwise.
2018-01-12 Martin Liska <mliska@suse.cz>
PR ipa/83054

View File

@ -169,9 +169,34 @@ along with GCC; see the file COPYING3. If not see
#undef SUPPORTS_INIT_PRIORITY
#define SUPPORTS_INIT_PRIORITY HAVE_INITFINI_ARRAY_SUPPORT
/* Solaris libc and libm implement multiple behaviours for various
interfaces that have changed over the years in different versions of the
C standard. The behaviour is controlled by linking corresponding
values-*.o objects. Each of these objects contain alternate definitions
of one or more variables that the libraries use to select which
conflicting behaviour they should exhibit. There are two sets of these
objects, values-X*.o and values-xpg*.o.
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.
The values-xpg[46].o objects define either or both __xpg[46] variables,
selecting XPG4 mode (__xpg4) and conforming C99/SUSv3 behavior (__xpg6).
Since GCC 5, gcc defaults to -std=gnu11 or higher, so we link
values-xpg6.o to get C99 semantics. Besides, most of the runtime
libraries always require C99 semantics.
Since only one instance of _lib_version and __xpg[46] takes effekt (the
first in ld.so.1's search path), we only link the values-*.o files into
executable programs. */
#undef STARTFILE_ARCH_SPEC
#define STARTFILE_ARCH_SPEC "%{ansi:values-Xc.o%s} \
%{!ansi:values-Xa.o%s}"
#define STARTFILE_ARCH_SPEC \
"%{!shared:%{!symbolic: \
%{pedantic: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)
#define STARTFILE_CRTBEGIN_SPEC "%{static:crtbegin.o%s; \

View File

@ -1,3 +1,9 @@
2018-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR libfortran/67412
* gfortran.dg/execute_command_line_2.f90: Remove dg-xfail-run-if
on *-*-solaris2.10.
2018-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* lib/target-supports.exp (check_effective_target_branch_cost):

View File

@ -1,5 +1,4 @@
! { dg-do run }
! { dg-xfail-run-if "PR libfortran/67412" { *-*-solaris2.10 } }
!
! Check that EXECUTE_COMMAND_LINE handles invalid command lines appropriately
!

View File

@ -1,3 +1,9 @@
2018-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR libstdc++/64054
* testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
Remove dg-xfail-run-if.
2018-01-10 François Dumont <fdumont@gcc.gnu.org>
* include/bits/forward_list.h

View File

@ -1,6 +1,5 @@
// { dg-do run { target c++11 } }
// { dg-require-string-conversions "" }
// { dg-xfail-run-if "PR libstdc++/64054" { *-*-solaris* } }
// { dg-xfail-run-if "broken long double IO" { newlib_broken_long_double_io } }
// 2014-03-27 Rüdiger Sonderfeld