(ELF_TC_SPECIAL_SECTIONS): Drop .IA_64.unwind and .IA_64.unwind_info
(they're now handled via ia64_elf_section_type.
* config/tc-ia64.c (unwind): New members saved_text_seg,
saved_text_subseg, and force_unwind_entry.
(optimize_unw_records): New function to optimize away unnecessary
unwind directives.
(ia64_elf_section_type): New function.
(output_unw_records): Generate unwind info only if the size is
non-zero or if it's forced for some other reason (e.g.,
handlerdata or a personality routine).
(generate_unwind_image): Don't switch back to previous
section---stay inside the unwind info section instead so that
handlerdata that may follow goes into the right place.
(dot_handlerdata): Force generation of unwind entry and save the
current active text segment before generating unwind image.
(dot_unwentry): Force generation of unwind entry.
(dot_personality): Ditto.
(dot_endp): Generate unwind table entry only if there is
some unwind info or the unwind entry was forced.
* config/tc-ia64.c (make_unw_section_name): New macro to form
unwind section name.
(generate_unwind_image): Add "text_name" argument. Use it to
form unwind section name.
(dot_handlerdata): Determine current segment (section) name and
pass it to generate_unwind_image().
(dot_endp): Determine current segment (section) name and use
it to determine the appropriate unwind section name.
(ia64_md_do_align): Add missing ATTRIBUTE_UNUSED declarations to
n, fill, and max arguments.
true if section name is an unwind table section name.
(elfNN_ia64_additional_program_headers): Count each unwind section
separately.
(elfNN_ia64_modify_segment_map): Install one unwind program header
for each unwind separate section. Note: normally the linker
script merges the unwind sections that go into a single segment,
so this still generates at most one unwind program header per
segment.
* elfxx-ia64.c (elfNN_ia64_section_from_shdr): Accept any section
name for SHT_IA_64_UNWIND, not just .IA_64.unwind.
(elfNN_ia64_fake_sections): Mark sections with names that start
with .IA_64.unwind but not with .IA_64.unwind_info as an IA-64
unwind section.
* elfxx-ia64.c (elfNN_ia64_final_write_processing): New function.
Use it to make sh_info in unwind section point to the text section
it applies to.
* elfxx-ia64.c (elfNN_ia64_dynamic_symbol_p): Only hidden and
internal symbols are not dynamic.
* elf64-alpha.c (alpha_elf_dynamic_symbol_p): Likewise.
allocated buffer.
(save_inferior_pid): Restore the PID from that tempoary
buffer. Delete the buffer.
* utils.c (make_cleanup_close, do_close_cleanup): Ditto for FD.
Submitted by Paul Hilfinger (hilfingr@gnat.com)
and Andrei Petrov (and@genesyslab.com).
* findvar.c: Buffers of size MAX_REGISTER_RAW_SIZE or REGISTER_BYTES
must be allocated dynamically, since these are no longer constants.
* infcmd.c: Ditto.
* regcache.c: Ditto.
* remote.c: Ditto.
* sol-thread.c: Ditto.
* valops.c: Ditto.
* config/sparc/sun4sol2.mh (MH_CFLAGS): Add -I/usr/include/v9, as a
work-around for a missing Sun header file in solaris for sparc64.
issue a message about truncation unless it exceeds the length of
an address, not the length of a pointer. This is because what the
user gives us is an address, not a pointer, and we will ultimately
convert it (via ADDRESS_TO_POINTER) to a pointer, not truncate it
to a pointer. This allows things like "print *(int *)0x01000234"
to work without generating a misleading message on a target having
two byte pointers and four byte addresses.