(type_unit_group): Embed "per_cu" member, remove pointer.
New union member "t", move member "tus" into it, all uses updated.
New member "hash", replaces member "line_offset, all uses updated.
(quick_file_names): Replace member "offset" with "hash", all uses
updated.
(hash_stmt_list_entry, eq_stmt_list_entry): New functions.
(hash_file_name_entry, eq_file_name_entry): Call them.
(hash_type_unit_group, eq_type_unit_group): Ditto.
(dw2_get_cu, dw2_get_primary_cu): Replace assert with a better one.
(dw2_get_file_names_reader): Fix file name table calculation for TUs.
(dw2_get_file_names): Update.
(create_type_unit_group): Replace "per_cu" arg with "cu".
All callers updated. Fix "quick" (.gdb_index) handling.
(get_type_unit_group): Replace "per_cu" arg with "cu".
All callers updated.
(build_type_unit_groups): Don't reset tu_stats.
"tab_cur_size". Change member "tab" to be a htab_t.
(create_filename_seen_cache): Update.
(clear_filename_seen_cache, delete_filename_seen_cache): Update.
(filename_seen): Update.
* buildsym.c (end_symtab_1): Split it to ...
(end_symtab_get_static_block): ... this ...
(end_symtab_from_static_block): ... and this function.
(end_symtab, end_expandable_symtab): Call them.
* buildsym.h (end_symtab_get_static_block)
(end_symtab_from_static_block): New declarations.
* dwarf2read.c (process_full_comp_unit): New variable static_block.
Set its valid CU ranges.
gdb/testsuite/
* gdb.dwarf2/dw2-minsym-in-cu.S: New file.
* gdb.dwarf2/dw2-minsym-in-cu.exp: New file.
(filename_seen_cache): New struct.
(INITIAL_FILENAME_SEEN_CACHE_SIZE): New macro.
(create_filename_seen_cache): New function.
(clear_filename_seen_cache, delete_filename_seen_cache): New functions.
(filename_seen): Delete arg "first". New arg "cache". All callers
updated.
(output_source_filename_data): New struct.
(output_source_filename): Delete arg "first". New arg "data".
All callers updated.
(sources_info): Delete local "first". New locals "data", "cleanups".
Rewrite to use filename_seen_cache.
(add_partial_filename_data): Delete member "first". New member
"filename_seen_cache". All uses updated.
(make_source_files_completion_list): Rewrite to use
filename_seen_cache.
* elf64-s390.c: Include elf-s390-common.c.
(R_390_IRELATIVE): New reloc.
(elf_s390_reloc_type_lookup): Support R_390_IRELATIVE.
(RELA_ENTRY_SIZE): New macro.
(elf_s390_link_hash_entry): New fields ifunc_resolver_address and
*ifunc_resolver_section.
(struct plt_entry): New struct.
(struct elf_s390_obj_tdata): New field local_plt.
(elf_s390_local_plt): New macro.
(struct elf_s390_link_hash_table): New field irelifunc.
(ELF64): New macro.
(link_hash_newfunc): Initialize new fields.
(elf_s390_check_relocs): Handle IFUNC symbols.
(elf_s390_adjust_dynamic_symbol): Don't do anything for IFUNC
symbols.
(allocate_dynrelocs): Call s390_elf_allocate_ifunc_dyn_relocs for
IFUNC symbols.
(elf_s390_size_dynamic_sections): Handle IFUNC symbols.
(elf_s390_relocate_section): Likewise.
(elf_s390_finish_dynamic_symbol): Likewise.
(elf_s390_finish_dynamic_sections): Handle local IFUNC symbols.
(elf_s390_finish_ifunc_symbol): New function.
(elf_s390_gc_sweep_hook): Handle local plt entries.
(elf_backend_add_symbol_hook): Define.
* elf32-s390.c: See elf64-s390.c changes.
* elf-s390-common.c: New file.
* bfd-in2.h (BFD_RELOC_390_IRELATIVE): New enum field.
* libbfd.h (BFD_RELOC_390_IRELATIVE): New entry for
BFD_RELOC_390_IRELATIVE.
* reloc.c (BFD_RELOC_390_IRELATIVE): Document new relocation.
2012-07-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* elf/s390.h (START_RELOC_NUMBERS): Define R_390_IRELATIVE reloc.
2012-07-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* emulparams/elf_s390.sh (IREL_IN_PLT): Define.
* emulparams/elf64_s390.sh (IREL_IN_PLT): Define.
* gdb.dwarf2/dw2-anonymous-func.exp: Use
prepare_for_testing_full.
* gdb.dwarf2/dw2-basic.exp: Use prepare_for_testing_full.
* gdb.dwarf2/dw2-compressed.exp: Use prepare_for_testing_full.
* gdb.dwarf2/dw2-const.exp: Use prepare_for_testing_full.
* gdb.dwarf2/dw2-cu-size.exp: Use prepare_for_testing_full.
* gdb.dwarf2/dw2-intercu.exp: Use prepare_for_testing_full.
* gdb.dwarf2/dw2-intermix.exp: Use prepare_for_testing_full.
* gdb.dwarf2/dw2-linkage-name-trust.exp: Use
prepare_for_testing_full.
* gdb.dwarf2/dw2-producer.exp: Use prepare_for_testing_full.
* gdb.dwarf2/dw2-ref-missing-frame.exp: Use
prepare_for_testing_full.
* gdb.dwarf2/dw2-restore.exp: Use prepare_for_testing_full.
* gdb.dwarf2/dw2-strp.exp: Use prepare_for_testing_full.
* gdb.dwarf2/mac-fileno.exp: Use prepare_for_testing_full.
* gdbint.texinfo: Remove @syncodeindex directives that put all the
indices into a single node "Index". Instead, join function and
variable indices into a single index, separate from the concept
index. Requested in
http://sourceware.org/ml/gdb-patches/2012-07/msg00146.html.
(Top): Update the top-level menu: instead of one "Index" there are
now separate entries "Concept Index" and "Function and Variable
Index".
(Concept Index, Function and Variable Index): New nodes.
(Index): Node deleted.
* gdb.reverse/consecutive-precsave.exp: Use standard_output_file.
* gdb.reverse/finish-precsave.exp: Use standard_output_file.
* gdb.reverse/i386-precsave.exp: Use standard_output_file.
* gdb.reverse/machinestate-precsave.exp: Use standard_output_file.
* gdb.reverse/sigall-precsave.exp: Use standard_output_file.
* gdb.reverse/solib-precsave.exp: Use standard_output_file.
* gdb.reverse/step-precsave.exp: Use standard_output_file.
* gdb.reverse/until-precsave.exp: Use standard_output_file.
* gdb.reverse/watch-precsave.exp: Use standard_output_file.
* dwarf2read.c (dwarf2_per_objfile): New members n_type_unit_groups,
all_type_unit_groups, type_unit_groups, tu_stats.
(dwarf2_per_cu_data): Move "imported_symtabs" into new union "s".
All uses updated. Add type_unit_group to union "s".
(type_unit_group): New struct.
(IS_TYPE_UNIT_GROUP): New macro.
(abbrev_table): Delete unused member "section".
(dw2_do_instantiate_symtab): Early exit if type_unit_group.
(dw2_get_cu): Assert not used with type_unit_group.
(dw2_get_primary_cu): New function.
(dw2_build_type_unit_groups_reader): New function.
(dw2_build_type_unit_groups): New function.
(dw2_get_file_names): Assert not called on type units.
(dw2_map_symtabs_matching_filename): Call dw2_build_type_unit_groups.
Redo loop to iterate over type unit groups instead of type units.
(dw2_expand_symtabs_matching, dw2_map_symbol_filenames): Ditto.
(read_abbrev_offset): New function.
(init_cutu_and_read_dies): New arg "abbrev_table". All callers
updated.
(create_partial_symtab): New function.
(process_psymtab_comp_unit_reader): Assert not used with type units.
Call create_partial_symtab.
(process_psymtab_type_unit): Delete.
(hash_type_unit_group, eq_type_unit_group): New functions.
(allocate_type_unit_groups_table): New function.
(NO_STMT_LIST_TYPE_UNIT_PSYMTAB): New macro.
(NO_STMT_LIST_TYPE_UNIT_PSYMTAB_SIZE): New macro.
(create_type_unit_group, get_type_unit_group): New functions.
(tu_abbrev_offset): New struct.
(sort_tu_by_abbrev_offset): New function.
(add_type_unit_group_to_table): New function.
(build_type_unit_groups): New function.
(build_type_psymtabs_reader): New function.
(build_type_psymtab_dependencies): New function.
(build_type_psymtabs): Rewrite.
(scan_partial_symbols): Flag an error if a DW_TAG_imported_unit
is seen in a type unit.
(process_queue): Move symtab expansion debugging printfs here.
Call process_full_type_unit for type units.
(compute_symtab_includes): Assert not called for type units.
(process_cu_includes): Don't call compute_symtab_includes for
type units.
(process_full_type_unit): New function.
(process_imported_unit_die): Flag an error if called for type units.
(handle_DW_AT_stmt_list): Delete arg "want_line_info". All callers
updated. Assert not called for type units.
(read_file_scope): Call dwarf2_start_symtab.
(setup_type_unit_groups): New function.
(read_type_unit_scope): Rewrite.
(abbrev_table_read_table): Initialize abbrev_table->offset.
(abbrev_table_free_cleanup): New function.
(dwarf2_start_symtab): New function.
(load_full_type_unit): Assert not called for type unit groups.
All callers updated.
(start_symtab): Move most contents to ...
(restart_symtab): ... here. New function.
(reset_symtab_globals): New function.
(end_symtab_1): Renamed from end_symtab. New arg "expandable".
Call reset_symtab_globals.
(end_symtab, end_expandable_symtab): New functions.
(set_missing_symtab, augment_type_symtab): New functions.
* buildsym.h (end_expandable_symtab): Declare.
(augment_type_symtab, restart_symtab): Declare.
standard_output_file.
* gdb.mi/gdb2549.exp: Use standard_testfile.
* gdb.mi/gdb669.exp: Use standard_testfile.
* gdb.mi/gdb701.exp: Use standard_testfile.
* gdb.mi/gdb792.exp: Use standard_testfile.
* gdb.mi/mi-async.exp: Use standard_testfile.
* gdb.mi/mi-basics.exp: Use standard_testfile.
* gdb.mi/mi-break.exp: Use standard_testfile.
* gdb.mi/mi-cli.exp: Use standard_testfile.
* gdb.mi/mi-console.exp: Use standard_testfile.
* gdb.mi/mi-disassemble.exp: Use standard_testfile.
* gdb.mi/mi-eval.exp: Use standard_testfile.
* gdb.mi/mi-file-transfer.exp: Use standard_testfile.
* gdb.mi/mi-file.exp: Use standard_testfile.
* gdb.mi/mi-inheritance-syntax-error.exp: Use standard_testfile.
* gdb.mi/mi-logging.exp: Use standard_testfile.
* gdb.mi/mi-nonstop-exit.exp: Use standard_testfile.
* gdb.mi/mi-nonstop.exp: Use standard_testfile.
* gdb.mi/mi-ns-stale-regcache.exp: Use standard_testfile.
* gdb.mi/mi-nsintrall.exp: Use standard_testfile.
* gdb.mi/mi-nsmoribund.exp: Use standard_testfile.
* gdb.mi/mi-nsthrexec.exp: Use standard_testfile.
* gdb.mi/mi-pending.exp: Use standard_testfile,
standard_output_file.
* gdb.mi/mi-pthreads.exp: Use standard_testfile.
* gdb.mi/mi-read-memory.exp: Use standard_testfile.
* gdb.mi/mi-regs.exp: Use standard_testfile.
* gdb.mi/mi-return.exp: Use standard_testfile.
* gdb.mi/mi-reverse.exp: Use standard_testfile.
* gdb.mi/mi-simplerun.exp: Use standard_testfile.
* gdb.mi/mi-solib.exp: Use standard_testfile,
standard_output_file.
* gdb.mi/mi-stack.exp: Use standard_testfile.
* gdb.mi/mi-stepi.exp: Use standard_testfile.
* gdb.mi/mi-stepn.exp: Use standard_testfile.
* gdb.mi/mi-syn-frame.exp: Use standard_testfile.
* gdb.mi/mi-until.exp: Use standard_testfile.
* gdb.mi/mi-var-block.exp: Use standard_testfile.
* gdb.mi/mi-var-child-f.exp: Use standard_testfile.
* gdb.mi/mi-var-child.exp: Use standard_testfile.
* gdb.mi/mi-var-cmd.exp: Use standard_testfile.
* gdb.mi/mi-var-cp.exp: Use standard_testfile.
* gdb.mi/mi-var-display.exp: Use standard_testfile.
* gdb.mi/mi-var-invalidate.exp: Use standard_testfile,
standard_output_file.
* gdb.mi/mi-var-rtti.exp: Use standard_testfile.
* gdb.mi/mi-watch-nonstop.exp: Use standard_testfile.
* gdb.mi/mi-watch.exp: Use standard_testfile.
* gdb.mi/mi2-amd64-entry-value.exp: Use standard_testfile.
* gdb.mi/mi2-basics.exp: Use standard_testfile.
* gdb.mi/mi2-break.exp: Use standard_testfile.
* gdb.mi/mi2-cli.exp: Use standard_testfile.
* gdb.mi/mi2-console.exp: Use standard_testfile.
* gdb.mi/mi2-disassemble.exp: Use standard_testfile.
* gdb.mi/mi2-eval.exp: Use standard_testfile.
* gdb.mi/mi2-file.exp: Use standard_testfile.
* gdb.mi/mi2-pthreads.exp: Use standard_testfile.
* gdb.mi/mi2-read-memory.exp: Use standard_testfile.
* gdb.mi/mi2-regs.exp: Use standard_testfile.
* gdb.mi/mi2-return.exp: Use standard_testfile.
* gdb.mi/mi2-simplerun.exp: Use standard_testfile.
* gdb.mi/mi2-stack.exp: Use standard_testfile.
* gdb.mi/mi2-stepi.exp: Use standard_testfile.
* gdb.mi/mi2-syn-frame.exp: Use standard_testfile.
* gdb.mi/mi2-until.exp: Use standard_testfile.
* gdb.mi/mi2-var-block.exp: Use standard_testfile.
* gdb.mi/mi2-var-child.exp: Use standard_testfile.
* gdb.mi/mi2-var-cmd.exp: Use standard_testfile.
* gdb.mi/mi2-var-display.exp: Use standard_testfile.
* gdb.mi/mi2-watch.exp: Use standard_testfile.
* gdb.cp/ambiguous.exp: Use standard_testfile,
prepare_for_testing.
* gdb.cp/annota2.exp: Use standard_testfile, prepare_for_testing.
* gdb.cp/annota3.exp: Use standard_testfile, prepare_for_testing.
* gdb.cp/anon-ns.exp: Use standard_testfile.
* gdb.cp/anon-struct.exp: Use standard_testfile.
* gdb.cp/anon-union.exp: Use standard_testfile,
prepare_for_testing.
* gdb.cp/arg-reference.exp: Use standard_testfile,
prepare_for_testing.
* gdb.cp/bool.exp: Use standard_testfile, prepare_for_testing.
* gdb.cp/breakpoint.exp: Use standard_testfile,
prepare_for_testing.
* gdb.cp/bs15503.exp: Use standard_testfile, prepare_for_testing.
* gdb.cp/call-c.exp: Use standard_testfile, clean_restart,
standard_output_file.
* gdb.cp/casts.exp: Use standard_testfile, prepare_for_testing.
* gdb.cp/class2.exp: Use standard_testfile, prepare_for_testing.
* gdb.cp/classes.exp: Use standard_testfile, prepare_for_testing.
(test_static_members): Update.
* gdb.cp/cmpd-minsyms.exp: Use standard_testfile.
* gdb.cp/converts.exp: Use standard_testfile.
* gdb.cp/cp-relocate.exp: Use standard_testfile.
* gdb.cp/cpcompletion.exp: Use standard_testfile,
prepare_for_testing.
* gdb.cp/cpexprs.exp: Use standard_testfile, prepare_for_testing.
* gdb.cp/cplabel.exp: Use standard_testfile.
* gdb.cp/cplusfuncs.exp: Use standard_testfile,
prepare_for_testing.
* gdb.cp/ctti.exp: Use standard_testfile, prepare_for_testing.
* gdb.cp/derivation.exp: Use standard_testfile,
prepare_for_testing.
* gdb.cp/destrprint.exp: Use standard_testfile.
* gdb.cp/dispcxx.exp: Use standard_testfile.
* gdb.cp/exception.exp: Use standard_testfile,
prepare_for_testing.
* gdb.cp/expand-psymtabs-cxx.exp: Use standard_testfile.
* gdb.cp/extern-c.exp: Use standard_testfile,
prepare_for_testing.
* gdb.cp/formatted-ref.exp: Use standard_testfile,
prepare_for_testing.
* gdb.cp/fpointer.exp: Use standard_testfile.
* gdb.cp/gdb1355.exp: Use standard_testfile, prepare_for_testing.
* gdb.cp/gdb2384.exp: Use standard_testfile, clean_restart,
standard_output_file.
* gdb.cp/gdb2495.exp: Use standard_testfile, prepare_for_testing.
* gdb.cp/hang.exp: Use standard_testfile, prepare_for_testing.
* gdb.cp/infcall-dlopen.exp: Use standard_testfile,
standard_output_file.
* gdb.cp/inherit.exp: Use standard_testfile, prepare_for_testing.
(do_tests): Update.
* gdb.cp/koenig.exp: Use standard_testfile.
* gdb.cp/local.exp: Use standard_testfile, prepare_for_testing.
* gdb.cp/m-data.exp: Use standard_testfile, prepare_for_testing.
* gdb.cp/m-static.exp: Use standard_testfile,
prepare_for_testing.
* gdb.cp/mb-ctor.exp: Use standard_testfile, prepare_for_testing.
* gdb.cp/mb-inline.exp: Use standard_testfile,
prepare_for_testing.
* gdb.cp/mb-templates.exp: Use standard_testfile,
prepare_for_testing.
* gdb.cp/member-ptr.exp: Use standard_testfile,
prepare_for_testing.
* gdb.cp/meth-typedefs.exp: Use standard_testfile.
* gdb.cp/method.exp: Use standard_testfile, prepare_for_testing.
* gdb.cp/method2.exp: Use standard_testfile.
* gdb.cp/minsym-fallback.exp: Use standard_testfile,
standard_output_file.
* gdb.cp/misc.exp: Use standard_testfile, prepare_for_testing.
(do_tests): Update.
* gdb.cp/namespace-enum.exp: Use standard_testfile,
prepare_for_testing.
* gdb.cp/namespace-nested-import.exp: Use standard_testfile,
prepare_for_testing.
* gdb.cp/namespace.exp: Use standard_testfile,
prepare_for_testing.
* gdb.cp/nextoverthrow.exp: Use standard_testfile.
* gdb.cp/no-dmgl-verbose.exp: Use standard_testfile.
* gdb.cp/nsdecl.exp: Use standard_testfile, prepare_for_testing.
* gdb.cp/nsimport.exp: Use standard_testfile,
prepare_for_testing.
* gdb.cp/nsnested.exp: Use standard_testfile.
* gdb.cp/nsnoimports.exp: Use standard_testfile.
* gdb.cp/nsrecurs.exp: Use standard_testfile,
prepare_for_testing.
* gdb.cp/nsstress.exp: Use standard_testfile,
prepare_for_testing.
* gdb.cp/nsusing.exp: Use standard_testfile, prepare_for_testing.
* gdb.cp/operator.exp: Use standard_testfile.
* gdb.cp/oranking.exp: Use standard_testfile.
* gdb.cp/overload-const.exp: Use standard_testfile.
* gdb.cp/overload.exp: Use standard_testfile,
prepare_for_testing.
* gdb.cp/ovldbreak.exp: Use standard_testfile.
* gdb.cp/ovsrch.exp: Use standard_testfile.
* gdb.cp/paren-type.exp: Use standard_testfile.
* gdb.cp/pass-by-ref.exp: Use standard_testfile,
prepare_for_testing.
* gdb.cp/pr-1023.exp: Use standard_testfile, prepare_for_testing.
* gdb.cp/pr-1210.exp: Use standard_testfile, prepare_for_testing.
* gdb.cp/pr-574.exp: Use standard_testfile, prepare_for_testing.
* gdb.cp/pr10687.exp: Use standard_testfile, clean_restart.
* gdb.cp/pr10728.exp: Use standard_testfile,
standard_output_file.
* gdb.cp/pr12028.exp: Use standard_testfile.
* gdb.cp/pr9067.exp: Use standard_testfile, prepare_for_testing.
* gdb.cp/pr9167.exp: Use standard_testfile.
* gdb.cp/pr9631.exp: Use standard_testfile, prepare_for_testing.
* gdb.cp/printmethod.exp: Use standard_testfile,
prepare_for_testing.
* gdb.cp/psmang.exp: Use standard_testfile, clean_restart.
* gdb.cp/psymtab-parameter.exp: Use standard_testfile.
* gdb.cp/ptype-cv-cp.exp: Use standard_testfile.
* gdb.cp/re-set-overloaded.exp: Use standard_testfile,
standard_output_file.
* gdb.cp/readnow-language.exp: Use standard_testfile.
* gdb.cp/ref-params.exp: Use standard_testfile, build_executable.
(gdb_start_again): Use clean_restart.
* gdb.cp/ref-types.exp: Use standard_testfile,
prepare_for_testing.
* gdb.cp/rtti.exp: Use standard_testfile, prepare_for_testing.
* gdb.cp/shadow.exp: Use standard_testfile, prepare_for_testing.
* gdb.cp/smartp.exp: Use standard_testfile.
* gdb.cp/static-method.exp: Use standard_testfile.
* gdb.cp/static-print-quit.exp: Use standard_testfile.
* gdb.cp/temargs.exp: Use standard_testfile.
* gdb.cp/templates.exp: Use standard_testfile,
prepare_for_testing.
(do_tests): Update.
* gdb.cp/try_catch.exp: Use standard_testfile,
prepare_for_testing.
* gdb.cp/typedef-operator.exp: Use standard_testfile.
* gdb.cp/userdef.exp: Use standard_testfile, prepare_for_testing.
* gdb.cp/virtbase.exp: Use standard_testfile,
prepare_for_testing.
* gdb.cp/virtfunc.exp: Use standard_testfile,
prepare_for_testing.
(do_tests): Update.
* gdb.cp/virtfunc2.exp: Use standard_testfile,
prepare_for_testing.