summaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorro <ro@138bc75d-0d04-0410-961f-82ee72b054a4>2002-05-02 19:12:37 +0000
committerro <ro@138bc75d-0d04-0410-961f-82ee72b054a4>2002-05-02 19:12:37 +0000
commitadb653f84c4fee75d26a9845d06b2e0e2b26d2f0 (patch)
tree7b7ae3471a2acc7161bbbf2091ad21de425561ab /libjava
parent3a0bf03e10d692dab13d087a51de948bd2dccb00 (diff)
downloadgcc-adb653f84c4fee75d26a9845d06b2e0e2b26d2f0.tar.gz
* testsuite/lib/libjava.exp (libjava_find_spec): New function.
(libjava_init): Use it to find libgcj.spec. (libjava_arguments): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53057 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog6
-rw-r--r--libjava/testsuite/lib/libjava.exp34
2 files changed, 36 insertions, 4 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 4cda57b78f5..26f4b0beb42 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,9 @@
+2002-05-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * testsuite/lib/libjava.exp (libjava_find_spec): New function.
+ (libjava_init): Use it to find libgcj.spec.
+ (libjava_arguments): Likewise.
+
2002-05-02 David S. Miller <davem@redhat.com>
PR bootstrap/6525
diff --git a/libjava/testsuite/lib/libjava.exp b/libjava/testsuite/lib/libjava.exp
index 050ede5bb2f..46b0e6ab6bf 100644
--- a/libjava/testsuite/lib/libjava.exp
+++ b/libjava/testsuite/lib/libjava.exp
@@ -133,8 +133,13 @@ proc libjava_init { args } {
regexp -- "gcj \[^ \]+ (\[^ \]+) .*" $text ignore gcc_version
verbose "jar file is libgcj-$gcc_version.jar"
+ # FIXME: This finds libgcj.spec for the default multilib.
+ # If thread models differ between multilibs, this has to be moved
+ # to libjava_arguments
+ set specdir [libjava_find_spec]
+
# The -B is so we find libgcj.spec.
- set text [eval exec "$GCJ_UNDER_TEST -B$objdir/../ -v 2>@ stdout"]
+ set text [eval exec "$GCJ_UNDER_TEST -B$specdir -v 2>@ stdout"]
regexp -- "Thread model: (\[^\n\]+)\n" $text ignore model
set libjava_uses_threads [expr {! ($model == "no"
|| $model == "none"
@@ -175,6 +180,11 @@ proc libjava_init { args } {
# find the appropriate libraries so we must add -L options for their
# paths. However we can't simply use those libraries; we still need
# libtool for linking.
+# Don't return the the lib${name}.la files here, since this causes the
+# libraries to be linked twice: once as lib${name}.so and another time
+# via gcj's implicit -l${name}. This is both unnecessary and causes the
+# Solaris ld to warn: attempted multiple inclusion of file. This warning
+# is not ignored by the dejagnu framework and cannot be disabled.
proc libjava_find_lib {dir name} {
global base_dir
set gp [get_multilibs]
@@ -198,6 +208,19 @@ proc libjava_find_lib {dir name} {
return ""
}
+# Find libgcj.spec. We need to use the file corresponding to the multilib
+# under test since they might differ. Append a trailing slash since this
+# is used with -B.
+proc libjava_find_spec {} {
+ global objdir
+ set gp [get_multilibs]
+
+ if {[file exists $gp/libjava/libgcj.spec]} then {
+ return "$gp/libjava/"
+ }
+ return "$objdir/../"
+}
+
# Remove a bunch of files.
proc gcj_cleanup {args} {
foreach file $args {
@@ -323,6 +346,9 @@ proc libjava_arguments {{mode compile}} {
lappend args "additional_flags=$TOOL_OPTIONS"
}
+ # Determine libgcj.spec corresponding to multilib under test.
+ set specdir [libjava_find_spec]
+
# Search for libtool. We need it to link.
set found_compiler 0
set d [absolute $objdir]
@@ -330,15 +356,15 @@ proc libjava_arguments {{mode compile}} {
if {[file exists $d/$x/libtool]} then {
# We have to run silently to avoid DejaGNU lossage.
lappend args \
- "compiler=$d/$x/libtool --silent --tag=GCJ --mode=$mode $GCJ_UNDER_TEST -B$objdir/../"
+ "compiler=$d/$x/libtool --silent --tag=GCJ --mode=$mode $GCJ_UNDER_TEST -B$specdir"
set found_compiler 1
break
}
}
if {! $found_compiler} {
- # Append -B$objdir/../ so that we find libgcj.spec before it
+ # Append -B$specdir so that we find libgcj.spec before it
# is installed.
- lappend args "compiler=$GCJ_UNDER_TEST -B$objdir/../"
+ lappend args "compiler=$GCJ_UNDER_TEST -B$specdir"
}
# Avoid libtool wrapper scripts when possible.