* config/tc-mips.c (append_insn): Use fix_new rather than fix_new_exp
to build the second and third fixups for a composite relocation.
(macro_read_relocs): New function.
(macro_build): Use it.
(s_cpsetup): Pass all three composite relocation codes to macro_build.
Simplify fragging code accordingly.
(s_gpdword): Use fix_new rather than fix_new_exp for the second part
of the composite relocation. Set fx_tcbit in both fixups.
* m32r-tdep.c (decode_prologue): Support functions written
in assembler language. Recognize trap instructions as the
end of prologue.
(m32r_frame_unwind_cache): Ditto.
(m32r_skip_prologue): Extend search limit. Quit analyzing
prologue if pc's location is not readable.
* Makefile.in (.l.c): Do conversions of names of alloc and free
functions that are done for .y.c files, plus special one
for yy_flex_realloc. Also, correct missing-file tests here.
* ada-lex.l (malloc, free): Remove macros.
(resize_tempbuf): Use "realloc"; rely on sed changes to convert to
xrealloc.
(ada_flex_use): Dummy definition to remove warnings about unused
functions.
* ada-exp.y (dummy_string_to_ada_operator): Temporary definition
to suppress warning.
* sh-tdep.c (sh_return_value_nofpu): New function, implementing
RETURN_VALUE.
(sh_return_value_fpu): Ditto for CPUs with FPU.
(sh_gdbarch_init): Remove STORE_RETURN_VALUE, EXTRACT_RETURN_VALUE,
RETURN_VALUE_ON_STACK and USE_STRUCT_CONVENTION throughout.
Install sh_return_value_nofpu resp. sh_return_value_fpu as
RETURN_VALUE functions.
* dwarf2read.c (REF_HASH_SIZE): Move earlier.
(die_ref_table): Remove.
(struct dwarf2_cu): Add DIES, DEPENDENCIES, and DIE_REF_TABLE.
(struct dwarf2_per_cu_data): Add PSYMTAB. Add a comment describing
the usage of this type.
(struct dwarf2_per_objfile): Update comment for ALL_COMP_UNITS.
(struct dwarf2_pinfo, PST_PRIVATE, DWARF_INFO_OFFSET): Remove.
(struct dwarf2_queue_item, dwarf2_queue, dwarf2_queue_tail): New.
(dwarf2_create_include_psymtab): Update comment.
(find_partial_die): Remove third argument. Remove unreachable call
to error ().
(dwarf2_find_containing_comp_unit): Update comments. Change one
assertion to an error. Remove an unreachable error.
(dwarf2_find_comp_unit): Update comments.
(type_at_offset): Remove dead code.
(make_cleanup_free_die_list, dwarf2_empty_hash_tables): Remove.
(store_in_ref_table): Add CU argument.
(follow_die_ref): Take DIE, attribute, and CU arguments. Handle
inter-compilation-unit references.
(load_full_comp_unit, process_full_comp_unit): New functions, based
on psymtab_to_symtab_1.
(psymtab_to_symtab_1): Use them.
(dwarf2_add_dependence): New function.
(dwarf2_build_psymtabs_hard): Set the psymtab in per_cu. Always create
a per_cu structure, and save it in READ_PSYMTAB_PRIVATE.
(partial_die_parent_scope, guess_structure_name): Update for changes
to find_partial_die.
(dwarf2_psymtab_to_symtab): Initialize dwarf2_per_objfile here.
(queue_comp_unit, process_queue, dwarf2_release_queue): New.
(read_comp_unit): Don't call dwarf2_empty_hash_tables.
(read_die_and_children): Update call to store_in_ref_table.
(do_free_die_list_cleanup): Remove.
(fixup_partial_die): Update for changes to find_partial_die.
(read_full_die): Handle queueing absolute references.
(read_attribute_value): Use DW_ADDR for all DW_FORM_ref* forms.
(dwarf2_attr, die_specification, die_type)
(die_containing_type, dwarf2_extension): Update calls to
follow_die_ref.
(dump_die): Update DW_FORM_ref* handling.
(dwarf2_get_ref_die_offset): Likewise.
(free_one_comp_unit): Release the dies list.
(dwarf2_mark_helper): New function.
(dwarf2_mark): Use it.
* ldlang.c (compare_section): New function to compare 2
sections with different sorting schemes.
(wild_sort): Updated. Use compare_section.
(update_wild_statements): New function.
(lang_process): Call update_wild_statements before
map_input_to_output_sections.
Jakub Jelinek [Mon, 4 Oct 2004 13:41:15 +0000 (13:41 +0000)]
* ldgram.y (DATA_SEGMENT_RELRO_END): Add one argument.
* scripttempl/elf.sc (DATA_SEGMENT_RELRO_END): Add 0 as first
argument.
(DATA_SEGMENT_RELRO_GOTPLT_END): Pass $SEPARATE_GOTPLT as first
and . as second argument.
(GOTPLT): Move $DATA_SEGMENT_RELRO_GOTPLT_END before the section.
* ldexp.c (fold_unary): Remove DATA_SEGMENT_RELRO_END handling here.
(fold_binary): Add it here. Insert padding to make relro_end
COMMONPAGESIZE bytes aligned. For DATA_SEGMENT_ALIGN in
exp_dataseg_relro_adjust phase just use previously computed
exp_data_seg.base.
* ldlang.c (lang_size_sections): Set exp_data_seg.base for
relro_adjust here. Call lang_size_sections_1 once more if there
was too big padding at DATA_SEGMENT_RELRO_END.
* ld.texinfo (DATA_SEGMENT_RELRO_END): Add documentation.
* Makefile.in (.l.c): Modify rule for compatibility with recent
versions of flex, and remove most command-line options.
* ada-lex.l: Add %options line in place of -I -i and -s command-line
options.
Andrew Cagney [Fri, 1 Oct 2004 16:12:26 +0000 (16:12 +0000)]
2004-10-01 Andrew Cagney <cagney@gnu.org>
* target.c (xfer_using_stratum): Change return type to LONGEST.
On each iteration offset, readbuf and writebuf.
* inf-ptrace.c (inf_ptrace_xfer_partial): Simplify computation of
partial_length, and read/modify/write predicate, update comments.
Pass buffer.word to ptrace write.
Alan Modra [Fri, 1 Oct 2004 00:51:37 +0000 (00:51 +0000)]
* elf-bfd.h (struct eh_cie_fde): Add need_relative and
need_lsda_relative.
* elf-eh-frame.c (_bfd_elf_eh_frame_section_offset): Set
need_relative or need_lsda_relative if we are processing an
offset for a reloc on a FDE initial loc or LSDA field
respectively.
(_bfd_elf_write_section_eh_frame): Test need_relative and
need_lsda_relative in place of corresponding make_* field
when deciding to use pc-relative encodings.
Mark Kettenis [Thu, 30 Sep 2004 20:52:59 +0000 (20:52 +0000)]
* m88kbsd-nat.c: Include "target.h" and "inf-ptrace.h".
(m88kbsd_fetch_inferior_registers): Rename from
fetch_inferior_registers. Make static.
(m88kbsd_store_inferior_registers): Rename from
store_inferior_registers. Make static.
(_initialize_m88kbsd_nat): New prototype and function.
* config/m88k/obsd.mh (NATDEPFILES): Remove infptrace.o and
inftarg.o. Add inf-child.o and inf-ptrace.o.
(NAT_FILE): Remove.
* Makefile.in (m88kbsd-nat.o): Update dependencies.
Nick Clifton [Thu, 30 Sep 2004 17:19:19 +0000 (17:19 +0000)]
emultempl/pe.em (gld_${EMULATION_NAME}_set_symbols): Generate correct base
address for position independant executables.
pe-dll.c (pe_dll_fill_sections): Don't mark position independant executables
as DLLs.
Andrew Cagney [Thu, 30 Sep 2004 16:18:57 +0000 (16:18 +0000)]
2004-09-30 Andrew Cagney <cagney@gnu.org>
* inf-ptrace.c (inf_ptrace_target): Do not set to_xfer_memory.
(inf_ptrace_xfer_memory): Delete.
* target.c (target_xfer_partial_p, xfer_using_stratum): New.
(target_read_memory, target_write_memory): Use xfer_using_stratum
when target_xfer_partial_p.
(debug_target): Move to start of file.
(target_read_memory_partial, target_write_memory_partial): Use
to_xfer_partial when target_xfer_partial_p.
Andrew Cagney [Thu, 30 Sep 2004 15:47:30 +0000 (15:47 +0000)]
2004-09-30 Andrew Cagney <cagney@gnu.org>
* inf-ptrace.c (inf_ptrace_xfer_partial): Replace call to
inf_ptrace_xfer_memory with equivalent code.
* inftarg.c (child_xfer_partial): When performing a write, pass
writebuf to child_xfer_memory.