Clear hwcap_2 with Sun ld

* gcc.target/i386/clearcapv2.map: New file.
	* gcc.target/i386/i386.exp: Try it first before clearcap.map.

From-SVN: r188820
This commit is contained in:
Rainer Orth 2012-06-20 09:17:53 +00:00 committed by Rainer Orth
parent 3e71d9533a
commit 32e36d1a83
3 changed files with 26 additions and 3 deletions

View file

@ -1,3 +1,8 @@
2012-06-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* gcc.target/i386/clearcapv2.map: New file.
* gcc.target/i386/i386.exp: Try it first before clearcap.map.
2012-06-19 Kaz Kojima <kkojima@gcc.gnu.org>
* gcc.dg/stack-usage-1.c: Remove dg-options line for sh targets

View file

@ -0,0 +1,7 @@
# clear all hardware capabilities emitted by Sun as: the tests here
# guard against execution at runtime
# uses mapfile v2 syntax which is the only way to clear AT_SUN_CAP_HW2 flags
$mapfile_version 2
CAPABILITY {
HW = ;
};

View file

@ -256,12 +256,23 @@ proc check_effective_target_rtm { } {
# If the linker used understands -M <mapfile>, pass it to clear hardware
# capabilities set by the Sun assembler.
set clearcap_ldflags "-Wl,-M,$srcdir/$subdir/clearcap.map"
# Try mapfile syntax v2 first which is the only way to clear hwcap_2 flags.
set clearcap_ldflags "-Wl,-M,$srcdir/$subdir/clearcapv2.map"
if [check_no_compiler_messages mapfile executable {
if ![check_no_compiler_messages mapfilev2 executable {
int main (void) { return 0; }
} $clearcap_ldflags ] {
# If this doesn't work, fall back to the less capable v1 syntax.
set clearcap_ldflags "-Wl,-M,$srcdir/$subdir/clearcap.map"
if ![check_no_compiler_messages mapfile executable {
int main (void) { return 0; }
} $clearcap_ldflags ] {
} $clearcap_ldflags ] {
unset clearcap_ldflags
}
}
if [info exists clearcap_ldflags] {
if { [info procs gcc_target_compile] != [list] \
&& [info procs saved_gcc_target_compile] == [list] } {
rename gcc_target_compile saved_gcc_target_compile