debug: Allow means for targets to opt out of CTF/BTF support
authorIndu Bhagat <indu.bhagat@oracle.com>
Mon, 19 Jul 2021 17:24:59 +0000 (10:24 -0700)
committerIndu Bhagat <indu.bhagat@oracle.com>
Mon, 19 Jul 2021 17:34:39 +0000 (10:34 -0700)
commitf007a638a86e4b59bef0a0d8efa5bb8c5e5b200a
tree6ad99d077df3bf835c6cee4f71f724cbaca49996
parent483dd64546f1c7aa6ad8986eee570849d25f15e3
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.
gcc/config/elfos.h
gcc/doc/tm.texi
gcc/doc/tm.texi.in
gcc/testsuite/gcc.dg/debug/btf/btf.exp
gcc/testsuite/gcc.dg/debug/ctf/ctf.exp
gcc/testsuite/lib/gcc-dg.exp
gcc/toplev.c