While checking Tru64 UNIX libjava testsuite results, I noticed that the
libjava.jni/invocation/PR16923.c execution test was failing like this:

277710:./PR16923: /sbin/loader: Error: libgcj.so.12: symbol "iconv" unresolved
277710:./PR16923: /sbin/loader: Fatal Error: Load of "./PR16923" failed: 
Unresolved symbol name
FAIL: PR16923 run
UNTESTED: PR16923 output

This happens because the test isn't linked with gcj (which handles this
in libgcj.spec), but with gcc, which does not.  Perhaps this could (and
should) be done, or rather libgcj.so always linked with -liconv on
targets that require that, but I chose the easy way out for now,
following the Darwin lead.

Tested with the appropriate runtest invocation (which unfortunately
means running all of jni.exp, not just the single testcase, installed on
mainline, 4.5 and 4.6 branches.

        Rainer


2011-04-14  Rainer Orth  <r...@cebitec.uni-bielefeld.de>

        * testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation):
        Add $libiconv to cxxflags for alpha*-dec-osf*.

diff --git a/libjava/testsuite/libjava.jni/jni.exp 
b/libjava/testsuite/libjava.jni/jni.exp
--- a/libjava/testsuite/libjava.jni/jni.exp
+++ b/libjava/testsuite/libjava.jni/jni.exp
@@ -280,6 +280,11 @@ proc gcj_jni_get_cxxflags_invocation {} 
     lappend cxxflags "-shared-libgcc"
   }
 
+  # Tru64 UNIX needs -liconv linked explicitly since gcc does the linking.
+  if { [istarget "alpha*-dec-osf*"] } {
+    lappend cxxflags $libiconv
+  }
+
   return $cxxflags
 }
 

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

Reply via email to