Clear hwcap_2 with Sun ld
Backport from mainline: 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. From-SVN: r196168
This commit is contained in:
parent
b59573712e
commit
ab6f72476c
|
@ -1,3 +1,11 @@
|
|||
2013-02-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||||
|
||||
Backport from mainline:
|
||||
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.
|
||||
|
||||
2013-02-19 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
Backported from mainline
|
||||
|
|
|
@ -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 = ;
|
||||
};
|
|
@ -245,12 +245,23 @@ proc check_effective_target_bmi2 { } {
|
|||
|
||||
# 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
|
||||
|
|
Loading…
Reference in New Issue