Reviewed and approved by Jim Blandy
[deliverable/binutils-gdb.git] / gdb / testsuite / gdb.base / shlib-call.exp
index 8fe8b22da394c67f4848bf44c30ca060eac41136..49a6144199268e2109be7ecbd9a3c2137062b313 100644 (file)
@@ -1,4 +1,4 @@
-#   Copyright 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+#   Copyright 1997, 1998, 1999, 2000, 2004 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -45,78 +45,29 @@ if ![isnative] then {
 }
 
 set testfile "shmain"
-set libfile "shr"
-set srcfile ${testfile}.c
-set binfile ${objdir}/${subdir}/${testfile}
+set libfile1 "shr1"
+set libfile2 "shr2"
+set srcfile  ${srcdir}/${subdir}/${testfile}.c
+set lib1src  ${srcdir}/${subdir}/${libfile1}.c
+set lib2src  ${srcdir}/${subdir}/${libfile2}.c
+set lib1     ${objdir}/${subdir}/${libfile1}.sl
+set lib2     ${objdir}/${subdir}/${libfile2}.sl
+set binfile  ${objdir}/${subdir}/${testfile}
+
+set lib_opts "debug"
+set exec_opts [list debug shlib=${lib1} shlib=${lib2}]
 
-# build the first test case
 if [get_compiler_info ${binfile}] {
     return -1
 }
 
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}.o" object {debug}] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-
-# Build the shared libraries this test case needs.
-#
-
-if {$gcc_compiled == 0} {
-    if [istarget "hppa*-hp-hpux*"] then {
-       set additional_flags "additional_flags=+z"
-    } elseif { [istarget "mips-sgi-irix*"] } {
-       # Disable SGI compiler's implicit -Dsgi
-       set additional_flags "additional_flags=-Usgi"
-    } else {
-       # don't know what the compiler is...
-       set additional_flags ""
-    }
-} else {
-    if { ([istarget "powerpc*-*-aix*"]
-       || [istarget "rs6000*-*-aix*"]) } {
-       set additional_flags ""
-    } else {
-       set additional_flags "additional_flags=-fpic"
-    }
-}
-
-if {[gdb_compile "${srcdir}/${subdir}/${libfile}1.c" "${objdir}/${subdir}/${libfile}1.o" object [list debug $additional_flags]] != ""} {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-if {[gdb_compile "${srcdir}/${subdir}/${libfile}2.c" "${objdir}/${subdir}/${libfile}2.o" object [list debug $additional_flags]] != ""} {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-if [istarget "hppa*-*-hpux*"] {
-    remote_exec build "ld -b ${objdir}/${subdir}/${libfile}1.o -o ${objdir}/${subdir}/${libfile}1.sl"
-    remote_exec build "ld -b ${objdir}/${subdir}/${libfile}2.o -o ${objdir}/${subdir}/${libfile}2.sl"
-} else {
-    set additional_flags "additional_flags=-shared"
-    if {[gdb_compile "${objdir}/${subdir}/${libfile}1.o" "${objdir}/${subdir}/${libfile}1.sl" executable [list debug $additional_flags]] != ""} {
-       gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-    }
-    if {[gdb_compile "${objdir}/${subdir}/${libfile}2.o" "${objdir}/${subdir}/${libfile}2.sl" executable [list debug $additional_flags]] != ""} {
-       gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-    }
-}
-
-if { ($gcc_compiled 
-      &&  ([istarget "powerpc*-*-aix*"]
-       || [istarget "rs6000*-*-aix*"] )) } {
-    set additional_flags "additional_flags=-L${objdir}/${subdir}"
-} elseif { [istarget "mips-sgi-irix*"] } {
-    set additional_flags "additional_flags=-rpath ${objdir}/${subdir}"
-} else {
-    set additional_flags ""
-}
-if {[gdb_compile "${objdir}/${subdir}/${testfile}.o ${objdir}/${subdir}/${libfile}1.sl ${objdir}/${subdir}/${libfile}2.sl" "${binfile}" executable [list debug $additional_flags]] != ""} {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+if { [gdb_compile_shlib ${lib1src} ${lib1} $lib_opts] != ""
+     || [gdb_compile_shlib ${lib2src} ${lib2} $lib_opts] != ""
+     || [gdb_compile ${srcfile} ${binfile} executable $exec_opts] != ""} {
+    untested "Could not compile $lib1, $lib2, or $srcfile."
+    return -1
 }
 
-
-
 # Start with a fresh gdb.
 
 gdb_exit
@@ -291,17 +242,17 @@ send_gdb "set width 0\n" ; gdb_expect -re "$gdb_prompt $"
 
 # PR's 16495, 18213
 # test that we can re-set breakpoints in shared libraries
-gdb_test "break shr1" "Breakpoint 1.*" "set bp in shared library"
+gdb_breakpoint "shr1" "allow-pending"
 
 # FIXME: should not send "run" explicitly.  Non-portable.
 
 if ![is_remote target] {
-  gdb_test "run" "Starting program:.*Breakpoint 1,.*" \
+  gdb_test "run" "Starting program:.*Breakpoint .,.*" \
        "run to bp in shared library"
 
   gdb_test "cont" ".*Program exited normally..*"
 
-  gdb_test "run" "Starting program:.*Breakpoint 1,.*" \
+  gdb_test "run" "Starting program:.*Breakpoint .,.*" \
        "re-run to bp in shared library (PR's 16495, 18213)"
 
   gdb_test "cont" ".*Program exited normally..*"
This page took 0.029569 seconds and 4 git commands to generate.