summaryrefslogtreecommitdiff
path: root/elfcpp
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>2008-05-28 20:48:16 +0000
committerIan Lance Taylor <ian@airs.com>2008-05-28 20:48:16 +0000
commit19871716107eae007528654c645ae72a6a27db17 (patch)
tree0766788582060987ba30b38847ebc4a4e8b56c0c /elfcpp
parenta71ed57308fb983719966dfe46ac03df81a4de7e (diff)
downloadbinutils-redhat-19871716107eae007528654c645ae72a6a27db17.tar.gz
elfcpp/:
* dwarf.h (enum DW_FORM): Define. gold/: * reduced_debug_output.cc: New file. * reduced_debug_output.h: New file. * options.h (class General_optoins): Add --strip-debug-non-line. * options.cc (General_options::finalize): Add strip_debug_non_line to the strip heirarchy. * layout.h (class Layout): Add debug_abbrev_ and debug_info_ fields. * layout.cc: Include "reduced_debug_output.h". (Layout::Layout): Initialize new fields. (line_only_debug_sections): New static array. (is_lines_only_debug_sections): New static inline function. (Layout::include_section): Handle --strip-debug-non-line. (Layout::make_output_section): If --strip-debug-non-line, build new output sections for .debug_abbrev and .debug_info. * dwarf_reader.cc (read_unsigned_LEB_128): Move to namespace gold. Warn about possible overflow. (read_signed_LEB_128): Likewise. * dwarf_reader.h: (read_unsigned_LEB_128): Declare. (read_signed_LEB_128): Declare. * Makefile.am (CCFILES): Add reduced_debug_output.cc. (HFILES): Add reduced_debug_output.h. * Makefile.in: Rebuild.
Diffstat (limited to 'elfcpp')
-rw-r--r--elfcpp/ChangeLog4
-rw-r--r--elfcpp/dwarf.h30
2 files changed, 32 insertions, 2 deletions
diff --git a/elfcpp/ChangeLog b/elfcpp/ChangeLog
index 63e0ac0267..1050b29b42 100644
--- a/elfcpp/ChangeLog
+++ b/elfcpp/ChangeLog
@@ -1,3 +1,7 @@
+2008-05-28 Caleb Howe <cshowe@google.com>
+
+ * dwarf.h (enum DW_FORM): Define.
+
2008-04-19 Ian Lance Taylor <iant@google.com>
* elfcpp_file.h (class Elf_file): Add large_shndx_offset_ field.
diff --git a/elfcpp/dwarf.h b/elfcpp/dwarf.h
index b60bdbd601..c6ff402719 100644
--- a/elfcpp/dwarf.h
+++ b/elfcpp/dwarf.h
@@ -4,7 +4,7 @@
// Written by Ian Lance Taylor <iant@google.com>.
// This file is part of elfcpp.
-
+
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public License
// as published by the Free Software Foundation; either version 2, or
@@ -124,6 +124,32 @@ enum DW_TAG
DW_TAG_PGI_interface_block = 0xA020
};
+enum DW_FORM
+{
+ DW_FORM_null = 0x00,
+ DW_FORM_addr = 0x01,
+ DW_FORM_block2 = 0x03,
+ DW_FORM_block4 = 0x04,
+ DW_FORM_data2 = 0x05,
+ DW_FORM_data4 = 0x06,
+ DW_FORM_data8 = 0x07,
+ DW_FORM_string = 0x08,
+ DW_FORM_block = 0x09,
+ DW_FORM_block1 = 0x0a,
+ DW_FORM_data1 = 0x0b,
+ DW_FORM_flag = 0x0c,
+ DW_FORM_sdata = 0x0d,
+ DW_FORM_strp = 0x0e,
+ DW_FORM_udata = 0x0f,
+ DW_FORM_ref_addr = 0x10,
+ DW_FORM_ref1 = 0x11,
+ DW_FORM_ref2 = 0x12,
+ DW_FORM_ref4 = 0x13,
+ DW_FORM_ref8 = 0x14,
+ DW_FORM_ref_udata = 0x15,
+ DW_FORM_indirect = 0x16
+};
+
// Frame unwind information.
enum DW_EH_PE
@@ -372,7 +398,7 @@ enum DW_OP
DW_OP_call_frame_cfa =0x9c,
DW_OP_bit_piece =0x9d,
DW_OP_lo_user =0xe0,
- DW_OP_hi_user =0xff,
+ DW_OP_hi_user =0xff,
// GNU extensions
DW_OP_GNU_push_tls_address =0xe0
};