From 645112ddccf26d5b22cb8add2eb624f731d1514c Mon Sep 17 00:00:00 2001
From: Benjamin Kosnik <bkoz@redhat.com>
Date: Thu, 11 Dec 2003 01:08:14 +0000
Subject: re PR libstdc++/6243 (testsuite fails almost all tests due to no
 libintl in LD_LIBRARY_PATH during test.)

2003-12-10  Benjamin Kosnik  <bkoz@redhat.com>

	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.

From-SVN: r74521
---
 libstdc++-v3/ChangeLog                   |  7 ++++++
 libstdc++-v3/testsuite/lib/libstdc++.exp | 40 +++++++++++++++++++++++---------
 2 files changed, 36 insertions(+), 11 deletions(-)

(limited to 'libstdc++-v3')

diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index c6d75b9..39fcdb9 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,4 +1,11 @@
 2003-12-10  Benjamin Kosnik  <bkoz@redhat.com>
+
+	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  <bkoz@redhat.com>
             Alexandre Oliva  <aoliva@redhat.com>
 	
 	PR libstdc++/11612
diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp b/libstdc++-v3/testsuite/lib/libstdc++.exp
index 9ea1acc..9aacdb28 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...
-- 
cgit v1.1