From 50516bc34e63978c5f92d31390aebefd79cbc4b5 Mon Sep 17 00:00:00 2001
From: janis <janis@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 22 Nov 2005 20:35:51 +0000
Subject: [PATCH] 	* testsuite/lib/libmudflap.exp (libmudflap-init):
 Remove -static from 	MUDFLAP_FLAGS if static library not supported. 	*
 testsuite/libmudflap.c/cfrags.exp (MUDFLAP_FLAGS): new. 	*
 testsuite/libmudflap.c/externs.exp: Ditto. 	*
 testsuite/libmudflap.c++/ctors.exp: Ditto. 	*
 testsuite/libmudflap.c++/c++frags.exp: Ditto. 	*
 testsuite/libmudflap.cth/cthfrags.exp: Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107371 138bc75d-0d04-0410-961f-82ee72b054a4
---
 libmudflap/ChangeLog                          | 10 +++++++++
 libmudflap/testsuite/lib/libmudflap.exp       | 22 +++++++++++++++++++
 .../testsuite/libmudflap.c++/c++frags.exp     |  4 +++-
 libmudflap/testsuite/libmudflap.c++/ctors.exp |  4 +++-
 libmudflap/testsuite/libmudflap.c/cfrags.exp  |  4 +++-
 libmudflap/testsuite/libmudflap.c/externs.exp |  5 ++++-
 .../testsuite/libmudflap.cth/cthfrags.exp     |  4 +++-
 7 files changed, 48 insertions(+), 5 deletions(-)

diff --git a/libmudflap/ChangeLog b/libmudflap/ChangeLog
index 306342adddc1..d7819e932b81 100644
--- a/libmudflap/ChangeLog
+++ b/libmudflap/ChangeLog
@@ -1,3 +1,13 @@
+2005-11-22  Janis Johnson  <janis187@us.ibm.com>
+
+	* testsuite/lib/libmudflap.exp (libmudflap-init): Remove -static from
+	MUDFLAP_FLAGS if static library not supported.
+	* testsuite/libmudflap.c/cfrags.exp (MUDFLAP_FLAGS): new.
+	* testsuite/libmudflap.c/externs.exp: Ditto.
+	* testsuite/libmudflap.c++/ctors.exp: Ditto.
+	* testsuite/libmudflap.c++/c++frags.exp: Ditto.
+	* testsuite/libmudflap.cth/cthfrags.exp: Ditto.
+
 2005-10-04  James E Wilson  <wilson@specifix.com>
 
 	* configure.ac (mudflap_cv_entry_point): Use quadrigraphs to declare
diff --git a/libmudflap/testsuite/lib/libmudflap.exp b/libmudflap/testsuite/lib/libmudflap.exp
index 634f1cb28ad5..e08f13d25ef1 100644
--- a/libmudflap/testsuite/lib/libmudflap.exp
+++ b/libmudflap/testsuite/lib/libmudflap.exp
@@ -117,6 +117,28 @@ proc libmudflap-init { language } {
           unset gluefile
       }
     }
