re PR libgcj/21058 (fragile libgcj link process omits some inner classes)

PR libgj/21058:
	* sources.am, Makefile.in: Rebuilt.
	* scripts/makemake.tcl (emit_bc_rule): Create a temporary list
	file.
	(emit_source_var): Don't emit patsubst with './'.

From-SVN: r102140
This commit is contained in:
Tom Tromey 2005-07-18 20:54:01 +00:00 committed by Tom Tromey
parent c69094e1a3
commit 3b8350f542
4 changed files with 120 additions and 93 deletions

View file

@ -204,16 +204,19 @@ proc emit_bc_rule {package} {
}
set varname [join [split $pkgname /] _]_source_files
set loname [join [split $pkgname /] -].lo
set tname [join [split $pkgname /] -].list
puts "$loname: \$($varname)"
puts "\t\$(LTGCJCOMPILE) -fjni -findirect-dispatch -c -o $loname \\"
# Create a temporary list file and then compile it. This works
# around the libtool problem mentioned in PR 21058. classpath was
# built first, so the class files are to be found there.
set omit ""
if {[info exists exclusion_map($package)]} {
set omit "| grep -v $exclusion_map($package)"
}
# classpath was built first, so the class files are to be found
# there.
puts "\t\t`find classpath/lib/$package -name '*.class' | sort -r$omit`"
puts "\t@find classpath/lib/$package -name '*.class'${omit} > $tname"
puts "\t\$(LTGCJCOMPILE) -fjni -findirect-dispatch -c -o $loname @$tname"
puts "\t@rm -f $tname"
puts ""
# We skip this one because it is built into its own library and is
@ -287,7 +290,9 @@ proc emit_source_var {package} {
# Ugly code to build up the appropriate patsubst.
set result "\$(patsubst %.java,%.h,\$($varname))"
foreach dir [lsort [array names dirs]] {
set result "\$(patsubst $dir/%,%,$result)"
if {$dir != "."} {
set result "\$(patsubst $dir/%,%,$result)"
}
}
if {$package == "." || $package == "java/lang"} {