PR binutils/9945
* elf.c (assign_section_numbers): Generate symbol table if there
is any relocation in output.
(_bfd_elf_compute_section_file_positions): Likewise.
Nick Clifton [Fri, 13 Mar 2009 11:34:43 +0000 (11:34 +0000)]
PR 9934
* elf-bfd.h (NUM_SHDR_ENTRIES): Cope with an empty section.
* elflink.c (elf_link_read_relocs_from_section): Use
NUM_SHDR_ENTRIES. Gracefully handle the case where there are
relocs but no symbol table.
* elf32-arm.c (elf32_arm_check_relocs): Likewise.
Nick Clifton [Fri, 13 Mar 2009 09:00:59 +0000 (09:00 +0000)]
* lib/ld-lib.exp (run_dump_test): Add verbose to list of globals.
Replace call to verbose_eval with a test of verbose level. If
greater than 2 always dump the contents of the dumpfile. If equal
to 2 only dump the contents if the regexp diff failed.
(proc verbose_eval): Delete.
Joel Brobecker [Fri, 13 Mar 2009 02:30:55 +0000 (02:30 +0000)]
* ada-lang.c (ada_evaluate_subexp): Merge case BINOP_REM and
BINOP_MOD cases with the handling of case BINOP_DIV and BINOP_MUL.
Remove useless op value checks when EVAL_AVOID_SIDE_EFFECTS.
Joel Brobecker [Fri, 13 Mar 2009 02:24:38 +0000 (02:24 +0000)]
* gdb.ada/ptype_arith_binop.exp: Remove some commented-out code
that was checked in by mistake. Remove loading of ada.exp, since
this is not necessary in this case.
Joel Brobecker [Fri, 13 Mar 2009 00:57:52 +0000 (00:57 +0000)]
* ada-lang.c (ada_evaluate_subexp) [OP_VAR_VALUE]: For tagged
types, if we are unable to determine the actual symbol type
from its tag, then use the static approximation instead.
Joel Brobecker [Thu, 12 Mar 2009 23:41:16 +0000 (23:41 +0000)]
Fix crash printing packed record with packed array.
* ada-lang.c (ada_modulus_from_name): New function.
(ada_modulus): In the case where the type length is bigger than
the size of the type used to hold the bounds, try determining
the modulus from the type name.
(ada_value_primitive_packed_val): Fix bug in the computation of
ntarg causing an out-of-buffer invalid access.
Joel Brobecker [Thu, 12 Mar 2009 17:44:29 +0000 (17:44 +0000)]
Fix a build failure on AIX introduced after a change in the profile
of some of the "methods" in the target_ops structure.
* aix-thread.c: Add missing target_ops parameter throughout.
Implement Ada task switching on AIX.
* aix-thread.c (aix_thread_get_ada_task_ptid): New function.
(init_aix_thread_ops): Set aix_thread_ops.to_get_ada_task_ptid.
* breakpoint.c (bpstat_check_breakpoint_conditions): Use
value_mark and value_free_to_mark.
* objfiles.c (free_objfile): Call objfile_free_data before
freeing the BFD.
* bfd.c (BFD_DETERMINISTIC_OUTPUT): New flag.
* bfd-in2.h: Regenerate.
* archive.c (bfd_ar_hdr_from_filesystem): If BFD_DETERMINISTIC_OUTPUT
flag is set, use 0 for uid, gid, and timestamp, and use 0644 for file
mode.
(bsd_write_armap): Likewise.
(_bfd_archive_bsd_update_armap_timestamp): If BFD_DETERMINISTIC_OUTPUT
flag is set, do nothing.
(coff_write_armap): If BFD_DETERMINISTIC_OUTPUT flag is set, use 0
for timestamp.
* ar.c (deterministic): New global variable.
(main): Recognize new 'D' option, which enables 'deterministic mode'.
(usage): Document new 'D' option.
(write_archive): Set BFD_DETERMINISTIC_OUTPUT in output archive's
flags if deterministic mode was requested.
* doc/binutils.texi (ar): Document deterministic mode ('D' option).
[binutils/testsuite/ChangeLog]
2009-03-11 Chris Demetriou <[email protected]>
* binutils-all/ar.exp (deterministic_archive): New test.
* write.c (write_object_file) [!WORKING_DOT_WORD]: When patching
the jump table for multiple overflowing entries with the same
target, handle base symbols being different.
(relax_segment) <case rs_broken_word, second loop>: Whenever a
single entry overflows, arrange to redirect all entries with the
same target.
* solib.c (solib_contains_address_p): New function.
(solib_name_from_address): Use it.
* printcmd.c (display_uses_solib_p): Use it.
* solib.h (solib_contains_address_p): Declare it.
Jan Kratochvil [Mon, 9 Mar 2009 18:53:48 +0000 (18:53 +0000)]
PR gdb/9873:
* dwarf2read.c (dwarf_decode_macros): New variable `at_commandline'.
Move the variable `macinfo_type' out of the loop. Create a new
processing pass before the current one to pre-create `current_file'.
New complaint on misplaced zero/non-zero definitions/includes.
Skip first DW_MACINFO_start_file with `at_commandline' set.
* windows-nat.c (dr): Redefine to use largest possible integer which holds a
pointer.
(cygwin_set_dr): Avoid coercion.
* windows-nat.c (windows_create_inferior): implement --tty handling on
non-cygwin.
bfd/
* elf32-arm.c (group_sections): Take next section size into
account before accepting to group it.
testsuite/
* ld-arm/arm-elf.exp: Add new farcall-group-limit test.
* ld-arm/farcall-group-limit.d: New file.
* ld-arm/farcall-group3.s: New file.
* ld-arm/farcall-group4.s: New file.
* printcmd.c (do_one_display): Reparse exp_string.
(display_uses_solib_p): New function.
(clear_dangling_display_expressions): New function.
(_initialize_printcmd): Add observer.
* solib.c (no_shared_libraries): Swap order of calls to
clear_solib and objfile_purge_solibs.
Joel Brobecker [Thu, 5 Mar 2009 23:37:20 +0000 (23:37 +0000)]
Get rid of the global "base_target" and use "find_target_beneath"
to find the underlying target.
* dec-thread.c (base_target): Delete.
(enable_dec_thread): Remove assignement to base_target.
(dec_thread_detach, dec_thread_wait, dec_thread_wait)
(dec_thread_fetch_registers, dec_thread_store_registers)
(dec_thread_mourn_inferior, dec_thread_pid_to_str):
Update the function profile if necessary.
Use find_target_beneath to call the same method but from
the underlying target, removing the need for "base_target".
* dec-thread.c (dec_thread_get_regsets, dec_thread_set_regsets):
Fix a copy/paste error in a few debug traces...
* solib-osf.c (init_so): Use a simpler method for computing
the size of lm_info structure. This also gets rid of warning
emitted by the compiler.
Pedro Alves [Thu, 5 Mar 2009 23:11:11 +0000 (23:11 +0000)]
* gdb.texinfo (Background Execution): Better describe the set
target-async command.
(Maintenance Commands): Delete description of the `maint set/show
linux-async' and `maint set/show remote-async' commands.
Pedro Alves [Wed, 4 Mar 2009 22:50:59 +0000 (22:50 +0000)]
* inferior.h (notice_new_inferior): Declare.
* infcmd.c (notice_new_inferior): New.
* remote.c (remote_add_inferior, remote_add_thread): New.
(notice_new_inferiors): Rename to...
(remote_notice_new_inferior): ... this. Add RUNNING argument.
Use remote_add_thread instead of add_thread, passing it the
RUNNING argument. Add an inferior with remote_add_inferior. If
we just learned about an inferior, call notice_new_inferior.
(record_currthread): Adjust.
(remote_threads_info): Adjust to use remote_notice_new_inferior.
(remote_start_remote, extended_remote_attach_1): Use remote_add_inferior.
(process_stop_reply): Adjust. Call remote_notice_new_inferior
after handling expedited registers and watchpoint state.
(extended_remote_create_inferior_1): Use remote_add_inferior.
Nick Clifton [Wed, 4 Mar 2009 16:15:43 +0000 (16:15 +0000)]
* config/tc-alpha.c (alpha_prologue_label): Only define for ELF
based targets.
(s_alpha_comm): Only define "temp" and "log_align" local variables
for EVAX targets.
Alan Modra [Wed, 4 Mar 2009 05:50:50 +0000 (05:50 +0000)]
include/elf/
* ppc.h (R_PPC_TLSGD, R_PPC_TLSLD): Add new relocs.
* ppc64.h (R_PPC64_TLSGD, R_PPC64_TLSLD): Add new relocs.
bfd/
* reloc.c (BFD_RELOC_PPC_TLSGD, BFD_RELOC_PPC_TLSLD): New.
* section.c (struct bfd_section): Add has_tls_get_addr_call.
(BFD_FAKE_SECTION): Init new flag.
* ecoff.c (bfd_debug_section): Likewise.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
* elf32-ppc.c (ppc_elf_howto_raw): Add R_PPC_TLSGD and R_PPC_TLSLD.
(ppc_elf_reloc_type_lookup): Handle new relocs.
(ppc_elf_check_relocs): Set has_tls_get_addr_call on finding such
without marker relocs.
(ppc_elf_tls_optimize): Allow out-of-order __tls_get_addr relocs
if section has no old-style calls.
(ppc_elf_relocate_section): Set tls_mask for non-tls relocs too.
Don't try to optimize new-style __tls_get_addr call when handling
arg setup relocs. Instead do so for R_PPC_TLSGD and R_PPC_TLSLD
relocs.
* elf64-ppc.c (ppc64_elf_howto_raw): Add R_PPC64_TLSGD, R_PPC64_TLSLD.
(ppc64_elf_reloc_type_lookup): Handle new relocs.
(ppc64_elf_check_relocs): Set has_tls_get_addr_call on finding such
without marker relocs.
(ppc64_elf_tls_optimize): Allow out-of-order __tls_get_addr relocs
if section has no old-style calls. Set toc_ref for new relocs as
appropriate.
(ppc64_elf_relocate_section): Set tls_mask for non-tls relocs too.
Don't try to optimize new-style __tls_get_addr call when handling
arg setup relocs. Instead do so for R_PPC_TLSGD and R_PPC_TLSLD
relocs.
gas/
* config/tc-ppc.c (ppc_elf_suffix): Error if ppc32 tls got relocs
have non-zero addend.
(md_assemble): Parse args of __tls_get_addr calls.
(md_apply_fix): Handle BFD_RELOC_PPC_TLSGD and BFD_RELOC_PPC_TLSLD.
ld/testsuite/
* ld-powerpc/tlsmark.s, * ld-powerpc/tlsmark.d: New test.
* ld-powerpc/tlsmark32.s, * ld-powerpc/tlsmark32.d: New test.
* ld-powerpc/powerpc.exp: Run them.
Alan Modra [Wed, 4 Mar 2009 02:10:34 +0000 (02:10 +0000)]
bfd/
PR 6768
* configure.in: Test for ld --as-needed support. Link shared
libbfd against libm.
* configure: Regenerate.
opcodes/
PR 6768
* configure.in: Test for ld --as-needed support. Link shared
libopcodes against libm.
* configure: Regenerate.