diff options
Diffstat (limited to 'libffi/testsuite')
-rw-r--r-- | libffi/testsuite/lib/libffi-dg.exp | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/libffi/testsuite/lib/libffi-dg.exp b/libffi/testsuite/lib/libffi-dg.exp index a5e23e28953..8db38c286a8 100644 --- a/libffi/testsuite/lib/libffi-dg.exp +++ b/libffi/testsuite/lib/libffi-dg.exp @@ -107,16 +107,33 @@ proc libffi-init { args } { set blddircxx [lookfor_file [get_multilibs] libstdc++-v3] verbose "libstdc++ $blddircxx" - set ld_library_path "" set gccdir [lookfor_file $tool_root_dir gcc/libgcc.a] if {$gccdir != ""} { set gccdir [file dirname $gccdir] - add_path ld_library_path [find_libgcc_s "$gccdir/xgcc"] + } + verbose "gccdir $gccdir" + + set ld_library_path "." + append ld_library_path ":${gccdir}" + + set compiler "${gccdir}/xgcc" + if { [is_remote host] == 0 && [which $compiler] != 0 } { + foreach i "[exec $compiler --print-multi-lib]" { + set mldir "" + regexp -- "\[a-z0-9=_/\.-\]*;" $i mldir + set mldir [string trimright $mldir "\;@"] + if { "$mldir" == "." } { + continue + } + if { [llength [glob -nocomplain ${gccdir}/${mldir}/libgcc_s*.so.*]] >= 1 } { + append ld_library_path ":${gccdir}/${mldir}" + } + } } # add the library path for libffi. - add_path ld_library_path "${blddirffi}/.libs" + append ld_library_path ":${blddirffi}/.libs" # add the library path for libstdc++ as well. - add_path ld_library_path "${blddircxx}/src/.libs" + append ld_library_path ":${blddircxx}/src/.libs" verbose "ld_library_path: $ld_library_path" |