* arm.cc (Arm_relocate_functions::extract_arm_movw_movt_addend):
New function.
(Arm_relocate_functions::insert_val_arm_movw_movt): New function.
(Arm_relocate_functions::extract_thumb_movw_movt_addend): New
function.
(Arm_relocate_functions::insert_val_thumb_movw_movt): New
function.
(Arm_relocate_functions::movw_abs_nc): New function.
(Arm_relocate_functions::movt_abs): New function.
(Arm_relocate_functions::thm_movw_abs_nc): New function.
(Arm_relocate_functions::thm_movt_abs): New function.
(Scan::local): Handle R_ARM_MOVW_ABS_NC, R_ARM_MOVT_ABS,
R_ARM_THM_MOVW_ABS_NC, R_ARM_THM_MOVT_ABS.
(Scan::global): Likewise.
(Relocate::relocate): Likewise.
(Relocatable_size_for_reloc::get_size_for_reloc): Likewise.
Nathan Sidwell [Wed, 7 Oct 2009 07:25:36 +0000 (07:25 +0000)]
ld/
* ldlang.c (lang_new_phdr): Check PHDRS and FILEHDR in loadable
segments do not appear after a different loadable segment.
* ld.texinfo (PHDRS): Document order of processing segments.
Document where PHDRS and FILEHDR may appear.
Alan Modra [Wed, 7 Oct 2009 05:13:53 +0000 (05:13 +0000)]
PR gas/2117
* config/tc-ia64.c (parse_operand): Use expression rather than
expression_and_evalute.
(parse_operand_and_eval): New function. Replace all uses of
parse_operand outside of parse_operands with this function.
(parse_operans_maybe_eval): New function. Replace uses of
parse_operand in parse_operands, except for the dummy, with
this function.
* i386.cc (class Target_i386::Relocate): Add ldo_addrs_ field.
(Target_i386::Relocate::relocate_tls): Call fix_up_ldo before
changing local_dynamic_type_ from LOCAL_DYNAMIC_NONE. When
handling R_386_TLS_LDO_32, if local_dynamic_type_ is NONE, push
the address on ldo_addrs_.
(Target_i386::Relocate::fix_up_ldo): New function.
Nick Clifton [Mon, 5 Oct 2009 13:14:55 +0000 (13:14 +0000)]
* opc2c.c: Include "libiberty.h" and <errno.h>.
(orig_filename): Constify.
(dump_lines): Fix line number directive.
(main): Set orig_filename to basename of input file. Use
xstrerror.
* Makefile.am (rx-dis.lo): Remove explicit dependencies.
($(srcdir)/rx-decode.c): Use @MAINT@. Use $(EXEEXT_FOR_BUILD)
instead of $(EXEEXT).
(opc2c$(EXEEXT_FOR_BUILD)): Renamed from opc2c$(EXEEXT) and use
$(LINK_FOR_BUILD). Link with libiberty.
(MOSTLYCLEANFILES): Add opc2c$(EXEEXT_FOR_BUILD).
(MAINTAINERCLEANFILES): Add $(srcdir)/rx-decode.c.
* Makefile.in: Regenerated.
* rx-decode.c: Regenerated.
Pedro Alves [Fri, 2 Oct 2009 16:51:04 +0000 (16:51 +0000)]
* linux-nat.c (TRAP_IS_SYSCALL, TRAP_REMOVE_SYSCALL_FLAG): Delete.
(SYSCALL_SIGTRAP): New.
(status_to_str): Adjust.
(get_pending_status): Pending events in lp->waitstatus don't map
to any signal. Simplify.
(linux_handle_syscall_trap): New.
(linux_handle_extended_wait): When handling PTRACE_EVENT_CLONE
events, use linux_ops->to_resume instead of direct ptrace with
PTRACE_CONT. Remove all TRAP_IS_SYSCALL handling.
(wait_lwp): Handle syscall traps with linux_handle_syscall_trap,
and clear the sysgood bit.
(status_callback): Make it clearer and add comments.
(cancel_breakpoints_callback): Ignore if LP has waitstatus set.
(linux_nat_filter_event): Handle syscall traps with
linux_handle_syscall_trap, and clear the sysgood bit. Move the
check for storing siginfo to after handling extended statuses and
syscall traps. Store status in the lwp object.
(linux_wait_1): Don't swap the pending status out of the lwp
object until after deciding we found an lwp with an interesting
event. Requeue a new pending signal if we find one while getting
rid or a pending SIGSTOP we sent ourselves. Don't clear the
sysgood bit here.
* infrun.c (deal_with_syscall_event): Rename to ...
(handle_syscall_event): ... this. Always context switch and set
stop_pc, even if not catching the syscall. If not catching the
syscall, always resume with keep_going.
(handle_inferior_event): Adjust.
Pierre Muller [Thu, 1 Oct 2009 21:33:24 +0000 (21:33 +0000)]
* src/gdb/testsuite/gdb.base/shr1.c: Use %p in format string.
* src/gdb/testsuite/gdb.base/unload.c: Avoid warning in fprintf.
* src/gdb/testsuite/gdb.base/watchpoint-solib.c: Idem.
Ulrich Weigand [Thu, 1 Oct 2009 13:09:56 +0000 (13:09 +0000)]
bfd/
* elf32-spu.c (spu_elf_auto_overlay): Insert icache linker script
after .toe instead of before .text section. Set the LMA of all
overlay sections to their icache IA address.
(spu_elf_find_overlays): Determine icache set id without reference
to the LMA.
ld/testsuite/
* ld-spu/icache1.d: Update to new section layout.
Doug Kwan [Thu, 1 Oct 2009 00:58:38 +0000 (00:58 +0000)]
2009-09-30 Doug Kwan <dougkwan@google.com>
* arm.cc (Target_arm::may_need_copy_reloc): Check for THUMB function
symbol and call Symbol::may_need_copy_reloc to determine if
a copy reloc is needed.
* copy-relocs.cc (Copy_relocs::need_copy_reloc): Return false if -z
nocopyreloc is given in command line.
(Copy_relocs::emit_copy_reloc): Assert that -z nocopyreloc is not
given in command line.
* i386.cc (Target_i386::may_need_copy_reloc): Remove.
(Target_i386::Scan::global): Use Symbol::may_need_copy_reloc instead
of the removed Target_i386::may_need_copy_reloc.
* options.h (copyreloc): New option with default value false.
* powerpc.cc (Target_powerpc::may_need_copy_reloc): Remove.
(Target_powerpc::Scan::global): Use Symbol::may_need_copy_reloc
instead of the removed Target_powerpc::may_need_copy_reloc.
* sparc.cc (Target_powerpc::may_need_copy_reloc): Remove.
(Target_sparc::Scan::global): Use Symbol::may_need_copy_reloc
instead of the removed Target_sparc::may_need_copy_reloc.
* symtab.h (Symbol::may_need_copy_reloc): New method definition.
* x86_64.cc (Target_powerpc::may_need_copy_reloc): Remove.
(Target_x86_64::Scan::global): Use Symbol::may_need_copy_reloc
instead of the removed Target_x86_64::may_need_copy_reloc.
Jan Kratochvil [Tue, 29 Sep 2009 19:24:46 +0000 (19:24 +0000)]
gdb/testsuite/
* gdb.base/breakpoint-shadow.exp: Move the ia64 part into ...
* gdb.arch/ia64-breakpoint-shadow.exp: ... a new file, with new tests.
* gdb.arch/ia64-breakpoint-shadow.S: New file.
binutils
* readelf.c: Add support for RX target.
* MAINTAINERS: Add DJ and NickC as maintainers for RX.
gas
* Makefile.am: Add RX target.
* configure.in: Likewise.
* configure.tgt: Likewise.
* read.c (do_repeat_with_expander): New function.
* read.h: Provide a prototype for do_repeat_with_expander.
* doc/Makefile.am: Add RX target documentation.
* doc/all.texi: Likewise.
* doc/as.texinfo: Likewise.
* Makefile.in: Regenerate.
* NEWS: Mention support for RX architecture.
* configure: Regenerate.
* doc/Makefile.in: Regenerate.
* config/rx-defs.h: New file.
* config/rx-parse.y: New file.
* config/tc-rx.h: New file.
* config/tc-rx.c: New file.
* doc/c-rx.texi: New file.
gas/testsuite
* gas/rx: New directory.
* gas/rx/*: New set of test cases.
* gas/elf/section2.e-rx: New expected output file.
* gas/all/gas.exp: Add support for RX target.
* gas/elf/elf.exp: Likewise.
* gas/lns/lns.exp: Likewise.
* gas/macros/macros.exp: Likewise.
include
* dis-asm.h: Add prototype for print_insn_rx.
include/elf
* rx.h: New file.
include/opcode
* rx.h: New file.
ld
* Makefile.am: Add rules to build RX emulation.
* configure.tgt: Likewise.
* NEWS: Mention support for RX architecture.
* Makefile.in: Regenerate.
* emulparams/elf32rx.sh: New file.
* emultempl/rxelf.em: New file.
opcodes
* Makefile.am: Add RX files.
* configure.in: Add support for RX target.
* disassemble.c: Likewise.
* Makefile.in: Regenerate.
* configure: Regenerate.
* opc2c.c: New file.
* rx-decode.c: New file.
* rx-decode.opc: New file.
* rx-dis.c: New file.