From patchwork Fri Jun 25 02:22:41 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: Backport PR 43839 fix for darwin to gcc 4.5.1 Date: Thu, 24 Jun 2010 16:22:41 -0000 From: Jack Howarth X-Patchwork-Id: 56881 Message-Id: <20100625022241.GA24545@bromo.med.uc.edu> To: gcc-patches@gcc.gnu.org Cc: mikestump@comcast.net, iains@gcc.gnu.org The attached patch backports r159009 which eliminated PR43839 on darwin where alternative libiconv locations weren't being honored in the libjava testsuite. Tested on x86_64-apple-darwin10. Okay for gcc 4.5.1? Jack 2010-06-24 Jack Howarth Backport from mainline 2010-05-03 Jack Howarth 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/Makefile.in =================================================================== --- libjava/testsuite/Makefile.in (revision 161355) +++ libjava/testsuite/Makefile.in (working copy) @@ -388,25 +388,6 @@ else echo "WARNING: could not find \`runtest'" 1>&2; :;\ fi; \ exit $$exit_status -site.exp: Makefile - @echo 'Making a new site.exp file...' - @echo '## these variables are automatically generated by make ##' >site.tmp - @echo '# Do not edit here. If you wish to override these values' >>site.tmp - @echo '# edit the last section' >>site.tmp - @echo 'set srcdir $(srcdir)' >>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 '## 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 distclean-DEJAGNU: -rm -f site.exp site.bak @@ -557,6 +538,31 @@ .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 'Making a new site.exp file...' + @echo '## these variables are automatically generated by make ##' >site.tmp + @echo '# Do not edit here. If you wish to override these values' >>site.tmp + @echo '# edit the last section' >>site.tmp + @echo 'set srcdir $(srcdir)' >>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: Index: libjava/testsuite/libjava.jni/jni.exp =================================================================== --- libjava/testsuite/libjava.jni/jni.exp (revision 161355) +++ 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 161355) +++ libjava/testsuite/Makefile.am (working copy) @@ -24,6 +24,31 @@ .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 'Making a new site.exp file...' + @echo '## these variables are automatically generated by make ##' >site.tmp + @echo '# Do not edit here. If you wish to override these values' >>site.tmp + @echo '# edit the last section' >>site.tmp + @echo 'set srcdir $(srcdir)' >>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: