aboutsummaryrefslogtreecommitdiff
path: root/gas/as.h
diff options
context:
space:
mode:
authorAndrew Burgess <andrew.burgess@embecosm.com>2019-11-04 12:27:45 +0000
committerAndrew Burgess <andrew.burgess@embecosm.com>2019-11-18 10:30:21 +0000
commit66f8b2cbbb675ccbcae56e2bdb6dae485878ec00 (patch)
tree74128ccf4156406fd2deebe1b4b092eab1b60063 /gas/as.h
parentf1e8bd2dd26cbe08d3722a9e12844e290e47a1d2 (diff)
downloadgdb-66f8b2cbbb675ccbcae56e2bdb6dae485878ec00.zip
gdb-66f8b2cbbb675ccbcae56e2bdb6dae485878ec00.tar.gz
gdb-66f8b2cbbb675ccbcae56e2bdb6dae485878ec00.tar.bz2
gas: Add --gdwarf-cie-version command line flag
Add a flag to control the version of CIE that is generated. By default gas produces CIE version 1, and this continues to be the default after this patch. However, a user can now provide --gdwarf-cie-version=NUMBER to switch to either version 3 or version 4 of CIE, version 2 was never released, and so causes an error as does any number less than 1 or greater than 4. Producing version 4 CIE requires two new fields to be added to the CIE, an address size field, and an segment selector field. For a flat address space the DWARF specification indicates that the segment selector should be 0, and the address size fields just contains the address size in bytes. For now we support 4 or 8 byte addresses, and the segment selector is always produced as 0. At some future time we might need to allow targets to override this. gas/ChangeLog: * as.c (parse_args): Parse --gdwarf-cie-version option. (flag_dwarf_cie_version): New variable. * as.h (flag_dwarf_cie_version): Declare. * dw2gencfi.c (output_cie): Switch from DW_CIE_VERSION to flag_dwarf_cie_version. * doc/as.texi (Overview): Document --gdwarf-cie-version. * NEWS: Likewise. * testsuite/gas/cfi/cfi.exp: Add new tests. * testsuite/gas/cfi/cie-version-0.d: New file. * testsuite/gas/cfi/cie-version-1.d: New file. * testsuite/gas/cfi/cie-version-2.d: New file. * testsuite/gas/cfi/cie-version-3.d: New file. * testsuite/gas/cfi/cie-version-4.d: New file. * testsuite/gas/cfi/cie-version.s: New file. include/ChangeLog: * dwarf2.h (DW_CIE_VERSION): Delete. Change-Id: I9de19461aeb8332b5a57bbfe802953d0725a7ae8
Diffstat (limited to 'gas/as.h')
-rw-r--r--gas/as.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/gas/as.h b/gas/as.h
index d996697..3c37519 100644
--- a/gas/as.h
+++ b/gas/as.h
@@ -412,6 +412,7 @@ enum debug_info_type
extern enum debug_info_type debug_type;
extern int use_gnu_debug_info_extensions;
COMMON bfd_boolean flag_dwarf_sections;
+extern int flag_dwarf_cie_version;
/* Maximum level of macro nesting. */
extern int max_macro_nest;