Fix gdb.base/print-file-var.exp with Clang

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.
This commit is contained in:
Gary Benson
2020-11-02 14:19:29 +00:00
parent 6539a36d0e
commit 1c2bec1918
2 changed files with 16 additions and 8 deletions

View 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++"

View 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]
!= ""} {
!= 0 } {
return -1
}