code into a function in lib/gdb.exp, and call that from here.
* lib/gdb.exp (gdb_compile_pthreads): New function.
+2002-08-29 Jim Blandy <jimb@redhat.com>
+
+ * gdb.threads/pthreads.exp: Move the portable thread compilation
+ code into a function in lib/gdb.exp, and call that from here.
+ * lib/gdb.exp (gdb_compile_pthreads): New function.
+
2002-08-29 Keith Seitz <keiths@redhat.com>
* lib/mi-support.exp (mi_gdb_test): Add global declaration for
# carriage return)
set horiz "\[^\n\r\]*"
-set built_binfile 0
if [istarget "*-*-linux"] then {
set target_cflags "-D_MIT_POSIX_THREADS"
} else {
set target_cflags ""
}
-set why_msg "unrecognized error"
-foreach lib {-lpthreads -lpthread -lthread} {
- set options "debug"
- lappend options "incdir=${objdir}/${subdir}"
- lappend options "libs=$lib"
- set ccout [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable $options]
- switch -regexp -- $ccout {
- ".*no posix threads support.*" {
- set why_msg "missing threads include file"
- break
- }
- ".*cannot open -lpthread.*" {
- set why_msg "missing runtime threads library"
- }
- ".*Can't find library for -lpthread.*" {
- set why_msg "missing runtime threads library"
- }
- {^$} {
- pass "successfully compiled posix threads test case"
- set built_binfile 1
- break
- }
- }
-}
-if {$built_binfile == "0"} {
- unsupported "Couldn't compile ${srcfile}, ${why_msg}"
- return -1
+
+if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list debug "incdir=${objdir}/${subdir}"]] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
}
-# Now we can proceed with the real testing.
# Start with a fresh gdb.
return $result;
}
+
+# This is just like gdb_compile, above, except that it tries compiling
+# against several different thread libraries, to see which one this
+# system has.
+proc gdb_compile_pthreads {source dest type options} {
+ set build_binfile 0
+ set why_msg "unrecognized error"
+ foreach lib {-lpthreads -lpthread -lthread} {
+ # This kind of wipes out whatever libs the caller may have
+ # set. Or maybe theirs will override ours. How infelicitous.
+ set options_with_lib [concat $options [list libs=$lib]]
+ set ccout [gdb_compile $source $dest $type $options_with_lib]
+ switch -regexp -- $ccout {
+ ".*no posix threads support.*" {
+ set why_msg "missing threads include file"
+ break
+ }
+ ".*cannot open -lpthread.*" {
+ set why_msg "missing runtime threads library"
+ }
+ ".*Can't find library for -lpthread.*" {
+ set why_msg "missing runtime threads library"
+ }
+ {^$} {
+ pass "successfully compiled posix threads test case"
+ set built_binfile 1
+ break
+ }
+ }
+ }
+ if {$built_binfile == "0"} {
+ unsupported "Couldn't compile $source: ${why_msg}"
+ return -1
+ }
+}
+
proc send_gdb { string } {
global suppress_flag;
if { $suppress_flag } {