Hi, Patch for supporting multiple DWARF comp unit headers. This is necessary for supporting DW_FORM_ref_addr properly when the reference is to a compilation unit outside of the current one. The current code only supports one comp unit at a time. 2002-07-03 Petr Sorfa (petrs@caldera.com) * dwarf2read.c (build_die_ref): New function that builds a new die reference if necessary, will search across multiple comp units to find the reference. (find_die_ref): New function that searches for a die reference for a given comp unit. (find_cu_header_from_begin_offset): New function that searches through a link list of comp unit headers for a comp unit that matches the given offset. (register_cu_header): New function that registers a comp unit header by allocating space for it and adding it to the comp unit header list. (free_cu_header_list): New function that frees up the memory taken up by the list of comp unit headers associated with a process. (dwarf_new_init): New function that initializes DWARF information for a new process. (struct comp_unit_head): Adds several new members to contain fully all the comp unit head's info. (first_cu_header): A new global variable that points to the first comp unit head for the process. (cu_header_offset): Global variable removed, as is now present in each comp unit head. (dwarf_abbrevs): Global variable removed, as is now present in each comp unit head. (dwarf2_read_abbrevs): (dwarf2_empty_abbrev_table): (dwarf2_lookup_abbrev): (dwarf_attr): (die_is_declaration): (read_base_type): (dwarf2_get_pc_bounds): (read_tag_string_type): (dwarf2_linkage_name): (dwarf2_get_ref_die_offset): All of these functions have a new argument added to pass the current comp unit header. All calls to these functions have been updated to handle the additional argument. * elfread.c (elf_new_init): Now calls dwarf_new_init() to initialize DWARF related information for the new process.