+
+    # If there is no static library then don't run tests with -static.
+    global tool
+    set opts "additional_flags=-static"
+    lappend opts "additional_flags=-fmudflap"
+    lappend opts "additional_flags=-lmudflap"
+    set src stlm[pid].c
+    set exe stlm[pid].x
+
+    set f [open $src "w"]
+    puts $f "int main () { }"
+    close $f
+    set lines [${tool}_target_compile $src $exe executable "$opts"]
+    file delete $src
+    remote_file build delete $exe
+
+    if { ![string match "" $lines] } {
+	# Compilation failed; assume static library is not available.
+	global MUDFLAP_FLAGS
+	set i [lsearch $MUDFLAP_FLAGS "*static*"]
+	set MUDFLAP_FLAGS [lreplace $MUDFLAP_FLAGS $i $i]
+    }
 }
 
 proc libmudflap-dg-test { prog do_what extra_tool_flags } {
diff --git a/libmudflap/testsuite/libmudflap.c++/c++frags.exp b/libmudflap/testsuite/libmudflap.c++/c++frags.exp
index 0b2774360b7c..eb900d799113 100644
--- a/libmudflap/testsuite/libmudflap.c++/c++frags.exp
+++ b/libmudflap/testsuite/libmudflap.c++/c++frags.exp
@@ -1,3 +1,5 @@
+global MUDFLAP_FLAGS
+set MUDFLAP_FLAGS [list {} {-static} { -O} {-O2} {-O3}]
 
 libmudflap-init c++
 if {$cxx == "g++"} then {
@@ -9,7 +11,7 @@ dg-init
 
 global srcdir
 
-foreach flags [list {} {-static} {-O} {-O2} {-O3}] {
+foreach flags $MUDFLAP_FLAGS {
     foreach srcfile [lsort [glob -nocomplain ${srcdir}/libmudflap.c++/*frag.cxx]] {
 	set bsrc [file tail $srcfile]
 	setenv MUDFLAP_OPTIONS "-viol-segv"
diff --git a/libmudflap/testsuite/libmudflap.c++/ctors.exp b/libmudflap/testsuite/libmudflap.c++/ctors.exp
index ceb9fb70ffae..b3dda8fd6ec9 100644
--- a/libmudflap/testsuite/libmudflap.c++/ctors.exp
+++ b/libmudflap/testsuite/libmudflap.c++/ctors.exp
@@ -1,3 +1,5 @@
+global MUDFLAP_FLAGS
+set MUDFLAP_FLAGS [list {} {-static} {-O2} {-O3}]
 
 libmudflap-init c++
 if {$cxx == "g++"} then {
@@ -9,7 +11,7 @@ dg-init
 
 global srcdir subdir
 
-foreach flags [list {} {-static} {-O2} {-O3}] {
+foreach flags $MUDFLAP_FLAGS {
     set l1 [libmudflap_target_compile "$srcdir/$subdir/ctors-1.cxx" "ctors-1.o" object {additional_flags=-fmudflap}]
     set test "ctors-1 compilation ${flags}"
     if [string match "*mudflap cannot track unknown size extern *k*" $l1] { pass $test } { fail $test }
diff --git a/libmudflap/testsuite/libmudflap.c/cfrags.exp b/libmudflap/testsuite/libmudflap.c/cfrags.exp
index 577a4cc80c9c..bdaf2196cb7f 100644
--- a/libmudflap/testsuite/libmudflap.c/cfrags.exp
+++ b/libmudflap/testsuite/libmudflap.c/cfrags.exp
@@ -1,10 +1,12 @@
+global MUDFLAP_FLAGS
+set MUDFLAP_FLAGS [list {} {-static} {-O2} {-O3}]
 
 libmudflap-init c
 
 dg-init
 
 global srcdir
-foreach flags [list {} {-static} {-O2} {-O3}] {
+foreach flags $MUDFLAP_FLAGS {
     foreach srcfile [lsort [glob -nocomplain \
                             ${srcdir}/libmudflap.c/*frag.c \
                             ${srcdir}/libmudflap.c/heap*.c \
diff --git a/libmudflap/testsuite/libmudflap.c/externs.exp b/libmudflap/testsuite/libmudflap.c/externs.exp
index e97e0b684e4a..773f80cc12a5 100644
--- a/libmudflap/testsuite/libmudflap.c/externs.exp
+++ b/libmudflap/testsuite/libmudflap.c/externs.exp
@@ -1,9 +1,12 @@
+global MUDFLAP_FLAGS
+set MUDFLAP_FLAGS [list {} {-static} {-O2} {-O3}]
+
 libmudflap-init c
 dg-init
 
 global srcdir subdir
 
-foreach flags [list {} {-static} {-O2} {-O3}] {
+foreach flags $MUDFLAP_FLAGS {
     set l1 [libmudflap_target_compile "$srcdir/$subdir/externs-1.c" "externs-1.o" object {additional_flags=-fmudflap}]
     set test "externs-1 compilation ${flags}"
     if [string match "*mudflap cannot track unknown size extern *d*" $l1] { pass $test } { fail $test }
diff --git a/libmudflap/testsuite/libmudflap.cth/cthfrags.exp b/libmudflap/testsuite/libmudflap.cth/cthfrags.exp
index 54dd2c34733a..e5a7de843542 100644
--- a/libmudflap/testsuite/libmudflap.cth/cthfrags.exp
+++ b/libmudflap/testsuite/libmudflap.cth/cthfrags.exp
@@ -1,10 +1,12 @@
+global MUDFLAP_FLAGS
+set MUDFLAP_FLAGS [list {} {-static -DSTATIC} {-O2} {-O3}]
 
 libmudflap-init c
 
 dg-init
 
 global srcdir
-foreach flags [list {} {-static -DSTATIC} {-O2} {-O3}] {
+foreach flags $MUDFLAP_FLAGS {
     foreach srcfile [lsort [glob -nocomplain ${srcdir}/libmudflap.cth/*.c]] {
 	set bsrc [file tail $srcfile]
 	setenv MUDFLAP_OPTIONS "-viol-segv"
-- 
GitLab