Squashed 'third_party/elfutils/' content from commit 555e15e

Change-Id: I61cde98949e47e5c8c09c33260de17f30921be79
git-subtree-dir: third_party/elfutils
git-subtree-split: 555e15ebe8bf1eb33d00747173cfc80cc65648a4
diff --git a/libdw/libdw.map b/libdw/libdw.map
new file mode 100644
index 0000000..1430705
--- /dev/null
+++ b/libdw/libdw.map
@@ -0,0 +1,346 @@
+ELFUTILS_0 { };
+ELFUTILS_0.122 {
+  global:
+    dwarf_abbrevhaschildren;
+    dwarf_addrdie;
+    dwarf_arrayorder;
+    dwarf_attr;
+    dwarf_attr_integrate;
+    dwarf_begin;
+    dwarf_begin_elf;
+    dwarf_bitoffset;
+    dwarf_bitsize;
+    dwarf_bytesize;
+    dwarf_child;
+    dwarf_cuoffset;
+    dwarf_decl_column;
+    dwarf_decl_file;
+    dwarf_decl_line;
+    dwarf_diecu;
+    dwarf_diename;
+    dwarf_dieoffset;
+    dwarf_end;
+    dwarf_entry_breakpoints;
+    dwarf_entrypc;
+    dwarf_errmsg;
+    dwarf_errno;
+    dwarf_filesrc;
+    dwarf_formaddr;
+    dwarf_formblock;
+    dwarf_formflag;
+    dwarf_formref;
+    dwarf_formref_die;
+    dwarf_formsdata;
+    dwarf_formstring;
+    dwarf_formudata;
+    dwarf_func_inline;
+    dwarf_func_inline_instances;
+    dwarf_getabbrev;
+    dwarf_getabbrevattr;
+    dwarf_getabbrevcode;
+    dwarf_getabbrevtag;
+    dwarf_getarange_addr;
+    dwarf_getarangeinfo;
+    dwarf_getaranges;
+    dwarf_getattrcnt;
+    dwarf_getattrs;
+    dwarf_getfuncs;
+    dwarf_getlocation;
+    dwarf_getlocation_addr;
+    dwarf_getmacros;
+    dwarf_getpubnames;
+    dwarf_getscn_info;
+    dwarf_getscopes;
+    dwarf_getscopes_die;
+    dwarf_getscopevar;
+    dwarf_getsrc_die;
+    dwarf_getsrc_file;
+    dwarf_getsrcfiles;
+    dwarf_getsrclines;
+    dwarf_getstring;
+    dwarf_hasattr;
+    dwarf_hasattr_integrate;
+    dwarf_haschildren;
+    dwarf_hasform;
+    dwarf_haspc;
+    dwarf_highpc;
+    dwarf_lineaddr;
+    dwarf_linebeginstatement;
+    dwarf_lineblock;
+    dwarf_linecol;
+    dwarf_lineendsequence;
+    dwarf_lineepiloguebegin;
+    dwarf_lineno;
+    dwarf_lineprologueend;
+    dwarf_linesrc;
+    dwarf_lowpc;
+    dwarf_macro_opcode;
+    dwarf_macro_param1;
+    dwarf_macro_param2;
+    dwarf_new_oom_handler;
+    dwarf_nextcu;
+    dwarf_offabbrev;
+    dwarf_offdie;
+    dwarf_onearange;
+    dwarf_onesrcline;
+    dwarf_ranges;
+    dwarf_siblingof;
+    dwarf_srclang;
+    dwarf_tag;
+    dwarf_whatattr;
+    dwarf_whatform;
+
+    # libdwfl_pic.a contributes these symbols.
+    dwfl_addrdie;
+    dwfl_addrdwarf;
+    dwfl_addrmodule;
+    dwfl_begin;
+    dwfl_cumodule;
+    dwfl_end;
+    dwfl_errmsg;
+    dwfl_errno;
+    dwfl_getdwarf;
+    dwfl_getmodules;
+    dwfl_getsrc;
+    dwfl_getsrclines;
+    dwfl_line_comp_dir;
+    dwfl_linecu;
+    dwfl_lineinfo;
+    dwfl_linemodule;
+    dwfl_linux_kernel_find_elf;
+    dwfl_linux_kernel_module_section_address;
+    dwfl_linux_kernel_report_kernel;
+    dwfl_linux_kernel_report_modules;
+    dwfl_linux_kernel_report_offline;
+    dwfl_linux_proc_find_elf;
+    dwfl_linux_proc_maps_report;
+    dwfl_linux_proc_report;
+    dwfl_module_addrdie;
+    dwfl_module_addrname;
+    dwfl_module_getdwarf;
+    dwfl_module_getelf;
+    dwfl_module_getsrc;
+    dwfl_module_getsrc_file;
+    dwfl_module_getsym;
+    dwfl_module_getsymtab;
+    dwfl_module_info;
+    dwfl_module_nextcu;
+    dwfl_module_register_names;
+    dwfl_module_relocate_address;
+    dwfl_module_relocation_info;
+    dwfl_module_relocations;
+    dwfl_module_return_value_location;
+    dwfl_nextcu;
+    dwfl_offline_section_address;
+    dwfl_onesrcline;
+    dwfl_report_begin;
+    dwfl_report_elf;
+    dwfl_report_end;
+    dwfl_report_module;
+    dwfl_report_offline;
+    dwfl_standard_argp;
+    dwfl_standard_find_debuginfo;
+    dwfl_version;
+
+  local:
+    *;
+} ELFUTILS_0;
+
+ELFUTILS_0.126 {
+  global:
+    dwarf_getelf;
+
+  local:
+    *;
+} ELFUTILS_0.122;
+
+ELFUTILS_0.127 {
+  global:
+    dwarf_getsrcdirs;
+
+    dwfl_module_addrsym;
+    dwfl_report_begin_add;
+    dwfl_module_address_section;
+
+  local:
+    *;
+} ELFUTILS_0.126;
+
+ELFUTILS_0.130 {
+  global:
+    dwfl_build_id_find_elf;
+    dwfl_build_id_find_debuginfo;
+    dwfl_module_build_id;
+    dwfl_module_report_build_id;
+
+  local:
+    *;
+} ELFUTILS_0.127;
+
+ELFUTILS_0.136 {
+  global:
+    dwfl_addrsegment;
+    dwfl_report_segment;
+
+  local:
+    *;
+} ELFUTILS_0.130;
+
+ELFUTILS_0.138 {
+  global:
+    # Replaced ELFUTILS_0.130 version, which has bug-compatibility wrapper.
+    dwfl_module_build_id;
+
+  local:
+    *;
+} ELFUTILS_0.136;
+
+ELFUTILS_0.142 {
+  global:
+    dwarf_next_cfi;
+    dwarf_getcfi;
+    dwarf_getcfi_elf;
+    dwarf_cfi_addrframe;
+    dwarf_cfi_end;
+    dwarf_frame_cfa;
+    dwarf_frame_register;
+    dwarf_frame_info;
+
+    dwfl_module_dwarf_cfi;
+    dwfl_module_eh_cfi;
+} ELFUTILS_0.138;
+
+ELFUTILS_0.143 {
+  global:
+    dwarf_getlocation_implicit_value;
+
+    # Replaced ELFUTILS_0.122 versions.  Both versions point to the
+    # same implementation, but users of the new symbol version can
+    # presume that they use dwarf_attr_integrate properly.
+    dwarf_arrayorder;
+    dwarf_bitoffset;
+    dwarf_bitsize;
+    dwarf_bytesize;
+    dwarf_decl_column;
+    dwarf_decl_file;
+    dwarf_decl_line;
+    dwarf_srclang;
+
+} ELFUTILS_0.142;
+
+ELFUTILS_0.144 {
+  global:
+    dwarf_aggregate_size;
+} ELFUTILS_0.143;
+
+ELFUTILS_0.146 {
+  global:
+    dwfl_core_file_report;
+} ELFUTILS_0.144;
+
+ELFUTILS_0.148 {
+  global:
+    dwarf_lineisa;
+    dwarf_linediscriminator;
+    dwarf_lineop_index;
+
+    dwarf_next_unit;
+    dwarf_offdie_types;
+} ELFUTILS_0.146;
+
+ELFUTILS_0.149 {
+  global:
+    dwarf_getlocation_implicit_pointer;
+
+    dwfl_dwarf_line;
+} ELFUTILS_0.148;
+
+ELFUTILS_0.156 {
+  global:
+    # Replaced ELFUTILS_0.122 version, which has a wrapper without add_p_vaddr.
+    dwfl_report_elf;
+} ELFUTILS_0.149;
+
+ELFUTILS_0.157 {
+  global:
+    dwarf_getlocations;
+    dwarf_getlocation_die;
+    dwarf_getlocation_attr;
+} ELFUTILS_0.156;
+
+ELFUTILS_0.158 {
+  global:
+    # Replaced ELFUTILS_0.146 version, which has a wrapper without executable.
+    dwfl_core_file_report;
+
+    dwfl_attach_state;
+    dwfl_pid;
+    dwfl_thread_dwfl;
+    dwfl_thread_tid;
+    dwfl_frame_thread;
+    dwfl_thread_state_registers;
+    dwfl_thread_state_register_pc;
+    dwfl_getthread_frames;
+    dwfl_getthreads;
+    dwfl_thread_getframes;
+    dwfl_frame_pc;
+
+    dwfl_module_getsymtab_first_global;
+    dwfl_module_addrinfo;
+    dwfl_module_getsym_info;
+
+    dwfl_core_file_attach;
+    dwfl_linux_proc_attach;
+} ELFUTILS_0.157;
+
+ELFUTILS_0.159 {
+  global:
+    dwarf_getalt;
+    dwarf_setalt;
+    dwelf_dwarf_gnu_debugaltlink;
+    dwelf_elf_gnu_debuglink;
+    dwelf_elf_gnu_build_id;
+} ELFUTILS_0.158;
+
+ELFUTILS_0.160 {
+  global:
+    dwarf_cu_getdwarf;
+    dwarf_cu_die;
+} ELFUTILS_0.159;
+
+ELFUTILS_0.161 {
+  global:
+    dwarf_peel_type;
+
+    # Replaced ELFUTILS_0.144 version.  Both versions point to the
+    # same implementation, but users of the new symbol version can
+    # presume that it uses dwarf_peel_type.
+    dwarf_aggregate_size;
+
+    dwarf_getmacros_off;
+    dwarf_macro_getsrcfiles;
+    dwarf_macro_getparamcnt;
+    dwarf_macro_param;
+} ELFUTILS_0.160;
+
+ELFUTILS_0.165 {
+  global:
+    dwelf_scn_gnu_compressed_size;
+} ELFUTILS_0.161;
+
+ELFUTILS_0.167 {
+  global:
+    dwelf_strtab_init;
+    dwelf_strtab_add;
+    dwelf_strtab_add_len;
+    dwelf_strtab_finalize;
+    dwelf_strent_off;
+    dwelf_strent_str;
+    dwelf_strtab_free;
+} ELFUTILS_0.165;
+
+ELFUTILS_0.170 {
+  global:
+    dwarf_default_lower_bound;
+    dwarf_line_file;
+} ELFUTILS_0.167;