#endif
-/* Define if the linker supports clearing hardware capabilities via mapfile.
- */
-#ifndef USED_FOR_TARGET
-#undef HAVE_LD_CLEARCAP
-#endif
-
-
/* Define to the level of your linker's compressed debug section support. */
#ifndef USED_FOR_TARGET
#undef HAVE_LD_COMPRESS_DEBUG
# Clear all hardware capabilities emitted by Sun as.
-hwcap_1 = V0x0 OVERRIDE;
+#
+# Uses mapfile v2 syntax which is the only way to clear AT_SUN_CAP_HW2 flags.
+$mapfile_version 2
+CAPABILITY {
+ HW = ;
+};
+++ /dev/null
-# Clear all hardware capabilities emitted by Sun as.
-#
-# Uses mapfile v2 syntax which is the only way to clear AT_SUN_CAP_HW2 flags.
-$mapfile_version 2
-CAPABILITY {
- HW = ;
-};
/* Clear hardware capabilities, either explicitly or with OpenMP:
#pragma openmp declare simd creates clones for SSE2, AVX, and AVX2. */
-#ifdef HAVE_LD_CLEARCAP
+#if HAVE_SOLARIS_LD
#define LINK_CLEARCAP_SPEC " %{mclear-hwcap|fopenmp*:-M %sclearcap.map}"
#else
#define LINK_CLEARCAP_SPEC ""
install: install-clearcap-map
# Ignore failures: file only exists if linker supports it.
-install-clearcap-map:
- -$(INSTALL_DATA) clearcap.map $(DESTDIR)$(libdir)
+install-clearcap-map: $(srcdir)/config/sol2-clearcap.map
+ -$(INSTALL_DATA) $< $(DESTDIR)$(libdir)
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking linker mapfile support for clearing hardware capabilities" >&5
-$as_echo_n "checking linker mapfile support for clearing hardware capabilities... " >&6; }
-saved_LDFLAGS="$LDFLAGS"
-for clearcap_map in sol2-clearcapv2.map sol2-clearcap.map; do
- LDFLAGS="$saved_LDFLAGS -Wl,-M,${srcdir}/config/$clearcap_map"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int main(void) {return 0;}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
- gcc_cv_ld_clearcap=yes; break
-else
- gcc_cv_ld_clearcap=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-done
-LDFLAGS="$saved_LDFLAGS"
-if test "x$gcc_cv_ld_clearcap" = xyes; then
-
-$as_echo "#define HAVE_LD_CLEARCAP 1" >>confdefs.h
-
- ac_config_links="$ac_config_links clearcap.map:${srcdir}/config/$clearcap_map"
+if test x$ld_flavor = xsolaris; then
+ ac_config_links="$ac_config_links clearcap.map:${srcdir}/config/sol2-clearcap.map"
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld_clearcap" >&5
-$as_echo "$gcc_cv_ld_clearcap" >&6; }
case "$target" in
powerpc*-*-*)
"collect-ld") CONFIG_FILES="$CONFIG_FILES collect-ld:exec-tool.in" ;;
"nm") CONFIG_FILES="$CONFIG_FILES nm:exec-tool.in" ;;
"dsymutil") CONFIG_FILES="$CONFIG_FILES dsymutil:exec-tool.in" ;;
- "clearcap.map") CONFIG_LINKS="$CONFIG_LINKS clearcap.map:${srcdir}/config/$clearcap_map" ;;
+ "clearcap.map") CONFIG_LINKS="$CONFIG_LINKS clearcap.map:${srcdir}/config/sol2-clearcap.map" ;;
"$all_outputs") CONFIG_FILES="$CONFIG_FILES $all_outputs" ;;
"default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
[Define if your linker supports AS_NEEDED in linker scripts.])
fi
-AC_MSG_CHECKING(linker mapfile support for clearing hardware capabilities)
-saved_LDFLAGS="$LDFLAGS"
-for clearcap_map in sol2-clearcapv2.map sol2-clearcap.map; do
- LDFLAGS="$saved_LDFLAGS -Wl,-M,${srcdir}/config/$clearcap_map"
- AC_LINK_IFELSE([AC_LANG_SOURCE([int main(void) {return 0;}])],
- [gcc_cv_ld_clearcap=yes; break], [gcc_cv_ld_clearcap=no])
-done
-LDFLAGS="$saved_LDFLAGS"
-if test "x$gcc_cv_ld_clearcap" = xyes; then
- AC_DEFINE([HAVE_LD_CLEARCAP], 1,
-[Define if the linker supports clearing hardware capabilities via mapfile.])
- AC_CONFIG_LINKS([clearcap.map:${srcdir}/config/$clearcap_map])
+if test x$ld_flavor = xsolaris; then
+ AC_CONFIG_LINKS([clearcap.map:${srcdir}/config/sol2-clearcap.map])
fi
-AC_MSG_RESULT($gcc_cv_ld_clearcap)
case "$target" in
powerpc*-*-*)
enable_decimal_float = @enable_decimal_float@
fixed_point = @fixed_point@
with_aix_soname = @with_aix_soname@
-solaris_ld_v2_maps = @solaris_ld_v2_maps@
enable_execute_stack = @enable_execute_stack@
unwind_header = @unwind_header@
md_unwind_def_header = @md_unwind_def_header@
# Linker mapfile to enforce direct binding to libgcc_s unwinder
# (PR target/59788).
-# Emit v2 mapfile syntax if possible, otherwise ld -z guidance complains
-# every time the mapfile is used.
libgcc-unwind.map: libgcc-std.ver
-ifeq ($(solaris_ld_v2_maps),yes)
@(echo '$$mapfile_version 2'; \
echo "SYMBOL_SCOPE {"; \
for f in `grep _Unwind_ $< | sort`; do \
echo " $$f { FLAGS = EXTERN DIRECT };"; \
done; \
echo "};" ) > $@
-else
- @(echo "{"; \
- for f in `grep _Unwind_ $< | sort`; do \
- echo " $$f = EXTERN DIRECT;"; \
- done; \
- echo "};" ) > $@
-endif
# Copy libgcc-unwind.map to the place where gcc will look for it at build-time.
install-libgcc-unwind-map-forbuild: libgcc-unwind.map
set_use_emutls
set_have_cc_tls
vis_hide
-solaris_ld_v2_maps
real_host_noncanonical
accel_dir_suffix
use_tm_clone_registry
;;
esac
-# Check if Solaris linker support v2 linker mapfile syntax.
-# Link with -nostartfiles -nodefaultlibs since neither are present while
-# building libgcc.
-case ${host} in
-*-*-solaris2*)
- solaris_ld_v2_maps=no
- echo 'int main(void) {return 0;}' > conftest.c
- echo '$mapfile_version 2' > conftest.map
- if { ac_try='${CC-cc} -nostartfiles -nodefaultlibs -Wl,-M,conftest.map -o conftest conftest.c 1>&5'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then
- solaris_ld_v2_maps=yes
- fi
- ;;
-esac
-
-
case ${host} in
loongarch32*-*-*)
tmake_file="${tmake_file} loongarch/t-crtstuff-la32"
;;
esac
-# Check if Solaris linker support v2 linker mapfile syntax.
-# Link with -nostartfiles -nodefaultlibs since neither are present while
-# building libgcc.
-case ${host} in
-*-*-solaris2*)
- solaris_ld_v2_maps=no
- echo 'int main(void) {return 0;}' > conftest.c
- echo '$mapfile_version 2' > conftest.map
- if AC_TRY_COMMAND([${CC-cc} -nostartfiles -nodefaultlibs -Wl,-M,conftest.map -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
- solaris_ld_v2_maps=yes
- fi
- ;;
-esac
-AC_SUBST(solaris_ld_v2_maps)
-
case ${host} in
loongarch32*-*-*)
tmake_file="${tmake_file} loongarch/t-crtstuff-la32"