[PATCH][Revised2] Fix PR43839 - libjava incorrectly uses -liconv in testsuite

Jack Howarth howarth@bromo.med.uc.edu
Sun Apr 25 16:05:00 GMT 2010


Same patch as http://gcc.gnu.org/ml/gcc-patches/2010-04/msg01474.html
with comment typo fix (someone should fix the original typo in
libstdc++-v3/testsuite/Makefile.am).

-------------------------------------------------------------------

  The following patch eliminates the failure of the PR16923 libjava
testcase on *-*-darwin* when -with-libiconv-prefix is used to provide
an alternative location for libiconv. Tested on x86_64-apple-darwin10.
Okay for gcc trunk and gcc 4.5.1?
              Jack

2010-04-22  Jack Howarth <howarth@bromo.med.uc.edu>

	PR 43839
	* testsuite/Makefile.am: Override automake for site.exp creation
	and add entry to set libiconv.
	* testsuite/Makefile.in: Regenerate.
	* testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation):
	Add new global variable libiconv to handle alternative libiconv
	locations.
	
Index: libjava/testsuite/libjava.jni/jni.exp
===================================================================
--- libjava/testsuite/libjava.jni/jni.exp	(revision 158676)
+++ libjava/testsuite/libjava.jni/jni.exp	(working copy)
@@ -251,7 +251,11 @@
 }
 
 proc gcj_jni_get_cxxflags_invocation {} {
+  global libiconv
   global LIBJAVA
+  if {$libiconv == ""} {
+      set libiconv "-liconv"
+  }
   if [info exists LIBJAVA] {
       set libjava $LIBJAVA;
   } else {
@@ -267,7 +271,7 @@
   # to just make the linker find libgcc using -L options.
   # Similar logic applies to libgcj.
   if { [istarget "*-*-darwin*"] } {
-    lappend cxxflags -shared-libgcc -lgcj -liconv
+    eval lappend cxxflags "-shared-libgcc -lgcj $libiconv"
   }
 
   if { [istarget "*-*-solaris*"] } {
Index: libjava/testsuite/Makefile.am
===================================================================
--- libjava/testsuite/Makefile.am	(revision 158676)
+++ libjava/testsuite/Makefile.am	(working copy)
@@ -24,6 +24,27 @@
 
 .PHONY: compile-tests
 
+# We need more things in site.exp, but automake completely controls the
+# creation of that file; there's no way to append to it without messing up
+# the dependency chains.  So we overrule automake.  This rule is exactly
+# what it would have generated, plus our own additions.
+site.exp: Makefile
+	@echo '# edit the last section' >>site.tmp
+	@echo "set objdir `pwd`" >>site.tmp
+	@echo 'set build_alias "$(build_alias)"' >>site.tmp
+	@echo 'set build_triplet $(build_triplet)' >>site.tmp
+	@echo 'set host_alias "$(host_alias)"' >>site.tmp
+	@echo 'set host_triplet $(host_triplet)' >>site.tmp
+	@echo 'set target_alias "$(target_alias)"' >>site.tmp
+	@echo 'set target_triplet $(target_triplet)' >>site.tmp
+	@echo 'set libiconv "$(LIBICONV)"' >>site.tmp
+	@echo '## All variables above are generated by configure. Do Not Edit ##' >>site.tmp
+	@test ! -f site.exp || \
+	  sed '1,/^## All variables above are.*##/ d' site.exp >> site.tmp
+	@-rm -f site.bak
+	@test ! -f site.exp || mv site.exp site.bak
+	@mv site.tmp site.exp
+
 check-am: compile-tests
 
 compile-tests:



More information about the Gcc-patches mailing list