jni.exp (gcj_jni_test_one): Find libstdc++ in build tree.
authorTom Tromey <tromey@redhat.com>
Mon, 18 Mar 2002 21:39:09 +0000 (21:39 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Mon, 18 Mar 2002 21:39:09 +0000 (21:39 +0000)
* libjava.jni/jni.exp (gcj_jni_test_one): Find libstdc++ in build
tree.
(gcj_invoke): Added ld_library_additions argument.

From-SVN: r51006

libjava/testsuite/ChangeLog
libjava/testsuite/libjava.jni/jni.exp

index fe5ed13786e70bf33a45b576c7ca559a8bdc3dc6..ab77ce9be1b40a3cb1e8e4923da02af0e9bd0692 100644 (file)
@@ -1,3 +1,9 @@
+2002-03-18  Tom Tromey  <tromey@redhat.com>
+
+       * libjava.jni/jni.exp (gcj_jni_test_one): Find libstdc++ in build
+       tree.
+       (gcj_invoke): Added ld_library_additions argument.
+
 2002-03-17  Tom Tromey  <tromey@redhat.com>
 
        * libjava.jni/jni.exp (gcj_jni_build_header): Use local_exec, not
index 8dd8b8af049c3840d686101de2bb951bad96e012..049383eb17795b833339a1af0d72b2b877307975 100644 (file)
@@ -43,11 +43,18 @@ proc gcj_jni_build_header {file} {
 }
 
 # Invoke the program and see what happens.  Return 0 on failure.
-proc gcj_invoke {program expectFile} {
+proc gcj_invoke {program expectFile ld_library_additions} {
   global env
   set lib_path $env(LD_LIBRARY_PATH)
-  setenv LD_LIBRARY_PATH .:$lib_path
-  setenv SHLIB_PATH .:$lib_path
+
+  set newval .
+  if {[llength $ld_library_additions] > 0} {
+    append newval :[join $ld_library_additions :]
+  }
+  append newval :$lib_path
+
+  setenv LD_LIBRARY_PATH $newval
+  setenv SHLIB_PATH $newval
 
   verbose "LD_LIBRARY_PATH=$env(LD_LIBRARY_PATH)"
 
@@ -106,10 +113,27 @@ proc gcj_jni_test_one {file} {
 
   set cfile [file rootname $file].c
   set cxxflags ""
+  set cxxldlibflags {}
   # If there is no `.c' file, assume there is a `.cc' file.
   if {! [file exists $cfile]} {
     set cfile [file rootname $file].cc
-    set cxxflags "-lstdc++"
+
+    set cxxflaglist {}
+    foreach arg [split [libjava_find_lib libstdc++-v3/src stdc++] " "] {
+      switch -glob -- $arg {
+       "-L*" {
+         set arg [string range $arg 2 end]
+         lappend cxxldlibflags $arg
+         # Strip the `.libs' directory; we link with libtool which
+         # doesn't need it.
+         set arg "-L[file dirname $arg]"
+       }
+      }
+      lappend cxxflaglist $arg
+    }
+
+    lappend cxxflaglist "-lstdc++"
+    set cxxflags [join $cxxflaglist]
   }
 
   if {! [gcj_jni_compile_c_to_so $cfile]} {
@@ -125,7 +149,7 @@ proc gcj_jni_test_one {file} {
     return 0
   }
 
-  if {! [gcj_invoke $main [file rootname $file].out]} {
+  if {! [gcj_invoke $main [file rootname $file].out $cxxldlibflags]} {
     # FIXME
     return 0
   }