diff options
author | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | 2014-05-28 11:32:54 +0000 |
---|---|---|
committer | Rainer Orth <ro@gcc.gnu.org> | 2014-05-28 11:32:54 +0000 |
commit | 3c698bf09bbb3c96d568011c7b62a49c9d67f928 (patch) | |
tree | 7a94d4d83dba15233aa76c30e53b2b3f9bd8d99e /gcc/config/sol2.h | |
parent | 4c8bd90f9f48591980394092c4748678c37049ff (diff) | |
download | gcc-3c698bf09bbb3c96d568011c7b62a49c9d67f928.zip gcc-3c698bf09bbb3c96d568011c7b62a49c9d67f928.tar.gz gcc-3c698bf09bbb3c96d568011c7b62a49c9d67f928.tar.bz2 |
Centralise clearing hardware capabilities with Sun ld
gcc:
* configure.ac ($gcc_cv_ld_clearcap): New test.
* configure: Regenerate.
* config.in: Regenerate.
* config/sol2.opt (mclear-hwcap): New option.
* config/sol2.h (LINK_CLEARCAP_SPEC): Define.
* config/sol2-clearcap.map: Moved here from
testsuite/gcc.target/i386/clearcap.map.
* config/sol2-clearcapv2.map: Move here from
gcc.target/i386/clearcapv2.map.
* config/t-sol2 (install): Depend on install-clearcap-map.
(install-clearcap-map): New target.
* doc/invoke.texi (Option Summary, Solaris 2 Options): Document
-mclear-hwcap.
gcc/testsuite:
* lib/clearcap.exp: New file.
* gcc.dg/vect/vect.exp: Load clearcap.exp.
Remove clearcap_ldflags handling.
Call clearcap-init, clearcap-finish.
* gcc.target/i386/i386.exp: Likewise.
* gcc.target/i386/clearcap.map: Move to ../config/sol2-clearcap.map.
* gcc.target/i386/clearcapv2.map: Move to
../config/sol2-clearcapv2.map.
* gcc.target/x86_64/abi/avx/abi-avx.exp: Likewise.
* gcc.target/x86_64/abi/avx512f/abi-avx512f.exp: Likewise.
libitm:
* acinclude.m4 (LIBITM_CHECK_LINKER_HWCAP): Check for
-mclear-hwcap instead.
* configure: Regenerate.
* clearcap.map: Remove.
From-SVN: r211014
Diffstat (limited to 'gcc/config/sol2.h')
-rw-r--r-- | gcc/config/sol2.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/gcc/config/sol2.h b/gcc/config/sol2.h index d88de37..d41e3c4 100644 --- a/gcc/config/sol2.h +++ b/gcc/config/sol2.h @@ -268,12 +268,21 @@ along with GCC; see the file COPYING3. If not see #define LINK_LIBGCC_MAPFILE_SPEC "" #endif +/* Clear hardware capabilities, either explicitly or with OpenMP: + #pragma openmp declare simd creates clones for SSE2, AVX, and AVX2. */ +#ifdef HAVE_LD_CLEARCAP +#define LINK_CLEARCAP_SPEC " %{mclear-hwcap|fopenmp*:-M %sclearcap.map}" +#else +#define LINK_CLEARCAP_SPEC "" +#endif + #undef LINK_SPEC #define LINK_SPEC \ "%{h*} %{v:-V} \ %{!shared:%{!static:%{rdynamic: " RDYNAMIC_SPEC "}}} \ %{static:-dn -Bstatic} \ - %{shared:-G -dy %{!mimpure-text:-z text}} " LINK_LIBGCC_MAPFILE_SPEC " \ + %{shared:-G -dy %{!mimpure-text:-z text}} " \ + LINK_LIBGCC_MAPFILE_SPEC LINK_CLEARCAP_SPEC " \ %{symbolic:-Bsymbolic -G -dy -z text} \ %(link_arch) \ %{Qy:} %{!Qn:-Qy}" |