Changes by Daniel Berlin <dan@cgsoftware.com>, to support
better parsing of const and volatile type expressions.
* c-exp.y (const_and_volatile, const_or_volatile_noopt,
const_or_volatile): New non-terminals.
(ptype): Use new rule for const_or_volatile.
(typebase): Use new rule for const_or_volatile_noopt.
* parser-defs.h (enum type_pieces): New values tp_const, tp_volatile.
* parse.c (follow_types): Handle tp_const and tp_volatile on the
type stack: call make_cv_type to create new const/volatile type.
* lib/gdb.exp (test_debug_format): New proc.
(setup_xfail_format): Use new proc test_debug_format.
* gdb.base/constvars.exp (local_compiler_xfail_check): New
proc; use new service proc test_debug_format.
Replace all other "gcc_compiled" tests with this test.
* gdb.base/volatile.exp (local_compiler_xfail_check): New
proc; use new service proc test_debug_format.
Replace all other "gcc_compiled" tests with this test.
Changes by Daniel Berlin <dan@cgsoftware.com>, to support
better parsing of const and volatile type expressions.
* c-exp.y (const_and_volatile, const_or_volatile_noopt,
const_or_volatile): New non-terminals.
(ptype): Use new rule for const_or_volatile.
(typebase): Use new rule for const_or_volatile_noopt.
* parser-defs.h (enum type_pieces): New values tp_const, tp_volatile.
* parse.c (follow_types): Handle tp_const and tp_volatile on the
type stack: call make_cv_type to create new const/volatile type.
no longer allocate here. Localise some vars to blocks where they
are used. Remove separate switch stmt for creating .got sec.
(elf_i386_adjust_dynamic_symbol): Correct a comment. Remove
redundant casts and aborts. Delay setting of vars until needed.
(allocate_dynrelocs): Remove redundant casts and aborts.
(elf_i386_size_dynamic_sections): Move comment.
(elf_i386_finish_dynamic_symbol): Move expressions out of function
calls.
(elf_i386_relocate_section): Likewise. Comment typo fix.
(elf_i386_finish_dynamic_sections): Migrate common code out of
switch statement.
(elf_backend_* defines): Sort.
request to kill the inferior and its child processes. Otherwise, the
inferior is not killed on HPUX 11.0. Removed the code that detaches the
child processes since we just killed them.
* input-file.c (input_file_open): When reading the
first line looking for #NO_APP, prepare for the possibility
of finding #APP instead. Also fix algorithm to allow
white-space to follow either #NO_APP or #APP directives.
(elf_backend_copy_indirect_symbol): Define.
(struct elf_i386_link_hash_entry): Rename "root" to "elf".
(struct elf_i386_link_hash_table): Likewise.
(link_hash_newfunc): Get rid of unnecessary casts.
(elf_i386_link_hash_table_create): Likewise.
(elf_i386_check_relocs): Initialise local_got_refcounts to 0.
Don't test input section SEC_READONLY here to try to avoid copy
relocs, and keep dyn_relocs regardleas of ELF_LINK_NON_GOT_REF.
(elf_i386_adjust_dynamic_symbol): Check output section SEC_READONLY
here to properly test whether we need copy relocs. Do so for weak
syms too.
* elf32-hppa (elf32_hppa_copy_indirect_symbol): New function.
(elf_backend_copy_indirect_symbol): Define.
(struct elf32_hppa_link_hash_table): Rename "root" to "elf".
(stub_hash_newfunc): Get rid of unnecessary casts.
(hppa_link_hash_newfunc): Likewise.
(elf32_hppa_check_relocs): Initialise local_got_refcounts to 0.
Don't test input section SEC_READONLY here to try to avoid copy
relocs, and keep dyn_relocs regardleas of ELF_LINK_NON_GOT_REF.
(elf32_hppa_adjust_dynamic_symbol): Check output section SEC_READONLY
here to properly test whether we need copy relocs. Do so for weak
syms too.
(options): Add --wide.
(usage, parse_args): Likewise.
(process_program_headers): Put each segment on a single line if
--wide is given.
(process_section_headers): Put each section on a single line if
--wide is given.
* doc/binutils.texi: Document it.
* NEWS: Likewise.
(elf_i386_link_hash_newfunc): Rename to link_hash_newfunc.
(elf_i386_grok_prstatus): Move before linker functions.
(elf_i386_grok_psinfo): Likewise.
(elf_i386_fake_sections): Move so that functions are ordered.
(elf_i386_reloc_type_class): Likewise. Comment function purpose.
code handling this option.
(LONG_BRANCH_VIA_PLT): Likewise.
(RELATIVE_DYNRELOCS): Define as zero.
(struct elf32_hppa_dyn_reloc_entry): Add "sec", and
"pc_count" fields. Remove "section" field.
(elf32_hppa_link_hash_entry): Rename reloc_entries to dyn_relocs.
(elf32_hppa_check_relocs): Don't allocate space for dynamic
relocs here. Instead, record all needed dynamic relocs via
dyn_relocs and local_dynrel. Cache pointer to "sreloc" section
in elf_section_data.
(elf32_hppa_gc_sweep_hook): Sweep dyn_relocs and local_dynrel.
(allocate_plt_and_got_and_discard_relocs): Rename to
allocate_dynrelocs. Allocate rather than discarding dyn relocs.
(readonly_dynrelocs): New function.
(elf32_hppa_size_dynamic_sections): Mark output_bfd unused.
Call readonly_dynrelocs to determine need for DT_TEXTREL.
Rename "i" to "ibfd". Allocate space for local dyn relocs.
(elf32_hppa_relocate_section): Make use of cached sreloc.
(elf32_hppa_reloc_type_class): New function.
(elf_backend_reloc_type_class): Define.
and "sreloc" fields.
* elf32-i386.c (struct elf_i386_dyn_relocs): Add "sec", and
"pc_count" fields. Remove "section" field.
(elf_i386_check_relocs): Don't set DF_TEXTREL here. Don't
allocate space for dynamic relocs here. Instead, record all
needed dynamic relocs via dyn_relocs and local_dynrel. Cache
pointer to "sreloc" section in elf_section_data.
(elf_i386_gc_sweep_hook): Sweep dyn_relocs and local_dynrel.
(allocate_plt_and_got_and_discard_relocs): Rename to
allocate_dynrelocs. Allocate rather than discarding dyn relocs.
(readonly_dynrelocs): New function.
(elf_i386_size_dynamic_sections): Call readonly_dynrelocs.
Rename "i" to "ibfd". Allocate space for local dyn relocs.
(elf_i386_relocate_section): Make use of cached sreloc.