* 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.
This commit is contained in:
parent
6660986257
commit
b6ff0e81ff
3 changed files with 45 additions and 29 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
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>
|
2002-08-29 Keith Seitz <keiths@redhat.com>
|
||||||
|
|
||||||
* lib/mi-support.exp (mi_gdb_test): Add global declaration for
|
* lib/mi-support.exp (mi_gdb_test): Add global declaration for
|
||||||
|
|
|
@ -39,42 +39,16 @@ set binfile ${objdir}/${subdir}/${testfile}
|
||||||
# carriage return)
|
# carriage return)
|
||||||
set horiz "\[^\n\r\]*"
|
set horiz "\[^\n\r\]*"
|
||||||
|
|
||||||
set built_binfile 0
|
|
||||||
if [istarget "*-*-linux"] then {
|
if [istarget "*-*-linux"] then {
|
||||||
set target_cflags "-D_MIT_POSIX_THREADS"
|
set target_cflags "-D_MIT_POSIX_THREADS"
|
||||||
} else {
|
} else {
|
||||||
set target_cflags ""
|
set target_cflags ""
|
||||||
}
|
}
|
||||||
set why_msg "unrecognized error"
|
|
||||||
foreach lib {-lpthreads -lpthread -lthread} {
|
if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list debug "incdir=${objdir}/${subdir}"]] != "" } {
|
||||||
set options "debug"
|
gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
|
||||||
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
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Now we can proceed with the real testing.
|
|
||||||
|
|
||||||
# Start with a fresh gdb.
|
# Start with a fresh gdb.
|
||||||
|
|
||||||
|
|
|
@ -1171,6 +1171,42 @@ proc gdb_compile {source dest type options} {
|
||||||
return $result;
|
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 } {
|
proc send_gdb { string } {
|
||||||
global suppress_flag;
|
global suppress_flag;
|
||||||
if { $suppress_flag } {
|
if { $suppress_flag } {
|
||||||
|
|
Loading…
Reference in a new issue