mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-14 04:20:25 +08:00
gnat.exp: Handle multilib.
testsuite/ 2009-04-06 Laurent GUERBY <laurent@guerby.net> * lib/gnat.exp: Handle multilib. libada/ 2009-04-06 Laurent GUERBY <laurent@guerby.net> * Makefile.in (ADA_RTS_DIR): Define. * Makefile.in (gnatlib-*): Link adainclude and adalib to it. From-SVN: r145622
This commit is contained in:
parent
ea0a374b2c
commit
6d63ea7513
@ -1,3 +1,7 @@
|
||||
2009-04-06 Laurent GUERBY <laurent@guerby.net>
|
||||
|
||||
* lib/gnat.exp: Handle multilib.
|
||||
|
||||
2009-04-06 Paul Thomas <pault@gcc.gnu.org>
|
||||
|
||||
PR fortran/38863
|
||||
|
@ -83,17 +83,22 @@ proc gnat_init { args } {
|
||||
global gluefile wrap_flags
|
||||
global gnat_initialized
|
||||
global GNAT_UNDER_TEST
|
||||
global GNAT_UNDER_TEST_ORIG
|
||||
global TOOL_EXECUTABLE
|
||||
global gnat_libgcc_s_path
|
||||
global gnat_target_current
|
||||
|
||||
set gnat_target_current ""
|
||||
|
||||
if { $gnat_initialized == 1 } { return }
|
||||
|
||||
if ![info exists GNAT_UNDER_TEST] then {
|
||||
if [info exists TOOL_EXECUTABLE] {
|
||||
set GNAT_UNDER_TEST $TOOL_EXECUTABLE
|
||||
set GNAT_UNDER_TEST "$TOOL_EXECUTABLE"
|
||||
} else {
|
||||
set GNAT_UNDER_TEST [find_gnatmake]
|
||||
set GNAT_UNDER_TEST "[local_find_gnatmake]"
|
||||
}
|
||||
set GNAT_UNDER_TEST_ORIG "$GNAT_UNDER_TEST"
|
||||
}
|
||||
|
||||
if ![info exists tmpdir] then {
|
||||
@ -124,14 +129,26 @@ proc gnat_target_compile { source dest type options } {
|
||||
global gluefile wrap_flags
|
||||
global srcdir
|
||||
global GNAT_UNDER_TEST
|
||||
global GNAT_UNDER_TEST_ORIG
|
||||
global TOOL_OPTIONS
|
||||
global ld_library_path
|
||||
global gnat_libgcc_s_path
|
||||
global gnat_target_current
|
||||
|
||||
# If we detect a change of target we need to recompute
|
||||
# the appropriate RTS by calling get_multilibs.
|
||||
if { $gnat_target_current!="[current_target_name]" } {
|
||||
set gnat_target_current "[current_target_name]"
|
||||
if [info exists TOOL_OPTIONS] {
|
||||
set gnat_rts_opt "--RTS=[get_multilibs ${TOOL_OPTIONS}]/libada"
|
||||
} else {
|
||||
set gnat_rts_opt "--RTS=[get_multilibs]/libada"
|
||||
}
|
||||
set GNAT_UNDER_TEST "$GNAT_UNDER_TEST_ORIG $gnat_rts_opt"
|
||||
}
|
||||
|
||||
setenv ADA_INCLUDE_PATH "${rootme}/ada/rts"
|
||||
set ld_library_path ".:${gnat_libgcc_s_path}"
|
||||
lappend options "compiler=$GNAT_UNDER_TEST -q -f"
|
||||
lappend options "incdir=${rootme}/ada/rts"
|
||||
lappend options "timeout=[timeout_value]"
|
||||
|
||||
if { [target_info needs_status_wrapper]!="" && [info exists gluefile] } {
|
||||
@ -150,6 +167,7 @@ proc gnat_target_compile { source dest type options } {
|
||||
|
||||
# set sourcename [string range $source 0 [expr [string length $source] - 5]]
|
||||
# set dest ""
|
||||
|
||||
return [target_compile $source $dest $type $options]
|
||||
}
|
||||
|
||||
@ -232,29 +250,27 @@ proc prune_gnat_output { text } {
|
||||
return $text
|
||||
}
|
||||
|
||||
# If this is an older version of DejaGnu (without find_gnatmake), provide one.
|
||||
# This can be deleted after next DejaGnu release.
|
||||
# find_gnatmake for some version of DejaGnu will hardcode a -I...rts/ada flag
|
||||
# which prevent multilib from working, so define a new one.
|
||||
|
||||
if { [info procs find_gnatmake] == "" } {
|
||||
proc find_gnatmake {} {
|
||||
global tool_root_dir
|
||||
|
||||
if ![is_remote host] {
|
||||
set file [lookfor_file $tool_root_dir gnatmake]
|
||||
if { $file == "" } {
|
||||
set file [lookfor_file $tool_root_dir gcc/gnatmake]
|
||||
}
|
||||
if { $file != "" } {
|
||||
set root [file dirname $file]
|
||||
set CC "$file -I$root/ada/rts --GCC=$root/xgcc --GNATBIND=$root/gnatbind --GNATLINK=$root/gnatlink -cargs -B$root -largs --GCC=$root/xgcc -B$root -margs";
|
||||
} else {
|
||||
set CC [transform gnatmake]
|
||||
}
|
||||
} else {
|
||||
set CC [transform gnatmake]
|
||||
}
|
||||
return $CC
|
||||
proc local_find_gnatmake {} {
|
||||
global tool_root_dir
|
||||
|
||||
if ![is_remote host] {
|
||||
set file [lookfor_file $tool_root_dir gnatmake]
|
||||
if { $file == "" } {
|
||||
set file [lookfor_file $tool_root_dir gcc/gnatmake]
|
||||
}
|
||||
if { $file != "" } {
|
||||
set root [file dirname $file]
|
||||
set CC "$file --GCC=$root/xgcc --GNATBIND=$root/gnatbind --GNATLINK=$root/gnatlink -cargs -B$root -largs -B$root -margs -B$root";
|
||||
} else {
|
||||
set CC [transform gnatmake]
|
||||
}
|
||||
} else {
|
||||
set CC [transform gnatmake]
|
||||
}
|
||||
return $CC
|
||||
}
|
||||
|
||||
# If this is an older version of DejaGnu (without runtest_file_p),
|
||||
|
@ -1,3 +1,8 @@
|
||||
2009-04-06 Laurent GUERBY <laurent@guerby.net>
|
||||
|
||||
* Makefile.in (ADA_RTS_DIR): Define.
|
||||
* Makefile.in (gnatlib-*): Link adainclude and adalib to it.
|
||||
|
||||
2008-09-21 Laurent Guerby <laurent@guerby.net>
|
||||
Paolo Bonzini <bonzini@gnu.org>
|
||||
|
||||
|
@ -65,6 +65,7 @@ include $(GCC_DIR)/libgcc.mvars
|
||||
target_noncanonical:=@target_noncanonical@
|
||||
version := $(shell cat $(srcdir)/../gcc/BASE-VER)
|
||||
libsubdir := $(libdir)/gcc/$(target_noncanonical)/$(version)$(MULTISUBDIR)
|
||||
ADA_RTS_DIR=$(GCC_DIR)/ada/rts$(subst /,_,$(MULTISUBDIR))
|
||||
|
||||
# exeext should not be used because it's the *host* exeext. We're building
|
||||
# a *target* library, aren't we?!? Likewise for CC. Still, provide bogus
|
||||
@ -97,11 +98,15 @@ gnatlib-plain: oscons $(GCC_DIR)/ada/Makefile
|
||||
test -f stamp-libada || \
|
||||
$(MAKE) -C $(GCC_DIR)/ada $(LIBADA_FLAGS_TO_PASS) gnatlib \
|
||||
&& touch stamp-libada
|
||||
$(LN_S) $(ADA_RTS_DIR) adainclude
|
||||
$(LN_S) $(ADA_RTS_DIR) adalib
|
||||
|
||||
gnatlib-sjlj gnatlib-zcx gnatlib-shared: oscons $(GCC_DIR)/ada/Makefile
|
||||
test -f stamp-libada || \
|
||||
$(MAKE) -C $(GCC_DIR)/ada $(LIBADA_FLAGS_TO_PASS) $@ \
|
||||
&& touch stamp-libada
|
||||
$(LN_S) $(ADA_RTS_DIR) adainclude
|
||||
$(LN_S) $(ADA_RTS_DIR) adalib
|
||||
|
||||
oscons:
|
||||
$(MAKE) -C $(GCC_DIR) $(LIBADA_FLAGS_TO_PASS) ada/s-oscons.ads
|
||||
|
Loading…
x
Reference in New Issue
Block a user