re PR other/16633 (C tests don't use the newly built libgcc.so.1)
authorH.J. Lu <hongjiu.lu@intel.com>
Mon, 6 Sep 2004 23:36:11 +0000 (23:36 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Mon, 6 Sep 2004 23:36:11 +0000 (16:36 -0700)
2004-09-06  H.J. Lu  <hongjiu.lu@intel.com>

PR c/16633:
* lib/gcc-dg.exp: Set up LD_LIBRARY_PATH, SHLIB_PATH,
LD_LIBRARYN32_PATH, LD_LIBRARY64_PATH and DYLD_LIBRARY_PATH.

From-SVN: r87131

gcc/testsuite/ChangeLog
gcc/testsuite/lib/gcc-dg.exp

index 950a32f9fcfcb951b07ea8b685db37039e1c65c3..46b655fb15ba7d9ced6424d18fe242e15525f947 100644 (file)
@@ -1,3 +1,9 @@
+2004-09-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR c/16633:
+       * lib/gcc-dg.exp: Set up LD_LIBRARY_PATH, SHLIB_PATH,
+       LD_LIBRARYN32_PATH, LD_LIBRARY64_PATH and DYLD_LIBRARY_PATH.
+
 2004-09-06  Devang Patel  <dpatel@apple.com>
        
        * gcc.dg/tree-ssa/ifc-20040816-1.c: Use -ftree-vectorize.
index 3f2d9aa701e5a67775a37ac7e4702ff8bdb39b6d..ca2812d499c460b5e128ecc0831161810ed224cf 100644 (file)
@@ -20,6 +20,7 @@ load_lib target-supports.exp
 load_lib scanasm.exp
 load_lib scantree.exp
 load_lib prune.exp
+load_lib libgloss.exp
 
 if ![info exists TORTURE_OPTIONS] {
     # It is theoretically beneficial to group all of the O2/O3 options together,
@@ -40,6 +41,62 @@ if ![info exists TORTURE_OPTIONS] {
        { -Os } ]
 }
 
+global GCC_UNDER_TEST
+if ![info exists GCC_UNDER_TEST] {
+    set GCC_UNDER_TEST "[find_gcc]"
+}
+
+global rootme
+set libgcc_s_path "${rootme}"
+set compiler [lindex $GCC_UNDER_TEST 0]
+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 ${rootme}/${mldir}/libgcc_s*.so.*]] == 1 } {
+           append libgcc_s_path ":${rootme}/${mldir}"
+       }
+    }
+}
+
+# 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.  We really only need to do 
+# this on IRIX, but it shouldn't hurt to do it anywhere else.
+# Doing this does cause trouble when testing cross-compilers.
+if {![is_remote target]} {
+    if [info exists env(LD_LIBRARY_PATH)] {
+       setenv  LD_LIBRARY_PATH    "$libgcc_s_path:$env(LD_LIBRARY_PATH)"
+    } else {
+       setenv  LD_LIBRARY_PATH     $libgcc_s_path
+    }
+    if [info exists env(SHLIB_PATH)] {
+       setenv  SHLIB_PATH          "$libgcc_s_path:$env(SHLIB_PATH)"
+    } else {
+       setenv  SHLIB_PATH          $libgcc_s_path
+    }
+    if [info exists env(LD_LIBRARYN32_PATH)] {
+       setenv  LD_LIBRARYN32_PATH  "$libgcc_s_path:$env(LD_LIBRARYN32_PATH)"
+    } else {
+       setenv  LD_LIBRARYN32_PATH  $libgcc_s_path
+    }
+    if [info exists env(LD_LIBRARY64_PATH)] {
+       setenv  LD_LIBRARY64_PATH  "$libgcc_s_path:$env(LD_LIBRARY64_PATH)"
+    } else {
+       setenv  LD_LIBRARY64_PATH   $libgcc_s_path
+    }
+    if [info exists env(DYLD_LIBRARY_PATH)] {
+       setenv  DYLD_LIBRARY_PATH  "$libgcc_s_path:$env(DYLD_LIBRARY_PATH)"
+    } else {
+       setenv  DYLD_LIBRARY_PATH   $libgcc_s_path
+    }
+}
 
 # Split TORTURE_OPTIONS into two choices: one for testcases with loops and
 # one for testcases without loops.