target-libpath.exp: New file defining set_ld_library_path_env_vars and restore_ld_library_path_env_vars.

* lib/target-libpath.exp: New file defining set_ld_library_path_env_vars
	and restore_ld_library_path_env_vars.
	* g++.dg/compat/compat.exp, lib/g++.exp, lib/gcc-dg.exp,
	lib/gfortran.exp, lib/objc.exp, lib/treelang.exp: Use new procs.
	* ada/acats/run_acats (LD_LIBRARY_PATH): Add previous LD_LIBRARY_PATH
	to LD_LIBRARY_PATH.  Export LD_LIBRARY_PATH.

	* testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.

	* testsuite/lib/libjava.exp,
	testsuite/libjava.jacks/jacks.exp: Use new procs in target-libpath.exp.

	* testsuite/lib/libmudflap.exp: Use new procs in target-libpath.exp.

	* testsuite/lib/libstdc++.exp: Use new procs in target-libpath.exp.

From-SVN: r91137
This commit is contained in:
John David Anglin 2004-11-24 04:39:41 +00:00
parent be6601c384
commit 1df8e83465
17 changed files with 2367 additions and 282 deletions

View file

@ -1,6 +1,12 @@
# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation
load_lib "libgloss.exp"
proc load_gcc_lib { filename } {
global srcdir
load_file $srcdir/../../gcc/testsuite/lib/$filename
}
load_lib libgloss.exp
load_gcc_lib target-libpath.exp
# GCJ_UNDER_TEST is the compiler under test.
@ -133,7 +139,6 @@ proc libjava_init { args } {
global libjava_initialized libjava_uses_threads
global GCJ_UNDER_TEST
global TOOL_EXECUTABLE
global original_ld_library_path
global env objdir
global env libgcj_jar
global tool_root_dir
@ -177,24 +182,6 @@ proc libjava_init { args } {
# Always set encoding used by gcj.
append GCJ_UNDER_TEST " --encoding=UTF-8"
if [info exists env(LD_LIBRARY_PATH)] {
set original_ld_library_path $env(LD_LIBRARY_PATH)
# For HP-UX.
} elseif [info exists env(SHLIB_PATH)] {
set original_ld_library_path $env(SHLIB_PATH)
# For Darwin.
} elseif [info exists env(DYLD_LIBRARY_PATH)] {
set original_ld_library_path $env(DYLD_LIBRARY_PATH)
# For Solaris 32 bit.
} elseif [info exists env(LD_LIBRARY_PATH_32)] {
set original_ld_library_path $env(LD_LIBRARY_PATH_32)
# For Solaris 64 bit.
} elseif [info exists env(LD_LIBRARY_PATH_64)] {
set original_ld_library_path $env(LD_LIBRARY_PATH_64)
} else {
set original_ld_library_path ""
}
set wrapper_file "";
set wrap_compile_flags "";
if [target_info exists needs_status_wrapper] {
@ -336,6 +323,7 @@ proc libjava_arguments {{mode compile}} {
global tool_root_dir
global libgcj_jar
global libjava_libgcc_s_path
global ld_library_path
global target_triplet
if [info exists LIBJAVA] {
@ -369,11 +357,10 @@ proc libjava_arguments {{mode compile}} {
# If we wanted to handle an arbitrary value of libjava,
# then we'd have to do a lot more work.
# Set variables the dynamic linker looks at.
global original_ld_library_path
setenv LD_LIBRARY_PATH "$ld_library_path:$original_ld_library_path"
verbose "LD_LIBRARY_PATH = $env(LD_LIBRARY_PATH)"
set_ld_library_path_env_vars
if [info exists env(LD_LIBRARY_PATH)] {
verbose "LD_LIBRARY_PATH = $env(LD_LIBRARY_PATH)"
}
# Determine CLASSPATH separator
if { [string match "i?86-pc-mingw32*" $target_triplet] } {
@ -466,24 +453,24 @@ proc gcj_link {program main files {options {}}} {
# Invoke the program and see what happens. Return 0 on failure.
proc gcj_invoke {program expectFile ld_library_additions} {
global env
set lib_path $env(LD_LIBRARY_PATH)
global ld_library_path
set newval .
set ld_library_path .
if {[llength $ld_library_additions] > 0} {
append newval :[join $ld_library_additions :]
append ld_library_path :[join $ld_library_additions :]
}
append newval :$lib_path
setenv LD_LIBRARY_PATH $newval
verbose "LD_LIBRARY_PATH=$env(LD_LIBRARY_PATH)"
set_ld_library_path_env_vars
if [info exists env(LD_LIBRARY_PATH)] {
verbose "LD_LIBRARY_PATH=$env(LD_LIBRARY_PATH)"
}
set result [libjava_load ./$program]
set status [lindex $result 0]
set output [lindex $result 1]
# Restore setting
setenv LD_LIBRARY_PATH $lib_path
restore_ld_library_path_env_vars
if {$status != "pass"} {
verbose "got $output"
@ -511,18 +498,18 @@ proc gcj_invoke {program expectFile ld_library_additions} {
proc libjava_invoke {errname testName optName executable inpfile resultfile
ld_library_additions args} {
global env
set lib_path $env(LD_LIBRARY_PATH)
global ld_library_path
set newval .
set ld_library_path .
if {[llength $ld_library_additions] > 0} {
append newval :[join $ld_library_additions :]
append ld_library_path :[join $ld_library_additions :]
}
append newval :$lib_path
set_ld_library_path_env_vars
if [info exists env(LD_LIBRARY_PATH)] {
verbose "LD_LIBRARY_PATH=$env(LD_LIBRARY_PATH)"
}
setenv LD_LIBRARY_PATH $newval
verbose "LD_LIBRARY_PATH=$env(LD_LIBRARY_PATH)"
upvar $optName opts
if {[info exists opts(no-exec)]} {
@ -541,7 +528,7 @@ proc libjava_invoke {errname testName optName executable inpfile resultfile
set output [lindex $result 1]
# Restore LD_LIBRARY_PATH setting.
setenv LD_LIBRARY_PATH $lib_path
restore_ld_library_path_env_vars
if {[info exists opts(xfail-exec)]} then {
setup_xfail *-*-*
@ -934,25 +921,6 @@ proc default_libjava_version {} {
proc default_libjava_start { } {
}
# On IRIX 6, we have to set variables akin to LD_LIBRARY_PATH, but
# called LD_LIBRARYN32_PATH (for the N32 ABI) and LD_LIBRARY64_PATH
# (for the 64-bit ABI). The right way to do this would be to modify
# unix.exp -- but that's not an option since it's part of DejaGNU
# proper, so we do it here, by trickery.
# The same applies to darwin (DYLD_LIBRARY_PATH), solaris 32 bit
# (LD_LIBRARY_PATH_32), solaris 64 bit (LD_LIBRARY_PATH_64), and HP-UX
# (SHLIB_PATH).
proc ${tool}_set_ld_library_path { name element op } {
setenv LD_LIBRARYN32_PATH [getenv LD_LIBRARY_PATH]
setenv LD_LIBRARY64_PATH [getenv LD_LIBRARY_PATH]
setenv SHLIB_PATH [getenv LD_LIBRARY_PATH]
setenv DYLD_LIBRARY_PATH [getenv LD_LIBRARY_PATH]
setenv LD_LIBRARY_PATH_32 [getenv LD_LIBRARY_PATH]
setenv LD_LIBRARY_PATH_64 [getenv LD_LIBRARY_PATH]
}
trace variable env(LD_LIBRARY_PATH) w ${tool}_set_ld_library_path
# Local Variables:
# tcl-indent-level:4
# End: