Peter Bergner [Thu, 15 Jan 2009 04:27:28 +0000 (04:27 +0000)]
opcodes/
* ppc-dis.c (print_insn_powerpc): Skip insn if it is deprecated.
* ppc-opc.c (powerpc_opcodes) <mtfsf, mtfsf.>: Deprecate the two
operand form and enable the four operand form for POWER6 and later.
<mtfsfi, mtfsfi.>: Deprecate the two operand form and enable the
three operand form for POWER6 and later.
Cary Coutant [Thu, 15 Jan 2009 01:29:25 +0000 (01:29 +0000)]
* archive.cc (Archive::get_elf_object_for_member): Remove call
to File_read::claim_for_plugin.
* descriptors.cc (Descriptors::open): Remove reference to
is_claimed.
(Descriptors::claim_for_plugin): Remove.
* descriptors.h (Descriptors::claim_for_plugin): Remove.
(Descriptors::is_claimed): Remove.
(claim_descriptor_for_plugin): Remove.
* fileread.cc (File_read::claim_for_plugin): Remove.
* fileread.h (File_read::claim_for_plugin): Remove.
(File_read::descriptor): Reopen descriptor if necessary.
* plugin.cc (Plugin::load): Add two new APIs to transfer vector.
(Plugin_manager::all_symbols_read): Add task parameter. Change
all callers.
(Plugin_manager::get_input_file): New function.
(Plugin_manager::release_input_file): New function.
(Pluginobj::Pluginobj): Add filesize parameter and initialize
corresponding data member.
(Sized_pluginobj::Sized_pluginobj): Add filesize parameter
and pass to base constructor. Change all callers.
(get_input_file, release_input_file): New functions.
(make_sized_plugin_object): Add filesize parameter. Change all callers.
* plugin.h (Plugin_manager::Plugin_manager): Initialize task_ member.
(Plugin_manager::all_symbols_read): Add task parameter.
(Plugin_manager::get_input_file): New function.
(Plugin_manager::release_input_file): New function.
(Plugin_manager::task_): New data member.
(Pluginobj::Pluginobj): Add filesize parameter.
(Pluginobj::filename): New function.
(Pluginobj::descriptor): New function.
(Pluginobj::filesize): New function.
(Pluginobj::filesize_): New data member.
(Sized_pluginobj::Sized_pluginobj): Add filesize parameter.
* readsyms.cc (Read_symbols::do_read_symbols): Remove call to
File_read::claim_for_plugin; use Object::unlock to unlock the file.
* testsuite/Makefile.am (plugin_test_4): New test case for plugins
with archive libraries.
* testsuite/Makefile.in: Regenerate.
* testsuite/plugin_test.c (struct sym_info): New type.
(get_input_file, release_input_file): New static variables.
(onload): Capture new transfer vector entries.
(claim_file_hook): Stop reading at end of file according to filesize.
Factor out parsing of readelf output into separate function.
(all_symbols_read_hook): Exercise get_input_file and release_input_file
APIs and get the source file name from the symbol table. Convert
source file name to corresponding object file name. Print info
message when adding new input files.
(parse_readelf_line): New function.
* testsuite/plugin_test_1.sh: Add checks for new info messages.
* testsuite/plugin_test_2.sh: Likewise.
* testsuite/plugin_test_3.sh: Likewise.
* testsuite/plugin_test_4.sh: New test case.
Cary Coutant [Thu, 15 Jan 2009 01:28:14 +0000 (01:28 +0000)]
* plugin-api.h (LDPS_BAD_HANDLE): New constant.
(ld_plugin_get_input_file): New typedef.
(ld_plugin_release_input_file): New typedef.
(LDPT_GET_INPUT_FILE, LDPT_RELEASE_INPUT_FILE): New constants.
(struct ld_plugin_tv): Add two new fields.
Nick Clifton [Wed, 14 Jan 2009 11:55:43 +0000 (11:55 +0000)]
Cleanup code related to --identify option.
* binutils/dlltool.c (file scope): Removed globals identify_ms,
identify_member_contains_symname_result,
identify_dll_name_list_head, and identify_dll_name_list_tail.
Renamed existing typedef dll_name_list_type to
dll_name_list_node_type.
Added new typedefs dll_name_list_type, symname_search_data_type,
and identify_data_type.
(identify_append_dll_name_to_list): Renamed to...
(dll_name_list_append): ...here. Changed signature to accept list
argument rather than use global.
(identify_count_dll_name_list): Renamed to...
(dll_name_list_count): ...here. Changed signature to accept list
argument rather than use global.
(identify_print_dll_name_list): Renamed to...
(dll_name_list_print): ...here. Changed signature to accept list
argument rather than use global.
(identify_free_dll_name_list): Renamed to...
(dll_name_list_free_contents): ...here.
(dll_name_list_free): New function.
(dll_name_list_create): New function.
(identify_process_section_p): Changed signature to accept
ms_style_implib argument rather than use global.
(identify_member_contains_symname): Expect incoming void * data to
be symname_search_data_type.
(identify_dll_for_implib): Use new functions dll_name_list_create
and dll_name_list_free. Use new types symname_search_data_type
and identify_data_type to communicate with search routines.
(identify_search_section): Expect incoming void * data to be
identify_data_type. Use its contents rather than global
variables.
* annotate.texinfo: Use @copying and @insertcopying. Use
@ifnottex in place of @ifinfo.
* gdb.texinfo: Use @copying and @insertcopying. Use @ifnottex in
place of @ifinfo. Use @ifnotinfo for one index entry.
* gdbint.texinfo: Use @copying and @insertcopying. Use @ifnottex
in place of @ifinfo.
* stabs.texinfo: Use @copying and @insertcopying. Use @ifnottex
in place of @ifinfo. Include contents at start unconditionally.
Joel Brobecker [Tue, 13 Jan 2009 11:52:43 +0000 (11:52 +0000)]
* mdebugread.c (parse_symbol): Save the symbol private data
using SYMBOL_VALUE_BYTES instead of SYMBOL_VALUE.
(psymtab_to_symtab_1): Likewise.
(parse_procedure): Declare variable "e" only in the scope
where it is used. Extract the symbol private data using
SYMBOL_VALUE_BYTES.
* dlltool.c (file scope): Added new globals identify_ms and
identify_strict. New typedef dll_name_list_type, and globals
identify_dll_name_list_head and identify_dll_name_list_tail. Added
new global identify_member_contains_symname_result.
(identify_append_dll_name_to_list): New function.
(identify_count_dll_name_list): New function.
(identify_print_dll_name_list): New function.
(identify_free_dll_name_list): New function.
(identify_search_archive): Changed signature to take function
pointer to operation to apply to each member, and data to pass on
to that function.
(identify_search_member): Changed signature to accept user data
from caller.
(identify_member_contains_symname): New function.
(identify_dll_for_implib): Rewrite. Now determines whether implib
is ms- or binutils- style, before searching sections for
dllname. Allows multiple dllnames.
(identify_process_section_p): Search alternate section for dllname
when implib is ms-style.
(identify_search_section): Add additional conditions to excludes
candidate sections from consideration.
(usage): Added --identify-strict.
(long_options): Added --identify-strict.
(main): Handle --identify-strict option.
* doc/binutils.texi: Document --identify-strict option.
* NEWS: Document --identify and --identify-strict options.
* amd64-windows-nat.c Rename gdb-specific win32_* to windows_* throughout.
* i386-cygwin-tdep.c: Ditto.
* i386-windows-nat.c: Ditto.
* windows-nat.h: Ditto.
* windows-tdep.c: Ditto.
* windows-tdep.h: Ditto.
* windows-nat.c: Ditto.
(cygwin_load_start): Redefine as CORE_ADDR.
(cygwin_load_end): Ditto.
(windows_make_so): Coerce result of address arithmetic to to uintptr_t before
coercing to CORE_ADDR to avoid a compiler warning.
(handle_exception): Define addr as CORE_ADDR and coerce ExceptionAddress to
uintptr_t before assigining to avoid a compiler warning.
* config/djgpp/fnchange.lst: Add mappings for recently renamed windows files.
Alan Modra [Mon, 12 Jan 2009 13:57:59 +0000 (13:57 +0000)]
* ld-elf/elf.exp: Save and restore LDFLAGS.
* ld-scripts/default-script.exp: Likewise.
* ld-scripts/empty-orphan.exp: Likewise, and add to LDFLAGS rather
than replacing.
* ld-scripts/include.exp: Set --local-store for SPU.
Alan Modra [Mon, 12 Jan 2009 00:23:58 +0000 (00:23 +0000)]
bfd/
* elf32-spu.c (struct spu_link_hash_table): Add init, line_size_log2,
num_lines_log2.
(struct got_entry): Add br_addr.
(struct call_info): Add priority.
(struct function_info): Add lr_store and sp_adjust.
(spu_elf_setup): Init line_size_log2 and num_lines_log2.
(spu_elf_find_overlays): For soft-icache, mark any section within cache
area as an overlay, and check that no other overlays exist. Look up
icache overlay manager entry sym.
(BRA_STUBS, BRA, BRASL): Define.
(enum _stub_type): Replace ovl_stub with call_ovl_stub and br*_ovl_stub.
(needs_ovl_stub): Adjust for soft-icache. Return priority encoded
in branch insn.
(count_stub, build_stub): Support soft-icache.
(build_spuear_stubs, process_stubs): Adjust build_stub call.
(spu_elf_size_stubs): Size soft-icache stubs.
(overlay_index): New function.
(spu_elf_build_stubs): Make static. Support soft-icache.
(spu_elf_check_vma): Don't turn off auto_overlay if soft-icache.
(find_function_stack_adjust): Save lr store and stack adjust insn
offsets.
(maybe_insert_function): Adjust find_function_stack_adjust call.
(mark_functions_via_relocs): Retrieve priority.
(remove_cycles): Only warn about pruned arcs when stack_analysis.
(sort_calls): Sort by priority first.
(mark_overlay_section): Ignore .ovl.init.
(sum_stack): Only print when stack_analysis.
(print_one_overlay_section): New function, extracted from..
(spu_elf_auto_overlay): ..here. Support soft-icache overlays.
(spu_elf_stack_analysis): Only print when htab->stack_analysis.
(spu_elf_final_link): Call spu_elf_stack_analysis for lrlive
analysis. Call spu_elf_build_stubs.
(spu_elf_relocate_section): For soft-icache encode overlay index
into addresses.
(spu_elf_output_symbol_hook): Support soft-icache.
(spu_elf_modify_program_headers: Likewise.
* elf32-spu.h (struct spu_elf_params): Add lrlive_analysis. Rename
num_regions to num_lines. Add line_size and max_branch.
(enum _ovly_flavour): Add ovly_soft_icache.
(spu_elf_build_stubs): Delete.
gas/
* config/tc-spu.c (md_pseudo_table): Add "brinfo".
(brinfo): New var.
(md_assemble): Poke brinfo into branch instructions.
(spu_brinfo): New function.
(md_apply_fix): Don't assume insn fields start off at zero, mask
them to remove possible brinfo.
ld/
* emultempl/spuelf.em (params): Init new fields.
(num_lines_set, line_size_set, icache_mgr, icache_mgr_stream): New vars.
(spu_place_special_section): Adjust placement for soft-icache. Pad
soft-icache section to a fixed size. Clear addr_tree.
(spu_elf_load_ovl_mgr): Support soft-icache. Map overlay manager
sections a little more intelligently.
(gld${EMULATION_NAME}_finish): Don't call spu_elf_build_stubs.
(OPTION_SPU_NUM_LINES): Rename from OPTION_SPU_NUM_REGIONS.
(OPTION_SPU_SOFT_ICACHE, OPTION_SPU_LINE_SIZE): Define.
(OPTION_SPU_LRLIVE): Define.
(PARSE_AND_LIST_LONGOPTS): Add new soft-icache options.
(PARSE_AND_LIST_OPTIONS): Likewise.
(PARSE_AND_LIST_ARGS_CASES): Handle them.
* emultempl/spu_icache.S: Dummy file.
* emultempl/spu_icache.o_c: Regenerate.
* Makefile.am (eelf32_spu.c): Depend on spu_icache.o_c.
(spu_icache.o_c): Add rule to build.
(CLEANFILES): Zap temp files.
(EXTRA_DIST): Add spu_icache.o_c.
* Makefile.in: Regenerate.
ld/testsuite/
* ld-spu/ovl.d: Allow for absolute branches in stubs.
* ld-spu/ovl2.d: Likewise.
Jan Kratochvil [Sun, 11 Jan 2009 21:39:02 +0000 (21:39 +0000)]
* f-typeprint.c (f_type_print_varspec_suffix): Convert the autovariable
arrayprint_recurse_level to a parameter. Update all the callers. New
comment at autovariables.
Joel Brobecker [Sun, 11 Jan 2009 13:23:42 +0000 (13:23 +0000)]
* target.c (target_xfer_partial): Use host_address_to_string to
print the address of readbuf and writebuf. Cast the address of
elements inside the myaddr buffer into intptr_t.
(deprecated_debug_xfer_memory): Use paddress to print memaddr.
Cast the address of elements inside the myaddr buffer into
intptr_t.
Joel Brobecker [Sun, 11 Jan 2009 13:15:56 +0000 (13:15 +0000)]
* amd64-windows-nat.c, amd64-windows-tdep.c: New files.
* config/i386/mingw64.mh, config/i386/nm-cygwin64.h: New files.
* configure.host, configure.tgt: Add handling for x86_64/windows.
* config/djgpp/fnchange.lst: Add entries for amd64-windows-nat.c
and amd64-windows-tdep.c.
Joel Brobecker [Sun, 11 Jan 2009 13:10:44 +0000 (13:10 +0000)]
* win32-tdep.h, win32-tdep.c: New files.
* i386-cygwin-tdep.h: Delete.
* i386-cygwin-tdep.c: Include win32-tdep.h instead of
i386-cygwin-tdep.h.
(win32_xfer_shared_library): Delete. Moved to win32-tdep.c.
* win32-nat.c: Likewise.
* configure.tgt: Add win32-tdep.o to the list of target object
files for i386-cygwin and i386-mingw targets.
Joel Brobecker [Sun, 11 Jan 2009 04:13:57 +0000 (04:13 +0000)]
* win32-nat.h: New file.
* win32-nat.c (mappings): Initialize to NULL.
(win32_set_context_register_offsets): New function.
* i386-windows-nat.c: New file.
(mappings): Moved here from win32-nat.c.
(_initialize_i386_windows_nat): New function.
* config/i386/mingw.mh (NATDEPFILES): Add i386-windows-nat.o.
* config/i386/cygwin.mh (NATDEPFILES): Likewise.
* i386-gen.c (cpu_flag_init): Replace CpuP4 and CpuK6 with
CpuClflush and CpuSYSCALL, respectively. Remove CpuK8. Add
CPU_COREI7_FLAGS, CPU_CLFLUSH_FLAGS and CPU_SYSCALL_FLAGS.
(cpu_flags): Remove CpuP4, CpuK6 and CpuK8. Add CpuClflush
and CpuSYSCALL.
(lineno): Removed.
(set_bitfield): Take an argument, lineno. Don't report lineno
on error if it is -1.
(process_i386_cpu_flag): Take an argument, lineno.
(process_i386_opcode_modifier): Likewise.
(process_i386_operand_type): Likewise.
(output_i386_opcode): Likewise.
(opcode_hash_entry): Add lineno.
(process_i386_opcodes): Updated.
(process_i386_registers): Likewise.
(process_i386_initializers): Likewise.
Joel Brobecker [Fri, 9 Jan 2009 11:06:48 +0000 (11:06 +0000)]
* gdbarch.sh: Fix all the compilation errors on amd64-windows
due to casting a pointer to a long when printing a function
address. Instead, use host_address_to_string to convert our
address to a string.
* gdbarch.c: Regenerate.
Joel Brobecker [Fri, 9 Jan 2009 10:58:26 +0000 (10:58 +0000)]
* win32-nat.c (get_module_name): Change the type of parameter
"base_address" to LPVOID. Remove unnecessary cast.
(struct lm_info): Change type of load_addr to LPVOID.
(win32_make_so): Change the type of parameter "load_addr"
to LPVOID. Remove some unnecessary casts.
(handle_unload_dll): Change the type of "lpBaseOfDll" to LPVOID.
(win32_xfer_shared_libraries): Add missing cast.
Joel Brobecker [Fri, 9 Jan 2009 10:39:15 +0000 (10:39 +0000)]
* win32-nat.c (kernel32_DebugSetProcessKillOnExit): Renames
DebugSetProcessKillOnExit. Update all uses in this file.
(kernel32_DebugActiveProcessStop): Renames DebugActiveProcessStop.
Update all uses in this file.
Joel Brobecker [Fri, 9 Jan 2009 10:36:00 +0000 (10:36 +0000)]
* win32-nat.c (do_initial_win32_stuff): Add new ops parameter,
and use it when pushing the target.
(win32_attach, win32_create_inferior): Update call to
do_initial_win32_stuff.
(win32_detach, win32_mourn_inferior): Use our ops parameter
instead of the global win32_ops to unpush the target.
Tom Tromey [Thu, 8 Jan 2009 16:32:30 +0000 (16:32 +0000)]
PR breakpoints/9350:
* varobj.c (varobj_invalidate): Unconditionally free
all_rootvarobj.
* symfile.c (syms_from_objfile): Free local_addr when returning
normally.
* exec.c (exec_file_attach): Do cleanups before returning.
(exec_file_command): Likewise.
* corefile.c (reopen_exec_file): Do cleanups before returning.
* breakpoint.c (insert_breakpoint_locations): Do cleanups before
returning.
(do_vec_free): New function.
(update_global_location_list): Make a cleanup for old_locations.
Do cleanups before returning. Remove unused variable 'e'.
(find_condition_and_thread): Free result of parsing the
expression.
(print_it_typical): Do cleanups before returning.
(breakpoint_re_set_one): Always free sals.sals.
* dlltool.c (use_nul_prefixed_import_tables): New.
(make_head): Make prefix leading zero prefix element for
idata$4 and idata$5 dependent to new flag.
(usage): Add new option --use-nul-prefixed-import-tables.
(OPTION_USE_NUL_PREFIXED_IMPORT_TABLES): New.
(long_options): Add --use-nul-prefixed-import-tables.
(main): Likewise.
* doc/binutils.texi: Add new option documentation for
--use-nul-prefixed-import-tables.
* NEWS: Add new option.
* pe.em (OPTION_USE_NUL_PREFIXED_IMPORT_TABLES): New.
(gld..._add_options): Add new option
--use-nul-prefixed-import-tables.
(gld..._handle_option): Likewise.
* pep.em: Same as for pe.em.
* ld.texinfo: Add new option documentation for
--use-nul-prefixed-import-tables.
* pe-dll.c (pe_use_nul_prefixed_import_tables): New.
(make_head): Make prefix leading zero prefix element for
idata$4 and idata$5 dependent to new flag.
(make_import_fixup_entry): Remove idata4/5 prefix.
* pe-dll.h (pe_use_nul_prefixed_import_tables): New.
* pep-dll.c (pe_use_nul_prefixed_import_tables): New.
* pep-dll.h (pep_use_nul_prefixed_import_tables): New.
* NEWS: Add new option.
* gdb.texinfo (Error in Breakpoints): Delete mention of "The same
program may be running in another process" errors.
* gdbint.texinfo (Native Conditionals): Delete
ONE_PROCESS_WRITETEXT description.