mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-24 03:14:08 +08:00
debug: Allow means for targets to opt out of CTF/BTF support
CTF/BTF debug formats can be safely enabled for all ELF-based targets by default in GCC. CTF/BTF debug formats now adopt a similar approach as taken for DWARF debug format via the DWARF2_DEBUGGING_INFO. - By default, CTF/BTF formats can be enabled for all ELF-based targets. - By default, CTF/BTF formats can be disabled for all non ELF-based targets. - If the user passed a -gctf but CTF is not enabled for the target, GCC issues an error to the user (as is done currently with other debug formats) - "target system does not support the 'ctf' debug format". Analogous behavior for -gbtf command line option. A previous commit disabled the CTF and BTF testcases on the AIX platform. This is not necessary now that CTF and BTF debug formats are disabled by default on all non-ELF targets. GCC emits an error message when -gctf/-gbtf is used on such platforms and these tests will be skipped. gcc/ * config/elfos.h (CTF_DEBUGGING_INFO): New definition. (BTF_DEBUGGING_INFO): Likewise. * doc/tm.texi.in: Document the new macros. * doc/tm.texi: Regenerated. * toplev.c: Guard initialization of debug hooks. gcc/testsuite/ * gcc.dg/debug/btf/btf.exp: Do not run BTF testsuite if target does not support BTF format. Remove redundant check for AIX. * gcc.dg/debug/ctf/ctf.exp: Do not run CTF testsuite if target does not support CTF format. Remove redundant check for AIX. * lib/gcc-dg.exp: Remove redundant check for AIX.
This commit is contained in:
parent
483dd64546
commit
f007a638a8
@ -68,6 +68,14 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
|
||||
#define DWARF2_DEBUGGING_INFO 1
|
||||
|
||||
/* All ELF targets can support CTF. */
|
||||
|
||||
#define CTF_DEBUGGING_INFO 1
|
||||
|
||||
/* All ELF targets can support BTF. */
|
||||
|
||||
#define BTF_DEBUGGING_INFO 1
|
||||
|
||||
/* The GNU tools operate better with dwarf2, and it is required by some
|
||||
psABI's. Since we don't have any native tools to be compatible with,
|
||||
default to dwarf2. */
|
||||
|
@ -9947,6 +9947,8 @@ This describes how to specify debugging information.
|
||||
* File Names and DBX:: Macros controlling output of file names in DBX format.
|
||||
* DWARF:: Macros for DWARF format.
|
||||
* VMS Debug:: Macros for VMS debug format.
|
||||
* CTF Debug:: Macros for CTF debug format.
|
||||
* BTF Debug:: Macros for BTF debug format.
|
||||
@end menu
|
||||
|
||||
@node All Debuggers
|
||||
@ -10374,6 +10376,30 @@ behavior is controlled by @code{TARGET_OPTION_OPTIMIZATION} and
|
||||
@code{TARGET_OPTION_OVERRIDE}.
|
||||
@end defmac
|
||||
|
||||
@need 2000
|
||||
@node CTF Debug
|
||||
@subsection Macros for CTF Debug Format
|
||||
|
||||
@c prevent bad page break with this line
|
||||
Here are macros for CTF debug format.
|
||||
|
||||
@defmac CTF_DEBUGGING_INFO
|
||||
Define this macro if GCC should produce debugging output in CTF debug
|
||||
format in response to the @option{-gctf} option.
|
||||
@end defmac
|
||||
|
||||
@need 2000
|
||||
@node BTF Debug
|
||||
@subsection Macros for BTF Debug Format
|
||||
|
||||
@c prevent bad page break with this line
|
||||
Here are macros for BTF debug format.
|
||||
|
||||
@defmac BTF_DEBUGGING_INFO
|
||||
Define this macro if GCC should produce debugging output in BTF debug
|
||||
format in response to the @option{-gbtf} option.
|
||||
@end defmac
|
||||
|
||||
@node Floating Point
|
||||
@section Cross Compilation and Floating Point
|
||||
@cindex cross compilation and floating point
|
||||
|
@ -6613,6 +6613,8 @@ This describes how to specify debugging information.
|
||||
* File Names and DBX:: Macros controlling output of file names in DBX format.
|
||||
* DWARF:: Macros for DWARF format.
|
||||
* VMS Debug:: Macros for VMS debug format.
|
||||
* CTF Debug:: Macros for CTF debug format.
|
||||
* BTF Debug:: Macros for BTF debug format.
|
||||
@end menu
|
||||
|
||||
@node All Debuggers
|
||||
@ -6994,6 +6996,30 @@ behavior is controlled by @code{TARGET_OPTION_OPTIMIZATION} and
|
||||
@code{TARGET_OPTION_OVERRIDE}.
|
||||
@end defmac
|
||||
|
||||
@need 2000
|
||||
@node CTF Debug
|
||||
@subsection Macros for CTF Debug Format
|
||||
|
||||
@c prevent bad page break with this line
|
||||
Here are macros for CTF debug format.
|
||||
|
||||
@defmac CTF_DEBUGGING_INFO
|
||||
Define this macro if GCC should produce debugging output in CTF debug
|
||||
format in response to the @option{-gctf} option.
|
||||
@end defmac
|
||||
|
||||
@need 2000
|
||||
@node BTF Debug
|
||||
@subsection Macros for BTF Debug Format
|
||||
|
||||
@c prevent bad page break with this line
|
||||
Here are macros for BTF debug format.
|
||||
|
||||
@defmac BTF_DEBUGGING_INFO
|
||||
Define this macro if GCC should produce debugging output in BTF debug
|
||||
format in response to the @option{-gbtf} option.
|
||||
@end defmac
|
||||
|
||||
@node Floating Point
|
||||
@section Cross Compilation and Floating Point
|
||||
@cindex cross compilation and floating point
|
||||
|
@ -24,11 +24,6 @@ if { [istarget nvptx-*-*] } {
|
||||
return
|
||||
}
|
||||
|
||||
if { [istarget "powerpc-ibm-aix*"] } {
|
||||
set torture_execute_xfail "powerpc-ibm-aix*"
|
||||
return
|
||||
}
|
||||
|
||||
# If a testcase doesn't have special options, use these.
|
||||
global DEFAULT_CFLAGS
|
||||
if ![info exists DEFAULT_CFLAGS] then {
|
||||
@ -39,8 +34,15 @@ if ![info exists DEFAULT_CFLAGS] then {
|
||||
dg-init
|
||||
|
||||
# Main loop.
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\] ]] \
|
||||
"" $DEFAULT_CFLAGS
|
||||
set comp_output [gcc_target_compile \
|
||||
"$srcdir/$subdir/../trivial.c" "trivial.S" assembly \
|
||||
"additional_flags=-gbtf"]
|
||||
if { ! [string match "*: target system does not support the * debug format*" \
|
||||
$comp_output] } {
|
||||
remove-build-file "trivial.S"
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\] ]] \
|
||||
"" $DEFAULT_CFLAGS
|
||||
}
|
||||
|
||||
# All done.
|
||||
dg-finish
|
||||
|
@ -24,11 +24,6 @@ if { [istarget nvptx-*-*] } {
|
||||
return
|
||||
}
|
||||
|
||||
if { [istarget "powerpc-ibm-aix*"] } {
|
||||
set torture_execute_xfail "powerpc-ibm-aix*"
|
||||
return
|
||||
}
|
||||
|
||||
# If a testcase doesn't have special options, use these.
|
||||
global DEFAULT_CFLAGS
|
||||
if ![info exists DEFAULT_CFLAGS] then {
|
||||
@ -39,8 +34,15 @@ if ![info exists DEFAULT_CFLAGS] then {
|
||||
dg-init
|
||||
|
||||
# Main loop.
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\] ]] \
|
||||
"" $DEFAULT_CFLAGS
|
||||
set comp_output [gcc_target_compile \
|
||||
"$srcdir/$subdir/../trivial.c" "trivial.S" assembly \
|
||||
"additional_flags=-gctf"]
|
||||
if { ! [string match "*: target system does not support the * debug format*" \
|
||||
$comp_output] } {
|
||||
remove-build-file "trivial.S"
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\] ]] \
|
||||
"" $DEFAULT_CFLAGS
|
||||
}
|
||||
|
||||
# All done.
|
||||
dg-finish
|
||||
|
@ -641,7 +641,6 @@ proc gcc-dg-frontend-supports-ctf { target_compile trivial } {
|
||||
proc gcc-dg-target-supports-debug-format { target_compile trivial type } {
|
||||
global srcdir subdir
|
||||
|
||||
if {$type == "-gctf" && [istarget *-*-aix*]} { return 0 }
|
||||
set comp_output [$target_compile \
|
||||
"$srcdir/$subdir/$trivial" "trivial.S" assembly \
|
||||
"additional_flags=$type"]
|
||||
|
11
gcc/toplev.c
11
gcc/toplev.c
@ -1463,8 +1463,15 @@ process_options (void)
|
||||
debug_hooks = &xcoff_debug_hooks;
|
||||
#endif
|
||||
#ifdef DWARF2_DEBUGGING_INFO
|
||||
else if (dwarf_debuginfo_p ()
|
||||
|| dwarf_based_debuginfo_p ())
|
||||
else if (dwarf_debuginfo_p ())
|
||||
debug_hooks = &dwarf2_debug_hooks;
|
||||
#endif
|
||||
#ifdef CTF_DEBUGGING_INFO
|
||||
else if (ctf_debuginfo_p ())
|
||||
debug_hooks = &dwarf2_debug_hooks;
|
||||
#endif
|
||||
#ifdef BTF_DEBUGGING_INFO
|
||||
else if (btf_debuginfo_p ())
|
||||
debug_hooks = &dwarf2_debug_hooks;
|
||||
#endif
|
||||
#ifdef VMS_DEBUGGING_INFO
|
||||
|
Loading…
Reference in New Issue
Block a user