diff --git a/gcc/ada/gcc-interface/Make-lang.in b/gcc/ada/gcc-interface/Make-lang.in index ebf1f70de78..b2841104651 100644 --- a/gcc/ada/gcc-interface/Make-lang.in +++ b/gcc/ada/gcc-interface/Make-lang.in @@ -780,6 +780,7 @@ regnattools: cross-gnattools: force $(MAKE) -C ada $(ADA_TOOLS_FLAGS_TO_PASS) gnattools1-re $(MAKE) -C ada $(ADA_TOOLS_FLAGS_TO_PASS) gnattools2 + $(GNATTOOLS_CROSS_MV) canadian-gnattools: force $(MAKE) -C ada $(ADA_TOOLS_FLAGS_TO_PASS) gnattools1-re @@ -795,19 +796,23 @@ gnatlib gnatlib-sjlj gnatlib-zcx gnatlib-shared: force FORCE_DEBUG_ADAFLAGS="$(FORCE_DEBUG_ADAFLAGS)" \ $@ +gnattools-cross-mv: + $(GNATTOOLS_CROSS_MV) + +GNATTOOLS_CROSS_MV=\ + for tool in $(ADA_TOOLS) ; do \ + if [ -f $$tool$(exeext) ] ; \ + then \ + $(MV) $$tool$(exeext) $$tool-cross$(exeext); \ + fi; \ + done + # use only for native compiler gnatlib_and_tools: gnatlib gnattools # Build hooks: ada.all.cross: - for tool in $(ADA_TOOLS) ; do \ - if [ -f $$tool$(exeext) ] ; \ - then \ - $(MV) $$tool$(exeext) $$tool-cross$(exeext); \ - fi; \ - done - ada.start.encap: ada.rest.encap: ada.man: diff --git a/gcc/testsuite/lib/gnat.exp b/gcc/testsuite/lib/gnat.exp index 471f83e9844..c278cb7f044 100644 --- a/gcc/testsuite/lib/gnat.exp +++ b/gcc/testsuite/lib/gnat.exp @@ -199,12 +199,19 @@ proc prune_gnat_output { text } { # which prevent multilib from working, so define a new one. proc local_find_gnatmake {} { + global target_triplet global tool_root_dir + global host_triplet if ![is_remote host] { - set file [lookfor_file $tool_root_dir gnatmake] + if { "$host_triplet" == "$target_triplet" } { + set gnatmake gnatmake + } else { + set gnatmake gnatmake-cross + } + set file [lookfor_file $tool_root_dir $gnatmake] if { $file == "" } { - set file [lookfor_file $tool_root_dir gcc/gnatmake] + set file [lookfor_file $tool_root_dir gcc/$gnatmake] } if { $file != "" } { set root [file dirname $file] @@ -225,12 +232,19 @@ proc local_find_gnatmake {} { } proc find_gnatclean {} { + global target_triplet global tool_root_dir + global host_triplet if ![is_remote host] { - set file [lookfor_file $tool_root_dir gnatclean] + if { "$host_triplet" == "$target_triplet" } { + set gnatclean gnatclean + } else { + set gnatclean gnatclean-cross + } + set file [lookfor_file $tool_root_dir $gnatclean] if { $file == "" } { - set file [lookfor_file $tool_root_dir gcc/gnatclean] + set file [lookfor_file $tool_root_dir gcc/$gnatclean] } if { $file != "" } { set gnatclean $file; diff --git a/gnattools/Makefile.in b/gnattools/Makefile.in index e8fc4af0788..4efb0d8f1fe 100644 --- a/gnattools/Makefile.in +++ b/gnattools/Makefile.in @@ -223,6 +223,7 @@ gnattools-cross: $(GCC_DIR)/stamp-tools # gnattools2 $(MAKE) -C $(GCC_DIR)/ada/tools -f ../Makefile \ $(TOOLS_FLAGS_TO_PASS_CROSS) common-tools + $(MAKE) -C $(GCC_DIR) gnattools-cross-mv # Other # -----