[gdb/testsuite] Handle attributes.h for remote host
authorTom de Vries <tdevries@suse.de>
Sat, 18 Mar 2023 09:16:30 +0000 (10:16 +0100)
committerTom de Vries <tdevries@suse.de>
Sat, 18 Mar 2023 09:16:30 +0000 (10:16 +0100)
Handle $srcdir/lib/attributes.h using lappend_include_dir.

Tested on x86_64-linux.

15 files changed:
gdb/testsuite/gdb.base/backtrace.c
gdb/testsuite/gdb.base/backtrace.exp
gdb/testsuite/gdb.base/frame-info-consistent.exp
gdb/testsuite/gdb.base/infcall-nested-structs.c
gdb/testsuite/gdb.base/infcall-nested-structs.exp.tcl
gdb/testsuite/gdb.base/stap-probe.c
gdb/testsuite/gdb.base/stap-probe.exp
gdb/testsuite/gdb.base/vla-optimized-out.c
gdb/testsuite/gdb.base/vla-optimized-out.exp
gdb/testsuite/gdb.cp/cold-clone.cc
gdb/testsuite/gdb.cp/cold-clone.exp
gdb/testsuite/gdb.dwarf2/dyn-type-unallocated.c
gdb/testsuite/gdb.dwarf2/dyn-type-unallocated.exp
gdb/testsuite/gdb.python/tui-window-disabled.c
gdb/testsuite/gdb.python/tui-window-disabled.exp

index f615d857110035b6bfebc19a8b098e21c31f002e..4928bae05a42149e41b7d44566419225888ef463 100644 (file)
@@ -15,7 +15,7 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#include "../lib/attributes.h"
+#include "attributes.h"
 
 int __attribute__((noinline)) ATTRIBUTE_NOCLONE
 baz ()
index 4389273123c4bda361c1718baf1b9e6cbf1a2f9d..c7355cef37514d358ab3badced6a45d1ba451980 100644 (file)
 
 standard_testfile
 
-if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } {
+set flags {}
+lappend flags debug
+lappend_include_file flags $srcdir/lib/attributes.h
+
+if { [prepare_for_testing "failed to prepare" $testfile $srcfile $flags] } {
     return -1
 }
 
index 4893c2227f34f773430aa6c0fdf83c687523d2d5..30185c3c4f4197632997c405865e6392f99edd75 100644 (file)
 
 standard_testfile backtrace.c
 
-if { [build_executable "failed to prepare" $testfile $srcfile] } {
+set flags {}
+lappend flags debug
+lappend_include_file flags $srcdir/lib/attributes.h
+
+if { [build_executable "failed to prepare" $testfile $srcfile $flags] } {
     return -1
 }
 
index ff4b64f28c90969c92a37ab6e3195da4c36272f4..f741728d4cc1ec4e8bbdc728efd99760dd2bc3c7 100644 (file)
@@ -33,7 +33,7 @@
    in the structs.exp test script.  */
 
 #include <string.h>
-#include "../lib/attributes.h"
+#include "attributes.h"
 
 /* Useful abreviations.  */
 typedef char tc;
index d9d2fa519d21b4c3374e6125abeb1c079db50fe4..f7f036b42177d12c768c812e369da125e0269fa3 100644 (file)
@@ -40,6 +40,8 @@ if { $lang == "c++" && [test_compiler_info clang*] } {
     lappend compile_flags "additional_flags=-Wno-tautological-compare"
 }
 
+lappend_include_file compile_flags $srcdir/lib/attributes.h
+
 # Given N (0..25), return the corresponding alphabetic letter in upper
 # case.
 
index 5cd1fbfe36bd65565f1562881d5a7dc1abd8a633..36ce2da7847bb5509536e7bfab470f3e3c2cf247 100644 (file)
@@ -15,7 +15,7 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#include "../lib/attributes.h"
+#include "attributes.h"
 
 #if USE_SEMAPHORES
 
index 1beb05203c1ed4be9c5740fcd7916b859d66e203..06aa6665022b3c11570a46c0c42bc7a8c249dbc5 100644 (file)
@@ -113,8 +113,15 @@ proc check_for_usable_xmm0_probe { binfile } {
 proc stap_test {exec_name {args ""}} {
     global testfile hex srcfile
 
+    set flags {}
+    lappend flags debug
+    lappend_include_file flags $::srcdir/lib/attributes.h
+    if { $args != "" } {
+       set flags [concat $flags $args]
+    }
+
     if {[prepare_for_testing "failed to prepare" ${exec_name} $srcfile \
-          [concat $args debug]]} {
+            $flags]} {
        return -1
     }
 
@@ -233,10 +240,18 @@ proc stap_test {exec_name {args ""}} {
 }
 
 proc stap_test_no_debuginfo {exec_name {args ""}} {
-    global testfile hex
+    global hex
+
+    set flags {}
+    lappend flags nodebug
+    lappend flags optimize=-O2
+    lappend_include_file flags $::srcdir/lib/attributes.h
+    if { $args != "" } {
+       set flags [concat $flags $args]
+    }
 
-    if {[prepare_for_testing "failed to prepare" ${exec_name} ${testfile}.c \
-          [concat $args nodebug optimize=-O2]]} {
+    if {[prepare_for_testing "failed to prepare" ${exec_name} $::srcfile \
+            $flags]} {
        return -1
     }
 
index c1e7c609b5a0831c0484413b39cdc103e6def640..7ae7e612be99a9986290ea73ce7a1a667bea9f34 100644 (file)
@@ -18,7 +18,7 @@
 /* The version of this test-case with f1 tagged with noinline only is equivalent
    to gcc/testsuite/gcc.dg/guality/vla-1.c.  */
 
-#include "../lib/attributes.h"
+#include "attributes.h"
 
 int
 #ifdef NOCLONE
index b31b9ec97060c8a10937307ee8e6524eab65460c..c0681bc890403f5cf46b277df6536cb6205e3468 100644 (file)
@@ -26,6 +26,7 @@ proc vla_optimized_out {exe_suffix options} {
     global testfile srcfile
 
     lassign $options compile_flags sizeof_result
+    lappend_include_file compile_flags $::srcdir/lib/attributes.h
 
     if { [prepare_for_testing "failed to prepare" "$testfile-$exe_suffix" $srcfile \
              $compile_flags] } {
index b45d93752af13dacff2c187477a3bbb547c75740..533c1e97a4ae5d5f23e6cdfa05be1a56d0289bc7 100644 (file)
@@ -16,7 +16,7 @@
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <stdlib.h>
-#include "../lib/attributes.h"
+#include "attributes.h"
 
 int a;
 int b;
index 0a2b0790ec0780459eb0fb4230382d1a5e1f5767..415d7a649642fdfec71c5b546a4213e94aefd976 100644 (file)
 
 standard_testfile .cc
 
-if {[prepare_for_testing "failed to prepare" $testfile $srcfile \
-        {debug c++ optimize=-O2}]} {
+set flags {}
+lappend flags debug
+lappend flags c++
+lappend flags optimize=-O2
+lappend_include_file flags $srcdir/lib/attributes.h
+
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile $flags]} {
     return -1
 }
 
index 436c5698c4611d8bfbbfc334933364dd0275b37d..843646652c0d32aaed513eb49e57e1356f44667b 100644 (file)
@@ -15,7 +15,7 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#include "../lib/attributes.h"
+#include "attributes.h"
 
 /* Our fake dynamic object.  */
 void *dyn_object;
index 88fd331781d3ab9284812b3eed02c76b74f7327c..5d0dfcc291d27c821ab5dcdb7c7ffc8f6e268747 100644 (file)
@@ -38,12 +38,30 @@ require dwarf2_support
 
 standard_testfile .c -dw.S
 
-if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
+set flags {}
+lappend flags debug
+lappend_include_file flags $srcdir/lib/attributes.h
+
+if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} $flags] } {
     return -1
 }
 
+with_shared_gdb {
+    set func_info_vars [get_func_info main $flags]
+
+    set int_size [get_sizeof "int" "UNKNOWN"]
+    set voidp_size [get_sizeof "void *" "UNKNOWN"]
+}
+
 set asm_file [standard_output_file $srcfile2]
 Dwarf::assemble $asm_file {
+    global func_info_vars
+    foreach var $func_info_vars {
+       global $var
+    }
+    global int_size
+    global voidp_size
+
     cu {} {
        global srcfile
 
@@ -55,9 +73,6 @@ Dwarf::assemble $asm_file {
         } {
            declare_labels array_type_label integer_type_label
 
-           set int_size [get_sizeof "int" "UNKNOWN"]
-           set voidp_size [get_sizeof "void *" "UNKNOWN"]
-
             integer_type_label: DW_TAG_base_type {
                 {DW_AT_byte_size $int_size DW_FORM_sdata}
                 {DW_AT_encoding  @DW_ATE_signed}
@@ -95,16 +110,22 @@ Dwarf::assemble $asm_file {
                {name "dyn_object"}
                {type :$array_type_label}
            }
-            subprogram {
-                {external 1 flag}
-                {MACRO_AT_func {main}}
-            }
+          subprogram {
+              {external 1 flag}
+              {DW_AT_name main}
+              {DW_AT_low_pc $main_start DW_FORM_addr}
+              {DW_AT_high_pc $main_end DW_FORM_addr}
+          }
         }
     }
 }
 
+set flags {}
+lappend flags {nodebug}
+lappend_include_file flags $srcdir/lib/attributes.h
+
 if { [prepare_for_testing "failed to prepare" "${testfile}" \
-         [list $srcfile $asm_file] {nodebug}] } {
+         [list $srcfile $asm_file] $flags] } {
     return -1
 }
 
index 833c6a3a751357a3007ee94593a180648df8685c..111f7adcdc198a524ad30d5081b72cc9a92183fb 100644 (file)
@@ -15,7 +15,7 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see  <http://www.gnu.org/licenses/>.  */
 
-#include "../lib/attributes.h"
+#include "attributes.h"
 
 volatile int val;
 
index 57d41cdbf8b4ea8c62d99e7500fe671d51a69549..b2beb77c217446bf807aac3ab3daa78e6861efe9 100644 (file)
@@ -27,7 +27,11 @@ tuiterm_env
 
 standard_testfile
 
-if {[build_executable "failed to prepare" ${testfile} ${srcfile}] == -1} {
+set flags {}
+lappend flags debug
+lappend_include_file flags $srcdir/lib/attributes.h
+
+if {[build_executable "failed to prepare" ${testfile} ${srcfile} $flags] == -1} {
     return -1
 }