Alan Modra [Fri, 11 May 2007 03:10:11 +0000 (03:10 +0000)]
include/elf/
* spu.h (R_SPU_PPU32, R_SPU_PPU64): Define.
bfd/
* reloc.c (BFD_RELOC_SPU_PPU32, BFD_RELOC_SPU_PPU64): Define.
* elf-bfd.h (struct elf_backend_data): Change return type of
elf_backend_relocate_section to int.
* elf32-spu.c (elf_howto_table): Add howtos for R_SPU_PPU32 and
R_SPU_PPU64.
(spu_elf_bfd_to_reloc_type): Convert new relocs.
(spu_elf_count_relocs): New function.
(elf_backend_count_relocs): Define.
(spu_elf_relocate_section): Arrange to emit R_SPU_PPU32 and
R_SPU_PPU64 relocs.
* elflink.c (elf_link_input_bfd): Emit relocs if relocate_section
returns 2.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
gas/
* config/tc-spu.c (md_pseudo_table): Add int, long, quad. Call
spu_cons for word.
(md_assemble): Tidy use of insn.flag.
(get_imm): Likewise. Handle uppercase input too.
(spu_cons): New function.
* config/tc-spu.h (tc_fix_adjustable): Don't adjust SPU_PPU relocs.
(TC_FORCE_RELOCATION): Don't resolve them either.
binutils/
* embedspu.sh (find_prog): Prefer prog in same dir as embedspu
over one found on the users path.
(main): Generate .reloc for each R_SPU_PPU* reloc.
Pedro Alves [Thu, 10 May 2007 22:04:50 +0000 (22:04 +0000)]
* server.h (check_remote_input_interrupt_request): New function.
* remote_utils.c (INVALID_DESCRIPTOR): New define.
(remote_desc): Initialize with INVALID_DESCRIPTOR.
(input_interrupt): Expose on USE_WIN32API too. Fix whitespace.
(check_remote_input_interrupt_request): New function.
* server.h (check_remote_input_interrupt_request): Declare.
* win32-low.(winapi_DebugBreakProcess,
winapi_GenerateConsoleCtrlEvent): New typedefs.
(get_child_debug_event): Lower Win32 debug event polling from 1 sec
to 250 ms.
(win32_wait): Check for remote interrupt request
with check_remote_input_interrupt_request.
(win32_request_interrupt): New function.
(win32_target_op): Set request_interrupt to win32_request_interrupt.
Pedro Alves [Thu, 10 May 2007 21:48:56 +0000 (21:48 +0000)]
* win32-low.c (debug_registers_changed,
debug_registers_used, CONTEXT_EXTENDED_REGISTERS,
CONTEXT_FLOATING_POINT, CONTEXT_DEBUG_REGISTERS,
CONTEXT_DEBUGGER, CONTEXT_DEBUGGER_DR): Delete.
(thread_rec): Get context using the low target.
(child_add_thread): Call thread_added on the low target,
which does the same thing.
(regptr): Delete.
(do_initial_child_stuff): Remove debug registers references.
Set context using the low target. Resume threads after
setting the contexts.
(child_continue): Remove dead variable. Remove debug
registers references.
(child_fetch_inferior_registers): Go through the low target.
(do_child_store_inferior_registers): Remove.
(child_store_inferior_registers): Go through the low target.
(win32_resume): Remove debug registers references.
Set context using the low target.
(handle_exception): Change return type to void. Don't record
context here. Set status to TARGET_WAITKIND_SPURIOUS on a
first chance exception.
(get_child_debug_event): Change return type to void. Remove
goto loop. Always return after waiting for debug event.
(win32_wait): Convert to switch statement. Handle spurious
events.
* win32-i386-low.c (debug_registers_changed,
debug_registers_used): New.
(initial_stuff): Rename to ...
(i386_initial_stuff): ... this. Clear debug registers
state variables.
(store_debug_registers): Delete.
(i386_get_thread_context): New.
(load_debug_registers): Delete.
(i386_set_thread_context): New.
(i386_thread_added): New.
(single_step): Rename to ...
(i386_single_step): ... this.
(do_fetch_inferior_registers): Rename to ...
(i386_fetch_inferior_register): ... this.
(i386_store_inferior_register): New.
(the_low_target): Adapt to new interface.
* win32-arm-low.c (CONTEXT_FLOATING_POINT): Define.
(arm_get_thread_context): New.
(arm_set_thread_context): New.
(regptr): New.
(do_fetch_inferior_registers): Rename to ...
(arm_fetch_inferior_register): ... this.
(arm_store_inferior_register): New.
(arm_wince_breakpoint): Reimplement as unsigned long.
(arm_wince_breakpoint_len): Define.
(the_low_target): Adapt to new interface.
* win32-low.h (target_ops): Remove regmap, store_debug_registers and
load_debug_registers. Add get_thread_context, set_thread_context,
thread_added and store_inferior_register. Rename
fetch_inferior_registers to fetch_inferior_register.
(regptr): Remove declaration.
* mips-linux-nat.c (mips_linux_cannot_fetch_register): Remove.
(mips_linux_cannot_store_register): Likewise.
(mips_linux_register_addr): Add GDBARCH and STORE_P parameters.
Return (CORE_ADDR) -1 for registers that cannot be fetched or
stored via ptrace. Use GDBARCH instead of current_gdbarch.
(mips64_linux_register_addr): Likewise.
(mips_linux_register_u_offset): Adapt parameter list. Pass
GDBARCH and STORE_P on to mips{64}_linux_register_addr.
* config/mips/linux.mh (NAT_FILE): Set to config/nm-linux.h.
* config/mips/nm-linux.h: Delete file.
Pedro Alves [Thu, 10 May 2007 21:05:15 +0000 (21:05 +0000)]
* target.h (target_ops): Change return type of detach to int.
Add join.
(join_inferior): New.
* server.c (main): Don't skip detach support on mingw32.
If the inferior doesn't support detaching return error.
Call join_inferior instead of using waitpid.
* linux-low.c (linux_join): New.
(linux_target_op): Add linux_join.
* spu-low.c (spu_join): New.
(spu_target_ops): Add spu_join.
* win32-low.c (win32_detach): Adapt to new interface.
Reopen current_process_handle before detaching. Issue a child
resume before detaching.
(win32_join): New.
(win32_target_op): Add win32_join.
bfd/
* elf32-arm.c (elf32_arm_check_relocs): Don't create PLT entries
for R_ARM_ABS12 relocs.
(elf32_arm_finish_dynamic_symbol): Fix the loop that creates
non-shared VxWorks PLT entries.
ld/testsuite/
* ld-arm/vxworks1-lib.dd: Expect "push" instead of stmdb and
"pop" instead of ldmia. Don't require specific symbolic addresses
for in-text addresses. Expect data to be rendered as .words rather
than disassembled.
* ld-arm/vxworks1.dd: Likewise.
Mark Shinwell [Wed, 9 May 2007 13:02:10 +0000 (13:02 +0000)]
bfd/
* elf32-arm.c (bfd_elf32_arm_vfp11_erratum_scan): Don't
attempt to scan if the bfd doesn't correspond to an ELF image.
(bfd_elf32_arm_vfp11_fix_veneer_locations): Likewise.
Ulrich Weigand [Tue, 8 May 2007 23:39:14 +0000 (23:39 +0000)]
ChangeLog:
* config/i386/nm-i386sol2.h (USE_PROC_FS): Do not define.
* config/mips/nm-irix5.h (USE_PROC_FS): Do not define.
* config/nm-linux.h (USE_PROC_FS): Do not undefine.
Ulrich Weigand [Tue, 8 May 2007 23:18:23 +0000 (23:18 +0000)]
* spu-linux-nat.c: Include "gdb_stdint.h".
(fetch_ppc_register): Use uint64_t instead of unsigned long long.
(fetch_ppc_memory_1, store_ppc_memory_1): Likewise.
(fetch_ppc_memory, store_ppc_memory): Fix coding style.
(spu_symbol_file_add_from_memory): Use strtoulst instead of sscanf.
(spu_child_wait): Mark up string for translation.
* hppa-hpux-tdep.c (hppa_skip_permanent_breakpoint): Make static.
Add REGCACHE argument. Use it instead of read/write_register.
(hppa_hpux_init_abi): Install hppa_skip_permanent_breakpoint.
* config/pa/tm-hppah.h: Delete file.
* config/pa/hppa64.mt (DEPRECATED_TM_FILE): Set to tm-hppa.h.
* config/pa/hppahpux.mt (DEPRECATED_TM_FILE): Likewise.
* config/alpha/alpha-osf1.mh: Delete file.
* config/alpha/alpha-osf2.mh: Delete file.
* config/alpha/alpha-osf3.mh (NATDEPFILES): Remove inftarg.o
and infptrace.o.
* config/alpha/nm-osf.h: Delete file.
* config/alpha/nm-osf2.h: Delete file.
* config/alpha/nm-osf3.h: Do not include "nm-osf2.h".
(START_INFERIOR_TRAPS_EXPECTED): Copy from nm-osf.h.
(PROCFS_DONT_TRACE_FAULTS): Copy from nm-osf2.h.
* alpha-nat.c (ALPHA_UNIQUE_PTRACE_ADDR): Do not define.
(register_addr, kernel_u_size): Remove.
Do not check for "defined(USE_PROC_FS) || defined(HAVE_GREGSET_T)".
* remote.c (remote_prepare_to_store): Add REGCACHE parameter.
Use it instead of current_regcache.
* hpux-thread.c (hpux_thread_prepare_to_store): Add REGCACHE
parameter. Pass it on to next target.
* sol-thread.c (sol_thread_prepare_to_store): Likewise.
Ulrich Weigand [Sun, 6 May 2007 14:33:21 +0000 (14:33 +0000)]
* gdbcore.h (struct regcache): Add forward declaration.
(struct core_fns): Add REGCACHE argument to core_read_registers
callback.
* corelow.c (get_core_register_section): Add REGCACHE argument,
use it instead of current_regcache, pass it to core_read_registers
callback.
(get_core_registers): Add current_regcache as parameter to
get_core_register_section calls.
Ulrich Weigand [Sun, 6 May 2007 14:31:30 +0000 (14:31 +0000)]
* monitor.c (monitor_supply_register): Add REGCACHE parameter, use
it instead of current_regcache.
(parse_register_dump): Add REGCACHE parameter, pass it to
supply_register callback.
(monitor_dump_reg_block): Add REGCACHE parameter, pass it to
parse_register_dump.
(monitor_dump_regs): Add REGCACHE parameter, pass it to
parse_register_dump and dumpregs callback.
(monitor_wait): Pass current_regcache to parse_register_dump and
monitor_dump_regs.
(monitor_fetch_register): Pass current_regcache to
monitor_supply_register.
(monitor_fetch_registers): Pass current_regcache to
monitor_dump_regs.
* monitor.h (struct monitor_ops): Add REGCACHE parameter to
supply_register and dumpregs callbacks.
(monitor_supply_register, monitor_dump_reg_block): Update
prototypes.
* dbug-rom.c (dbug_supply_register): Add REGCACHE parameter. Pass
it to monitor_supply_register.
* dink32-rom.c (dink32_supply_register): Likewise.
* ppcbug-rom.c (ppcbug_supply_register): Likewise.
* m32r-rom.c (m32r_supply_register): Likewise. Also, use REGCACHE
instead of current_regcache.
Ulrich Weigand [Sun, 6 May 2007 14:30:45 +0000 (14:30 +0000)]
* i386-nto-tdep.c (i386nto_supply_gregset, i386nto_supply_fpregset):
Add REGCACHE parameter. Use it instead of current_regcache.
(i386nto_supply_regset): Add REGCACHE parameter, pass it to
i386nto_supply_gregset and i386nto_supply_fpregset.
(i386nto_regset_fill): Add REGCACHE parameter; use it instead
of current_regcache.
* nto-procfs.c (procfs_fetch_registers): Pass current_regcache to
nto_supply_ helper functions.
(procfs_store_registers): Pass current_regcache to nto_regset_fill.
* nto-tdep.h (struct nto_target_ops): Add REGCACHE parameter to
supply_greget, supply_fpregset, supply_altregset, supply_regset,
and regset_fill member function pointers.
(nto_dummy_supply_regset): Adapt prototype.
Ulrich Weigand [Sun, 6 May 2007 14:11:24 +0000 (14:11 +0000)]
* aix-thread.c (supply_gprs64, supply_reg32, supply_fprs,
supply_sprs64, supply_sprs32): Add REGCACHE parameter, use it
instead of current_regcache.
(fetch_regs_user_thread, fetch_regs_kernel_thread): Add
REGCACHE parameter, pass it to supply_ routines.
(aix_thread_fetch_registers): Pass current_regcache to
fetch_regs_user_thread and fetch_regs_kernel_thread.
(fill_gprs64, fill_gprs32, fill_fprs, fill_sprs64, fill_sprs32):
Add REGCACHE parameter, use it instead of current_regcache.
Call regcache_valid_p instead of register_cached.
(store_regs_user_thread, store_regs_kernel_thread): Likewise.
Also, pass REGCACHE to fill_ routines.
(aix_thread_store_registers): Pass current_regcache to
store_regs_user_thread and store_regs_kernel_thread.
Ulrich Weigand [Sun, 6 May 2007 14:09:20 +0000 (14:09 +0000)]
* irix5-nat.c (fill_gregset): Use regcache_raw_collect instead
of regcache_raw_read_signed.
(fill_fpregset): Use regcache_raw_collect instead of
regcache_raw_read.
Denis Chertykov [Sat, 5 May 2007 06:51:24 +0000 (06:51 +0000)]
* multempl/avrelf.em (PARSE_AND_LIST_ARGS_CASES): Add new value for
"--pmem-wrap-around".
(PARSE_AND_LIST_OPTIONS): Describe new value for "--pmem-wrap-around".
Nick Clifton [Fri, 4 May 2007 14:17:07 +0000 (14:17 +0000)]
* elflink.c (elf_link_sort_relocs): If both .rela.dyn and .rel.dyn sections
are present examine the indirect sections in an attempt to compute the
correct relocation size. If there is any ambiguity, produce an error and
refuse to sort.
Joel Brobecker [Thu, 3 May 2007 23:40:11 +0000 (23:40 +0000)]
* filename_cmp.c: Replace include of ctype.h by include of
safe-ctype.h.
(filename_cmp): Use TOLOWER instead of tolower for conversions
that are locale-independent.
* Makefile.in (filename_cmp.o): Add dependency on safe-ctype.h.
H.J. Lu [Thu, 3 May 2007 21:07:16 +0000 (21:07 +0000)]
gas/
2007-05-03 H.J. Lu <hongjiu.lu@intel.com>
* config/tc-i386.c (match_template): Don't explicitly check
suffix for crc32 in Intel mode.
(process_suffix): Issue an error for crc32 if the operand size
is ambiguous.
* gas/i386/crc32.s: Remove crc32 instructions with ambiguous
operand size and suffix in crc32 instructions in Intel mode.
* gas/i386/x86-64-crc32.s: Likewise.
Kevin Buettner [Thu, 3 May 2007 17:51:19 +0000 (17:51 +0000)]
* mips-tdep.c (mips_eabi_push_dummy_call): When pushing floating
point arguments, test explicitly for use of the EABI32 ABI
instead of inferring this condition from tests on register
sizes.
Nick Clifton [Thu, 3 May 2007 15:55:38 +0000 (15:55 +0000)]
PR gas/3041
* gas/config/tc-m68k.c (relaxable_symbol): Do not relax weak symbols.
(tc_gen_reloc): Adjust the addend of relocs against weak symbols.
(md_apply_fix): Put zero values into the frags referencing weak symbols.
* bfd/aoutx.h (swap_std_reloc_out): Treat relocs against weak symbols in the same way as relocs against external symbols.
Alan Modra [Wed, 2 May 2007 13:44:37 +0000 (13:44 +0000)]
include/elf/
* internal.h (ELF_IS_SECTION_IN_SEGMENT): Check both file offset
and vma for appropriate sections.
bfd/
* elf.c (assign_file_positions_for_load_sections): Set sh_offset
here. Set sh_type to SHT_NOBITS if we won't be allocating
file space. Don't bump p_memsz for non-alloc sections. Adjust
section-in-segment check.
(assign_file_positions_for_non_load_sections): Don't set sh_offset
here for sections that have already been handled above.
* mips-tdep.c (mips_o32_push_dummy_call): Remove conditions
based on mips_abi_regsize() whose result is known in advance.
(mips_o64_push_dummy_call): Likewise.
Alan Modra [Wed, 2 May 2007 10:38:00 +0000 (10:38 +0000)]
* binutils-all/objcopy.exp (copy_setup): Don't perror, use send_log.
(copy_executable): Return early if test2 is blank.
Return unsupported rather than unresolved if we can't run
executables. Do test1 if we can compile.