target-support.exp (bind_pic_locally): Save the flags to 'flags_to_postpone' instead of appending to 'flags'.
gcc/testsuite/ * lib/target-support.exp (bind_pic_locally): Save the flags to 'flags_to_postpone' instead of appending to 'flags'. * lib/gcc.exp (gcc_target_compile): Append board_info's multilib_flags with flags_to_postpone and revert after target_compile. * lib/g++.exp (g++_target_compile): Ditto. * lib/gfortran.exp (gfortran_target_compile): Ditto. From-SVN: r212023
This commit is contained in:
parent
de6c4e1fba
commit
1b1e36a856
5 changed files with 82 additions and 7 deletions
|
@ -1,3 +1,12 @@
|
|||
2014-06-26 Vidya Praveen <vidyapraveen@arm.com>
|
||||
|
||||
* lib/target-support.exp (bind_pic_locally): Save the flags to
|
||||
'flags_to_postpone' instead of appending to 'flags'.
|
||||
* lib/gcc.exp (gcc_target_compile): Append board_info's multilib_flags
|
||||
with flags_to_postpone and revert after target_compile.
|
||||
* lib/g++.exp (g++_target_compile): Ditto.
|
||||
* lib/gfortran.exp (gfortran_target_compile): Ditto.
|
||||
|
||||
2014-06-26 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* lib/target-supports.exp (check_effective_target_trapping): Fix
|
||||
|
|
|
@ -288,6 +288,8 @@ proc g++_target_compile { source dest type options } {
|
|||
global gluefile wrap_flags
|
||||
global ALWAYS_CXXFLAGS
|
||||
global GXX_UNDER_TEST
|
||||
global flags_to_postpone
|
||||
global board_info
|
||||
|
||||
if { [target_info needs_status_wrapper] != "" && [info exists gluefile] } {
|
||||
lappend options "libs=${gluefile}"
|
||||
|
@ -313,10 +315,25 @@ proc g++_target_compile { source dest type options } {
|
|||
exec rm -f $rponame
|
||||
}
|
||||
|
||||
# bind_pic_locally adds -fpie/-fPIE flags to flags_to_postpone and it is
|
||||
# appended here to multilib_flags as it can be overridden by the latter
|
||||
# if it was added earlier. After the target_compile, multilib_flags is
|
||||
# restored to its orignal content.
|
||||
set tboard [target_info name]
|
||||
if {[board_info $tboard exists multilib_flags]} {
|
||||
set orig_multilib_flags "[board_info [target_info name] multilib_flags]"
|
||||
append board_info($tboard,multilib_flags) " $flags_to_postpone"
|
||||
}
|
||||
|
||||
set options [dg-additional-files-options $options $source]
|
||||
|
||||
set result [target_compile $source $dest $type $options]
|
||||
|
||||
if {[board_info $tboard exists multilib_flags]} {
|
||||
set board_info($tboard,multilib_flags) $orig_multilib_flags
|
||||
set flags_to_postpone ""
|
||||
}
|
||||
|
||||
return $result
|
||||
}
|
||||
|
||||
|
|
|
@ -126,7 +126,9 @@ proc gcc_target_compile { source dest type options } {
|
|||
global GCC_UNDER_TEST
|
||||
global TOOL_OPTIONS
|
||||
global TEST_ALWAYS_FLAGS
|
||||
|
||||
global flags_to_postpone
|
||||
global board_info
|
||||
|
||||
if {[target_info needs_status_wrapper] != "" && \
|
||||
[target_info needs_status_wrapper] != "0" && \
|
||||
[info exists gluefile] } {
|
||||
|
@ -162,8 +164,26 @@ proc gcc_target_compile { source dest type options } {
|
|||
set options [concat "{additional_flags=$TOOL_OPTIONS}" $options]
|
||||
}
|
||||
|
||||
# bind_pic_locally adds -fpie/-fPIE flags to flags_to_postpone and it is
|
||||
# appended here to multilib_flags as it can be overridden by the latter
|
||||
# if it was added earlier. After the target_compile, multilib_flags is
|
||||
# restored to its orignal content.
|
||||
set tboard [target_info name]
|
||||
if {[board_info $tboard exists multilib_flags]} {
|
||||
set orig_multilib_flags "[board_info [target_info name] multilib_flags]"
|
||||
append board_info($tboard,multilib_flags) " $flags_to_postpone"
|
||||
}
|
||||
|
||||
lappend options "timeout=[timeout_value]"
|
||||
lappend options "compiler=$GCC_UNDER_TEST"
|
||||
set options [dg-additional-files-options $options $source]
|
||||
return [target_compile $source $dest $type $options]
|
||||
set return_val [target_compile $source $dest $type $options]
|
||||
|
||||
if {[board_info $tboard exists multilib_flags]} {
|
||||
set board_info($tboard,multilib_flags) $orig_multilib_flags
|
||||
set flags_to_postpone ""
|
||||
}
|
||||
|
||||
return $return_val
|
||||
}
|
||||
|
||||
|
|
|
@ -234,16 +234,35 @@ proc gfortran_target_compile { source dest type options } {
|
|||
global gluefile wrap_flags
|
||||
global ALWAYS_GFORTRANFLAGS
|
||||
global GFORTRAN_UNDER_TEST
|
||||
global flags_to_postpone
|
||||
global board_info
|
||||
|
||||
if { [target_info needs_status_wrapper] != "" && [info exists gluefile] } {
|
||||
lappend options "libs=${gluefile}"
|
||||
lappend options "ldflags=${wrap_flags}"
|
||||
}
|
||||
|
||||
# bind_pic_locally adds -fpie/-fPIE flags to flags_to_postpone and it is
|
||||
# appended here to multilib_flags as it can be overridden by the latter
|
||||
# if it was added earlier. After the target_compile, multilib_flags is
|
||||
# restored to its orignal content.
|
||||
set tboard [target_info name]
|
||||
if {[board_info $tboard exists multilib_flags]} {
|
||||
set orig_multilib_flags "[board_info [target_info name] multilib_flags]"
|
||||
append board_info($tboard,multilib_flags) " $flags_to_postpone"
|
||||
}
|
||||
|
||||
lappend options "compiler=$GFORTRAN_UNDER_TEST"
|
||||
lappend options "timeout=[timeout_value]"
|
||||
|
||||
set options [concat "$ALWAYS_GFORTRANFLAGS" $options]
|
||||
set options [dg-additional-files-options $options $source]
|
||||
return [target_compile $source $dest $type $options]
|
||||
set return_val [target_compile $source $dest $type $options]
|
||||
|
||||
if {[board_info $tboard exists multilib_flags]} {
|
||||
set board_info($tboard,multilib_flags) $orig_multilib_flags
|
||||
set flags_to_postpone ""
|
||||
}
|
||||
|
||||
return $return_val
|
||||
}
|
||||
|
|
|
@ -5312,25 +5312,35 @@ proc add_options_for_ieee { flags } {
|
|||
return $flags
|
||||
}
|
||||
|
||||
if {![info exists flags_to_postpone]} {
|
||||
set flags_to_postpone ""
|
||||
}
|
||||
|
||||
# Add to FLAGS the flags needed to enable functions to bind locally
|
||||
# when using pic/PIC passes in the testsuite.
|
||||
|
||||
proc add_options_for_bind_pic_locally { flags } {
|
||||
global flags_to_postpone
|
||||
|
||||
# Instead of returning 'flags' with the -fPIE or -fpie appended, we save it
|
||||
# in 'flags_to_postpone' and append it later in gcc_target_compile procedure in
|
||||
# order to make sure that the multilib_flags doesn't override this.
|
||||
|
||||
if {[check_no_compiler_messages using_pic2 assembly {
|
||||
#if __PIC__ != 2
|
||||
#error FOO
|
||||
#endif
|
||||
}]} {
|
||||
return "$flags -fPIE"
|
||||
set flags_to_postpone "-fPIE"
|
||||
return $flags
|
||||
}
|
||||
if {[check_no_compiler_messages using_pic1 assembly {
|
||||
#if __PIC__ != 1
|
||||
#error FOO
|
||||
#endif
|
||||
}]} {
|
||||
return "$flags -fpie"
|
||||
set flags_to_postpone "-fpie"
|
||||
return $flags
|
||||
}
|
||||
|
||||
return $flags
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue