Fix gdb.base/print-file-var.exp with Clang
authorGary Benson <gbenson@redhat.com>
Mon, 2 Nov 2020 14:19:29 +0000 (14:19 +0000)
committerGary Benson <gbenson@redhat.com>
Mon, 2 Nov 2020 14:19:29 +0000 (14:19 +0000)
The C++ parts of gdb.base/print-file-var.exp failed to build with
Clang because the "-x c++" option added by gdb_compile caused the
compiler to attempt to parse .so files as C++.  This commit splits
the compiler and linker options into separate lists, and switches
to building via build_executable_from_specs which can accommodate
this separation.

gdb/testsuite/ChangeLog:

* gdb.base/print-file-var.exp (test): Separate compiler and
linker options, and build using build_executable_from_specs
to accommodate this.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/print-file-var.exp

index 330a5eb79ee0163fa104446cab31ef5452e72bfe..69483785ca2a9b05ff221ab0af9b9465e59a9ba6 100644 (file)
@@ -1,3 +1,9 @@
+2020-11-02  Gary Benson <gbenson@redhat.com>
+
+       * gdb.base/print-file-var.exp (test): Separate compiler and
+       linker options, and build using build_executable_from_specs
+       to accommodate this.
+
 2020-11-02  Gary Benson <gbenson@redhat.com>
 
        * lib/gdb.exp (gdb_compile): Inhibit passing "-x c++"
index 22df9f10674ae3141a5e6c09ee19d5fdf270570b..62e5f230ebeafc02e31d4ad4828103f09784849c 100644 (file)
@@ -56,22 +56,24 @@ proc test {hidden dlopen version_id_main lang} {
        return -1
     }
 
-    set main_opts [list debug shlib=${libobj1} $lang]
+    set main_opts [list debug $lang]
+    set link_opts [list debug shlib=${libobj1}]
 
     if {$dlopen} {
-       lappend main_opts "shlib_load" \
-           "additional_flags=-DSHLIB_NAME=\"$libobj2\""
+       lappend main_opts "additional_flags=-DSHLIB_NAME=\"$libobj2\""
+       lappend link_opts "shlib_load"
     } else {
-       lappend main_opts "shlib=${libobj2}"
+       lappend link_opts "shlib=${libobj2}"
     }
 
     lappend main_opts "additional_flags=-DVERSION_ID_MAIN=$version_id_main"
 
-    if { [gdb_compile "${srcdir}/${subdir}/${main}.c" \
-             [standard_output_file ${executable}] \
-             executable \
+    if { [build_executable_from_specs ${main} \
+             $executable \
+             $link_opts \
+             ${main}.c \
              $main_opts]
-        != ""} {
+        != } {
        return -1
     }