This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH] Fix oopsie in ld-plugin tests.
- From: Dave Korn <dave dot korn dot cygwin at gmail dot com>
- To: "binutils at sourceware dot org" <binutils at sourceware dot org>, Hans-Peter Nilsson <hans-peter dot nilsson at axis dot com>
- Date: Thu, 14 Oct 2010 06:24:04 +0100
- Subject: [PATCH] Fix oopsie in ld-plugin tests.
Good morning list,
H-P pointed out to me that I overlooked to avoid returning an "ERROR:" in
the testsuite results when there is no target compiler available. Sorry for
cluttering up your overnight test results. The attached patch copies a test
that I have in fact seen before and should have thought of, and uses it to
mark the tests "UNSUPPORTED:" if no target compiler is available.
ld/testsuite/ChangeLog:
* ld-plugin/plugin.exp: Don't error out if there is no target compiler
available, make tests UNSUPPORTED instead.
I don't know if it counts as obvious, though. OK to commit?
cheers,
DaveK
diff --git a/ld/testsuite/ld-plugin/plugin.exp b/ld/testsuite/ld-plugin/plugin.exp
index 796cb0e..416159a 100644
--- a/ld/testsuite/ld-plugin/plugin.exp
+++ b/ld/testsuite/ld-plugin/plugin.exp
@@ -24,6 +24,13 @@ if ![check_plugin_api_available] {
return
}
+# And a compiler to be available.
+set can_compile 1
+if { [which $CC] == 0 } {
+ # Don't fail immediately,
+ set can_compile 0
+}
+
pass "plugin API enabled"
global base_dir
@@ -62,12 +69,15 @@ set regcln "-plugin-opt registercleanup"
set failed_compile 0
set _ ""
set plugin_nm_output ""
-if { ![ld_compile "$CC $CFLAGS" $srcdir/$subdir/main.c tmpdir/main.o]
- || ![ld_compile "$CC $CFLAGS" $srcdir/$subdir/func.c tmpdir/func.o]
- || ![ld_compile "$CC $CFLAGS" $srcdir/$subdir/text.c tmpdir/text.o] } {
+if { $can_compile && \
+ (![ld_compile "$CC $CFLAGS" $srcdir/$subdir/main.c tmpdir/main.o] \
+ || ![ld_compile "$CC $CFLAGS" $srcdir/$subdir/func.c tmpdir/func.o] \
+ || ![ld_compile "$CC $CFLAGS" $srcdir/$subdir/text.c tmpdir/text.o]) } {
# Defer fail until we have list of tests set.
set failed_compile 1
-} else {
+}
+
+if { $can_compile && !$failed_compile } {
# Find out if symbols have prefix on this platform before setting tests.
catch "exec $NM tmpdir/func.o" plugin_nm_output
if { [regexp "_func" "$plugin_nm_output"] } {
@@ -142,7 +152,7 @@ set plugin_extra_elf_tests [list \
{readelf -s plugin-vis-1.d}} "main.x" ] \
]
-if { $failed_compile != 0 } {
+if { !$can_compile || $failed_compile } {
foreach testitem $plugin_tests {
unresolved [lindex $testitem 0]
}