aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/sol2.h
diff options
context:
space:
mode:
authorRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>2014-05-28 11:32:54 +0000
committerRainer Orth <ro@gcc.gnu.org>2014-05-28 11:32:54 +0000
commit3c698bf09bbb3c96d568011c7b62a49c9d67f928 (patch)
tree7a94d4d83dba15233aa76c30e53b2b3f9bd8d99e /gcc/config/sol2.h
parent4c8bd90f9f48591980394092c4748678c37049ff (diff)
downloadgcc-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.h11
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}"