mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-18 12:24:38 +08:00
9be5d742db
Make gdb_compile handle a new "macros" option, which makes it pass the appropriate flag to make the compiler include macro information in the debug info. This will help simplify tests using macros, reduce redundant code, and make it easier to add support for a new compiler. Right now it only handles clang specially (using -fdebug-macro) and falls back to -g3 otherwise (which works for gcc). Other compilers can be added as needed. There are some tests that are currently skipped if the compiler is nor gcc nor clang. After this patch, the tests will attempt to run (the -g3 fall back will be used). That gives a chance to people using other compilers to notice something is wrong and maybe add support for their compiler. If it is needed to support a compiler that doesn't have a way to include macro information, then we can always introduce a "skip_macro_tests" that can be used to skip over them. Change-Id: I50cd6ab1bfbb478c1005486408e214b551364c9b
54 lines
1.5 KiB
Plaintext
54 lines
1.5 KiB
Plaintext
# Copyright 2013-2022 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
|
|
# the Free Software Foundation; either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
standard_testfile
|
|
|
|
# Fission doesn't support macros yet. Bug 15954.
|
|
if [using_fission] {
|
|
unsupported "fission"
|
|
return -1
|
|
}
|
|
|
|
if [is_remote host] {
|
|
unsupported "compiling on a remote host does not support a filename with directory."
|
|
return 0
|
|
}
|
|
|
|
set opts {debug additional_flags=-I. macros}
|
|
|
|
if { [file pathtype $objdir] == "relative" } {
|
|
untested "objdir $objdir should be absolute"
|
|
return
|
|
}
|
|
set saved_pwd [pwd]
|
|
cd $srcdir/${subdir}/base/two
|
|
set err [gdb_compile "../../${srcfile}" "${binfile}" executable $opts]
|
|
cd $saved_pwd
|
|
if { $err != "" } {
|
|
untested "compilation failed"
|
|
return -1
|
|
}
|
|
|
|
clean_restart ${testfile}
|
|
|
|
# Test macros respect DW_AT_comp_dir.
|
|
|
|
# "list header_two_func" does not set exactly the one line we want.
|
|
if ![runto header_two_func] {
|
|
return -1
|
|
}
|
|
|
|
gdb_test "info macro HEADER" "\r\n#define HEADER 2"
|