This patch fixes an interesting bug in default_target_compile: if the options set dest= prior to specifying a language, the language defaults are loaded incorrectly. Specifically, for each board_info value, the *existence* of that value is tested for the board specified using dest=, but the actual value is read from the information for the current target. Since the current target is the default destination, the only reason to specify the dest= option is to override the current target, so this must be wrong and this patch fixes the bug.
>From 9e163d9a322a4e5e452d4c610665ea3330de868b Mon Sep 17 00:00:00 2001 From: Jacob Bachmeyer <[email protected]> Date: Fri, 31 May 2019 18:16:08 -0500 Subject: [PATCH 8/9] Fix misuse of "target_info" in default_target_compile *ChangeLog entry: * lib/target.exp (default_target_compile): Use the "board_info" procedure correctly when loading language defaults, instead of checking for each option under the $dest board, but reading the value using "target_info", which uses the current target instead of the target specified using the "dest=" option. --- lib/target.exp | 20 ++++++++++---------- 1 files changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/target.exp b/lib/target.exp index a9ac83e..6a940af 100644 --- a/lib/target.exp +++ b/lib/target.exp @@ -337,10 +337,10 @@ proc default_target_compile {source destfile type options} { if { $i eq "ada" } { set compiler_type "ada" if {[board_info $dest exists adaflags]} { - append add_flags " [target_info adaflags]" + append add_flags " [board_info $dest adaflags]" } if {[board_info $dest exists gnatmake]} { - set compiler [target_info gnatmake] + set compiler [board_info $dest gnatmake] } else { set compiler [find_gnatmake] } @@ -349,11 +349,11 @@ proc default_target_compile {source destfile type options} { if { $i eq "c++" } { set compiler_type "c++" if {[board_info $dest exists cxxflags]} { - append add_flags " [target_info cxxflags]" + append add_flags " [board_info $dest cxxflags]" } append add_flags " [g++_include_flags]" if {[board_info $dest exists c++compiler]} { - set compiler [target_info c++compiler] + set compiler [board_info $dest c++compiler] } else { set compiler [find_g++] } @@ -362,10 +362,10 @@ proc default_target_compile {source destfile type options} { if { $i eq "d" } { set compiler_type "d" if {[board_info $dest exists dflags]} { - append add_flags " [target_info dflags]" + append add_flags " [board_info $dest dflags]" } if {[board_info $dest exists dcompiler]} { - set compiler [target_info dcompiler] + set compiler [board_info $dest dcompiler] } else { set compiler [find_gdc] } @@ -374,10 +374,10 @@ proc default_target_compile {source destfile type options} { if { $i eq "f77" } { set compiler_type "f77" if {[board_info $dest exists f77flags]} { - append add_flags " [target_info f77flags]" + append add_flags " [board_info $dest f77flags]" } if {[board_info $dest exists f77compiler]} { - set compiler [target_info f77compiler] + set compiler [board_info $dest f77compiler] } else { set compiler [find_g77] } @@ -386,10 +386,10 @@ proc default_target_compile {source destfile type options} { if { $i eq "f90" } { set compiler_type "f90" if {[board_info $dest exists f90flags]} { - append add_flags " [target_info f90flags]" + append add_flags " [board_info $dest f90flags]" } if {[board_info $dest exists f90compiler]} { - set compiler [target_info f90compiler] + set compiler [board_info $dest f90compiler] } else { set compiler [find_gfortran] } -- 1.7.4.1
_______________________________________________ Bug-dejagnu mailing list [email protected] https://lists.gnu.org/mailman/listinfo/bug-dejagnu
