diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index c6d75b9dc96..39fcdb90191 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2003-12-10 Benjamin Kosnik + + PR libstdc++/6243 + * testsuite/lib/libstdc++.exp (v3-init): Add + original_ld_library_path, calculate ld_library path, set + LD_LIBRARY_PATH to both. Based on libjava.exp. + 2003-12-10 Benjamin Kosnik Alexandre Oliva diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp b/libstdc++-v3/testsuite/lib/libstdc++.exp index 9ea1acc7dbc..9aacdb28b83 100644 --- a/libstdc++-v3/testsuite/lib/libstdc++.exp +++ b/libstdc++-v3/testsuite/lib/libstdc++.exp @@ -46,7 +46,9 @@ proc v3-init { args } { global cxxflags global objdir global gluefile wrap_flags + global env global ld_library_path + global original_ld_library_path global tool_root_dir set blddir [lookfor_file [get_multilibs] libstdc++-v3] @@ -59,15 +61,31 @@ proc v3-init { args } { v3-copy-files [glob -nocomplain "$srcdir/data/*.tst"] $outdir v3-copy-files [glob -nocomplain "$srcdir/data/*.txt"] $outdir - # set LD_LIBRARY_PATH so that libgcc_s, libstdc++ binaries can be found. - # locate libgcc.a so we don't need to account for different values of + # Setup LD_LIBRARY_PATH so that libgcc_s, libstdc++ binaries can be found. + # Find the existing LD_LIBRARY_PATH. + if [info exists env(LD_LIBRARY_PATH)] { + set original_ld_library_path $env(LD_LIBRARY_PATH) + } else { + if [info exists env(SHLIB_PATH)] { + set original_ld_library_path $env(SHLIB_PATH) + } else { + if [info exists env(DYLD_LIBRARY_PATH)] { + set original_ld_library_path $env(DYLD_LIBRARY_PATH) + } else { + set original_ld_library_path "" + } + } + } + + # Locate libgcc.a so we don't need to account for different values of # SHLIB_EXT on different platforms set gccdir [lookfor_file $tool_root_dir gcc/libgcc.a] if {$gccdir != ""} { set gccdir [file dirname $gccdir] } - set ld_library_path "." + # Compute what needs to be added to the existing LD_LIBRARY_PATH. + set ld_library_path "" append ld_library_path ":${gccdir}" set compiler ${gccdir}/g++ if { [is_remote host] == 0 && [which $compiler] != 0 } { @@ -91,14 +109,14 @@ proc v3-init { args } { # unix.exp -- but that's not an option since it's part of DejaGNU # proper, so we do it here. We really only need to do # this on IRIX, but it shouldn't hurt to do it anywhere else. - setenv LD_LIBRARY_PATH $ld_library_path - setenv SHLIB_PATH $ld_library_path - setenv LD_LIBRARYN32_PATH $ld_library_path - setenv LD_LIBRARY64_PATH $ld_library_path - setenv LD_RUN_PATH $ld_library_path - setenv LD_LIBRARY_PATH_64 $ld_library_path - setenv DYLD_LIBRARY_PATH $ld_library_path - verbose -log "Set LD_*_PATHs to ${ld_library_path}" + setenv LD_LIBRARY_PATH "$ld_library_path:$original_ld_library_path" + setenv SHLIB_PATH "$ld_library_path:$original_ld_library_path" + setenv LD_LIBRARYN32_PATH "$ld_library_path:$original_ld_library_path" + setenv LD_LIBRARY64_PATH "$ld_library_path:$original_ld_library_path" + setenv LD_RUN_PATH "$ld_library_path:$original_ld_library_path" + setenv LD_LIBRARY_PATH_64 "$ld_library_path:$original_ld_library_path" + setenv DYLD_LIBRARY_PATH "$ld_library_path:$original_ld_library_path" + verbose -log "LD_LIBRARY_PATH = $env(LD_LIBRARY_PATH)" # Do a bunch of handstands and backflips for cross compiling and # finding simulators...