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;