OSDN Git Service
hjl [Thu, 14 Oct 2010 23:16:19 +0000 (23:16 +0000)]
Remove CheckRegSize from movq.
2010-10-14 H.J. Lu <hongjiu.lu@intel.com>
* i386-opc.tbl: Remove CheckRegSize from movq.
* i386-tbl.h: Regenerated.
amodra [Thu, 14 Oct 2010 23:00:05 +0000 (23:00 +0000)]
daily update
ccoutant [Thu, 14 Oct 2010 22:10:21 +0000 (22:10 +0000)]
* debug.h (DEBUG_INCREMENTAL): New flag.
(debug_string_to_enum): Add DEBUG_INCREMENTAL).
* gold.cc (queue_initial_tasks): Check parameters for incremental link
mode.
* incremental.cc (report_command_line): Ignore all forms of
--incremental.
* layout.cc (Layout::Layout): Check parameters for incremental link
mode.
* options.cc (General_options::parse_incremental): New function.
(General_options::parse_no_incremental): New function.
(General_options::parse_incremental_full): New function.
(General_options::parse_incremental_update): New function.
(General_options::incremental_mode_): New data member.
(General_options::finalize): Check incremental_mode_.
* options.h (General_options): Update help text for --incremental.
Add --no-incremental, --incremental-full, --incremental-update.
(General_options::Incremental_mode): New enum type.
(General_options::incremental_mode): New function.
(General_options::incremental_mode_): New data member.
* parameters.cc (Parameters::incremental_mode_): New data member.
(Parameters::set_options): Set incremental_mode_.
(Parameters::set_incremental_full): New function.
(Parameters::incremental): New function.
(Parameters::incremental_update): New function.
(set_parameters_incremental_full): New function.
* parameters.h (Parameters::set_incremental_full): New function.
(Parameters::incremental): New function.
(Parameters::incremental_update): New function.
(Parameters::incremental_mode_): New data member.
(set_parameters_incremental_full): New function.
* plugin.cc (Plugin_manager::add_input_file): Check parameters for
incremental link mode.
* reloc.cc (Sized_relobj::do_read_relocs): Likewise.
(Sized_relobj::do_relocate_sections): Likewise.
* testsuite/Makefile.am (incremental_test): Use --incremental-full
option.
* testsuite/Makefile.in: Regenerate.
* testsuite/incremental_test.sh: Filter all forms of --incremental.
hjl [Thu, 14 Oct 2010 21:37:30 +0000 (21:37 +0000)]
Remove CheckRegSize from instructions with 0, 1 or fixed operands.
2010-10-14 H.J. Lu <hongjiu.lu@intel.com>
* i386-opc.tbl: Remove CheckRegSize from instructions with
0, 1 or fixed operands.
* i386-tbl.h: Regenerated.
jjohnstn [Thu, 14 Oct 2010 20:14:33 +0000 (20:14 +0000)]
2010-10-14 Craig Howland <howland@LGSInnovations.com>
* libc/include/math.h: Delete cabs() and cabs() prototypes
(c.f. 2010-10-08 change by Corinna).
hjl [Thu, 14 Oct 2010 18:45:07 +0000 (18:45 +0000)]
Add CheckRegSize to instructions which require register size check.
gas/
2010-10-14 H.J. Lu <hongjiu.lu@intel.com>
* config/tc-i386.c (match_template): Check checkregsize
instead of w for register size check.
gas/testsuite/
2010-10-14 H.J. Lu <hongjiu.lu@intel.com>
* gas/i386/i386.exp: Run inval-reg.
* gas/i386/inval-reg.l: New.
* gas/i386/inval-reg.s: Likewise.
opcodes/
2010-10-14 H.J. Lu <hongjiu.lu@intel.com>
* i386-gen.c (opcode_modifiers): Add CheckRegSize.
* i386-opc.h (CheckRegSize): New.
(i386_opcode_modifier): Add checkregsize.
* i386-opc.tbl: Add CheckRegSize to instructions which
require register size check.
* i386-tbl.h: Regenerated.
kevinb [Thu, 14 Oct 2010 18:08:13 +0000 (18:08 +0000)]
* lwp-pool.c (hash_find): Initialize `do_step' in the newly allocated
lwp struct.
swagiaal [Thu, 14 Oct 2010 16:13:35 +0000 (16:13 +0000)]
Fixed void* vs int* overload issue (PR C++/10343).
2010-10-14 Sami Wagiaalla <swagiaal@redhat.com>
* gdbtypes.h: Create BASE_PTR_CONVERSION_BADNESS.
* gdbtypes.c (rank_one_type): Move type comparison code out of here
to...
(types_equal): ...here. And changed it as follows:
Outside of typedefs type must be of the same TYPE_CODE.
When compairing two pointers or references they are equal if their
targets are equal.
Correct pointer conversions.
2010-10-14 Sami Wagiaalla <swagiaal@redhat.com>
* gdb.cp/converts.cc: New test program.
* gdb.cp/converts.exp: New test.
* gdb.cp/overload.exp: Added test for void* vs int*.
* gdb.cp/overload.exp: Ditto.
* gdb.cp/oranking.exp: Removed related kfail.
muller [Thu, 14 Oct 2010 15:18:53 +0000 (15:18 +0000)]
* p-lang.c (is_pascal_string_type): Avoid crashes on structures
having fields without names.
hjl [Thu, 14 Oct 2010 13:31:11 +0000 (13:31 +0000)]
Add .d32 encoding suffix.
gas/
2010-10-14 H.J. Lu <hongjiu.lu@intel.com>
* config/tc-i386.c (_i386_insn): Add disp32_encoding.
(md_assemble): Don't call optimize_disp if disp32_encoding is
set.
(parse_insn): Support .d32 to force 32bit displacement.
(output_branch): Use BIG if disp32_encoding is set.
* doc/c-i386.texi: Document .d32 encoding suffix.
gas/testsuite/
2010-10-14 H.J. Lu <hongjiu.lu@intel.com>
* gas/i386/disp32.d: New.
* gas/i386/disp32.s: Likewise.
* gas/i386/x86-64-disp32.d: Likewise.
* gas/i386/x86-64-disp32.s: Likewise.
* gas/i386/i386.exp: Run disp32 and x86-64-disp32.
davek [Thu, 14 Oct 2010 01:31:25 +0000 (01:31 +0000)]
Applied patch series for LD plugin interface (six parts).
[PATCH] Add infrastructure for plugin API; functionality to follow.
include/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 1/6).
* plugin-api.h (LDPT_GNU_LD_VERSION): New ld_plugin_tag enum member.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 1/6).
* configure.in: Add AC_CHECKs for file io and dlfcn headers and
functions and AC_SEARCH for -ldl.
(enable_plugins): New shell variable set if above tests find dlopen
functionality.
(ENABLE_PLUGINS): Add related automake conditional.
* configure: Regenerate.
* config.in: Likewise.
* Makefile.am (PLUGIN_C): Declare plugin C source file, conditional
on ENABLE_PLUGINS being defined.
(PLUGIN_H): Likewise for header file.
(PLUGIN_OBJECT): Likewise for object file.
(PLUGIN_CFLAGS): Likewise -D flag required to compile plugin support.
(AM_CPPFLAGS): Use PLUGIN_CFLAGS.
(CFILES): Use PLUGIN_C.
(HFILES): Use PLUGIN_H.
(OFILES): Use PLUGIN_OBJECT.
(ld_new_SOURCES): Use PLUGIN_C.
(noinst_LTLIBRARIES)[ENABLE_PLUGINS]: Declare test plugin.
(libldtestplug_la_SOURCES)[ENABLE_PLUGINS]: Add automake definition
for test plugin.
(libldtestplug_la_CFLAGS)[ENABLE_PLUGINS]: Likewise.
(libldtestplug_la_LDFLAGS)[ENABLE_PLUGINS]: Likewise.
* Makefile.in: Regenerate.
* sysdep.h: Include stdarg.h, unistd.h and one of fcntl.h or
sys/file.h where available. Include dlfcn.h when ENABLE_PLUGINS.
(O_RDONLY): Supply default definition likewise to bfd's sysdep.h
(O_WRONLY): Likewise.
(O_RDWR): Likewise.
(O_ACCMODE): Likewise.
(O_BINARY): Likewise.
(SEEK_SET): Likewise.
(SEEK_CUR): Likewise.
(SEEK_END): Likewise.
* ldmisc.c (vfinfo): Make non-static. Add %p format char.
* ldmisc.h (vfinfo): Declare extern prototype.
* lexsup.c (enum option_values)[ENABLE_PLUGINS]: Add new entries for
OPTION_PLUGIN and OPTION_PLUGIN_OPT.
(ld_options[])[ENABLE_PLUGINS]: Add option data for the above two.
(parse_args)[ENABLE_PLUGINS]: Handle them, and load all plugins once
option parsing is complete.
* ldmain.c (main)[ENABLE_PLUGINS]: Call plugin cleanup hooks just
after lang_finish.
* plugin.c: New source file.
* plugin.h: Likewise new header.
* testplug.c: New source file.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 1/6).
* ld-bootstrap/bootstrap.exp: Skip static tests also if LD plugins
are enabled.
* lib/ld-lib.exp (proc regexp_diff): Extend verbose debug output.
(proc set_file_contents): Write a file with the supplied content.
(run_ld_link_tests): Add new 'ld' action to test linker output.
(proc check_plugin_api_available): Return true if linker under test
supports the plugin API.
* ld-plugin/func.c: New test source file.
* ld-plugin/main.c: Likewise.
* ld-plugin/text.c: Likewise.
* ld-plugin/plugin-1.d: New dump test output pattern script.
* ld-plugin/plugin-2.d: Likewise.
* ld-plugin/plugin-3.d: Likewise.
* ld-plugin/plugin-4.d: Likewise.
* ld-plugin/plugin-5.d: Likewise.
* ld-plugin/plugin.exp: New test control script.
---
[PATCH] Implement claim file and all symbols read hooks and add symbols callback.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 2/6).
* ldfile.c (ldfile_try_open_bfd)[ENABLE_PLUGINS]: Don't return early
during compat checks if they pass, instead offer any successfully
opened and accepted file to the plugin claim file hooks chain. Create
a dummy bfd to accept symbols added by the plugin, if the plugin
claims the file.
* ldlang.c (lang_process)[ENABLE_PLUGINS]: Call plugin all symbols
read hook chain before ldemul_after_open.
* ldlang.h (struct lang_input_statement_struct): Add new single-bit
'claimed' flag.
* plugin.c (IRONLY_SUFFIX): New macro for dummy bfd file suffix.
(IRONLY_SUFFIX_LEN): Length of the above string.
(plugin_get_ir_dummy_bfd): New function to create the dummy bfd used
to store symbols for ir-only files.
(is_ir_dummy_bfd): New function to check if a bfd is ir-only.
(asymbol_from_plugin_symbol): New function converts symbol formats.
(add_symbols): Call it to convert plugin syms to bfd syms and add
them to the dummy bfd.
* plugin.h: Add missing include guards.
(plugin_get_ir_dummy_bfd): Add prototype.
(is_ir_dummy_bfd): Likewise.
* testplug.c (TV_MESSAGE): New helper macro.
(struct claim_file): New struct.
(claim_file_t): New typedef.
(tag_names[]): Make static and const.
(claimfiles_list): New variable.
(claimfiles_tail_chain_ptr): Likewise.
(last_claimfile): Likewise.
(record_claim_file): Record a file to claim on a singly-linked list.
(parse_symdefstr): Parse an ASCII representation of a symbol from a
plugin option into the fields of a struct ld_plugin_symbol.
(record_claimed_file_symbol): Use it to parse plugin option for
adding a symbol.
(parse_option): Parse claim file and add symbol options.
(dump_tv_tag): Use TV_MESSAGE.
(onload): Likewise.
(onclaim_file): Make static. Use TV_MESSAGE. Scan list of files to
claim and claim this file if required, adding any symbols specified.
(onall_symbols_read): Make static and use TV_MESSAGE.
(oncleanup): Likewise.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 2/6).
* ld-plugin/plugin-3.d: Enable regexes for new functionality.
* ld-plugin/plugin-5.d: Likewise.
* ld-plugin/plugin-6.d: New testcase.
* ld-plugin/plugin-7.d: Likewise.
* ld-plugin/plugin.exp: Use 'nm' on compiled test objects to determine
whether symbols in plugin arguments need an underscore prefix. Add
new plugin-6.d and plugin-7.d testcases.
---
[PATCH] Implement get symbols callback.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 3/6).
* ldmain.c (notice)[ENABLE_PLUGINS]: Call plugin_notice.
* plugin.c (non_ironly_hash): Add new bfd hash table.
(plugin_load_plugins): Exit early if no plugins to load. If plugins
do load successfully, set notice_all flag in link info.
(get_symbols): Implement.
(plugin_load_plugins): Exit early if no plugins to load, else after
loading plugins successfully enable notice_all mode.
(init_non_ironly_hash): Lazily init non_ironly_hash table.
(plugin_notice): Record symbols referenced from non-IR files in the
non_ironly_hash. Suppress tracing, cref generation and nocrossrefs
tracking for symbols from dummy IR bfds.
* plugin.h: Fix formatting.
(plugin_notice): Add prototype.
* testplug.c (dumpresolutions): New global var.
(parse_options): Accept "dumpresolutions".
(onall_symbols_read): Get syms and dump resolutions if it was given.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 3/6).
* ld-plugin/plugin-8.d: New testcase.
* ld-plugin/plugin.exp: Invoke it.
---
[PATCH] Implement add input file, add input lib and set extra lib path callbacks.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 4/6).
* ldlang.c (lang_process)[ENABLE_PLUGINS]: Move invocation of
plugin_call_all_symbols_read to before setting of gc_sym_list, and
open any new input files that may have been added during it.
* ldmain.c (multiple_definition)[ENABLE_PLUGINS]: Call out to
plugin_multiple_definition and let it have first say over what to do
with the clashing definitions.
* plugin.c (no_more_claiming): New boolean variable.
(plugin_cached_allow_multiple_defs): Likewise.
(add_input_file): Implement.
(add_input_library): Likewise.
(set_extra_library_path): Likewise.
(plugin_call_claim_file): Don't do anything when no_more_claiming set.
(plugin_call_all_symbols_read): Set it. Disable link info
"allow_multiple_definition" flag, but cache its value.
(plugin_multiple_definition): New function.
* plugin.h (plugin_multiple_definition): Add prototype.
* testplug.c (addfile_enum_t): New enumerated typedef.
(add_file_t): New struct typedef.
(addfiles_list): New variable.
(addfiles_tail_chain_ptr): Likewise.
(record_add_file): New function.
(parse_option): Parse "add:", "lib:" and "dir:" options and call it.
(onall_symbols_read): Iterate the list of new files, libs and dirs,
adding them.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 4/6).
* ld-plugin/plugin-9.d: New testcase.
* ld-plugin/plugin.exp: Invoke it.
---
[PATCH] Add ELF symbol visibility support to plugin interface.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 5/6).
* plugin.c (asymbol_from_plugin_symbol): If the bfd is an ELF bfd,
find the elf symbol data and set the visibility in the st_other field.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 5/6).
* ld-plugin/plugin-ignore.d: New dump test control script.
* ld-plugin/plugin-vis-1.d: Likewise.
* ld-plugin/plugin.exp: Add list of ELF-only tests and run them if
testing on an ELF target.
---
[PATCH] Add archive support to plugin interface.
bfd/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 6/6).
* aoutx.h (aout_link_check_ar_symbols): Take new "subsbfd" reference
parameter and pass it when invoking add_archive_element callback.
(aout_link_check_archive_element): Handle substitute bfd if it
was set during add_archive_element callback in the above.
* cofflink.c (coff_link_check_ar_symbols): Take new "subsbfd" reference
parameter and pass it when invoking add_archive_element callback.
(coff_link_check_archive_element): Handle substitute bfd if it
was set during add_archive_element callback in the above.
* ecoff.c (read_ext_syms_and_strs): New function holds symbol-reading
code factored-out from ecoff_link_check_archive_element.
(reread_ext_syms_and_strs): Clear old symbols and call it.
(ecoff_link_check_archive_element): Use the above. Handle substitute
BFD if one is set by add_archive_element callback.
(ecoff_link_add_archive_symbols): Likewise allow bfd substitution.
* elflink.c (elf_link_add_archive_symbols): Likewise.
* linker.c (generic_link_check_archive_element): Likewise.
* pdp11.c (aout_link_check_ar_symbols): Take new "subsbfd" reference
parameter and pass it when invoking add_archive_element callback.
(aout_link_check_archive_element): Handle substitute bfd if it was
set during add_archive_element callback in the above.
* vms-alpha.c (alpha_vms_link_add_archive_symbols): Handle substitute
BFD if one is set by add_archive_element callback.
* xcofflink.c (xcoff_link_check_dynamic_ar_symbols): Take new "subsbfd"
reference parameter and pass it when invoking add_archive_element
callback.
(xcoff_link_check_ar_symbols): Likewise.
(xcoff_link_check_archive_element): Handle bfd substitution if it was
set by callback in the above.
include/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 6/6).
* bfdlink.h (struct_bfd_link_callbacks): Document new argument
to add_archive_element callback used to return a replacement bfd which
is to be added to the hash table in place of the original element.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 6/6).
* ldlang.c (load_symbols): Handle bfd subsitution when calling the
add_archive_element callback.
* ldmain.c (add_archive_element)[ENABLE_PLUGINS]: Offer the archive
member to the plugins and if claimed set "subsbfd" output parameter to
point to the dummy IR-only BFD.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 6/6).
* ld-plugin/plugin-10.d: New dump test control script.
* ld-plugin/plugin-11.d: Likewise.
* ld-plugin/plugin.exp: Run them.
---
gdbadmin [Thu, 14 Oct 2010 00:00:02 +0000 (00:00 +0000)]
*** empty log message ***
amodra [Wed, 13 Oct 2010 23:00:05 +0000 (23:00 +0000)]
daily update
devans [Wed, 13 Oct 2010 20:08:39 +0000 (20:08 +0000)]
New python module gdb.types.
* NEWS: Document it.
* data-directory/Makefile.in (PYTHON_FILES): Add gdb/types.py.
* python/lib/gdb/types.py: New file.
testsuite/
* lib/gdb-python.exp (gdb_check_python_config): New function.
* gdb.python/Makefile.in (EXECUTABLES): Add lib-types.
* gdb.python/lib-types.cc: New file.
* gdb.python/lib-types.exp: New file.
doc/
* gdb.texinfo (Python): Add "Python modules".
(Types in Python): Add reference to gdb.types section.
(Python modules): New node.
tromey [Wed, 13 Oct 2010 17:38:05 +0000 (17:38 +0000)]
* language.h (LA_PRINT_ARRAY_INDEX): Fix argument name.
devans [Wed, 13 Oct 2010 15:10:07 +0000 (15:10 +0000)]
* c-typeprint.c: Whitespace cleanup.
(cp_type_print_method_args): Remove unnecessary forward decl.
(cp_type_print_derivation_info): Ditto.
(c_type_print_varspec_prefix): Mark as static at definition.
(c_type_print_modifier): Fix arg descriptions.
jkratoch [Wed, 13 Oct 2010 13:24:36 +0000 (13:24 +0000)]
gdb/
* python/py-breakpoint.c (bppy_set_condition): New comment.
* python/py-cmd.c (cmdpy_function): Call also gdbpy_print_stack for
failed PyUnicode_Decode.
(cmdpy_completer): Skip element for failed
python_string_to_host_string.
(cmdpy_init): Return -1 on failed python_string_to_host_string.
* python/py-frame.c (frapy_read_var): Extend the function comment.
* python/py-function.c (fnpy_init): Return -1 on failed
python_string_to_host_string.
* python/py-inferior.c (infpy_read_memory, infpy_write_memory): Extend
the function comment.
(infpy_search_memory): Extend the function comment. Remove the
PyErr_SetString call on already set error state.
* python/py-param.c (set_parameter_value): Extend the function
comment. Return -1 on failed python_string_to_host_string, twice.
(set_attr): Extend the function comment.
(compute_enum_values): Extend the function comment. New variable
back_to. Protect self->enumeration by BACK_TO cleanups. Return 0 on
failed python_string_to_host_string.
(get_doc_string): Call gdbpy_print_stack on failed
python_string_to_host_string.
(parmpy_init): Extend the function comment.
* python/py-prettyprint.c (pretty_print_one_value): Likewise.
(gdbpy_get_display_hint, print_children): Call gdbpy_print_stack on
failed python_string_to_host_string.
* python/py-value.c (valpy_new, valpy_getitem, valpy_call)
(valpy_binop, valpy_richcompare): Extend the function comment.
* python/python.c
(struct python_env) <error_type, error_value, error_traceback>: New
fields.
(restore_python_env): Handle PyErr_Occurred. Call PyErr_Restore.
(ensure_python_env): Call PyErr_Fetch.
* varobj.c (update_dynamic_varobj_children): Call gdbpy_print_stack on
failed convert_value_from_python.
(value_get_print_value): Call gdbpy_print_stack on failed
python_string_to_target_python_string.
gdb/testsuite/
* gdb.python/py-error.exp: New file.
* gdb.python/py-error.py: New file.
gdbadmin [Wed, 13 Oct 2010 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***
amodra [Tue, 12 Oct 2010 23:00:04 +0000 (23:00 +0000)]
daily update
tromey [Tue, 12 Oct 2010 22:44:18 +0000 (22:44 +0000)]
* python/py-prettyprint.c (search_pp_list): Fix error checking.
swagiaal [Tue, 12 Oct 2010 20:58:15 +0000 (20:58 +0000)]
Eliminate 'is_ancestor' redundant code.
2010-10-12 Sami Wagiaalla <swagiaal@redhat.com>
* gdbtypes.c (do_is_ancestor): New function.
(is_ancestor): Use do_is_ancestor.
(is_public_ancestor): Use do_is_ancestor.
ian [Tue, 12 Oct 2010 19:23:15 +0000 (19:23 +0000)]
Correct ChangeLog attribution.
ian [Tue, 12 Oct 2010 19:21:40 +0000 (19:21 +0000)]
* script-sections.h (class Script_sections): Make
Sections_elements typedef public.
* script-sections.cc (class Sort_output_sections): Add elements_
field. Add constructor which sets it; change all callers.
(Sort_output_sections::is_before): New function.
(Sort_output_sections::operator()): Call is_before.
* configure.ac (NATIVE_OR_CROSS_LINKER): New automake
conditional.
* testsuite/script_test_10.sh: New test. Test script section
order.
* testsuite/script_test_10.t: Likewise.
* testsuite/script_test_10.s: Likewise.
* testsuite/Makefile.am: Wrap the cross linker tests and the
common tests into NATIVE_OR_CROSS_LINKER.
(check_SCRIPTS): Add script_test_10.sh.
(check_DATA): Add script_test_10.stdout.
(script_test_10.o, script_test_10): New targets.
(script_test_10.stdout): New target.
* configure, testsuite/Makefile.in: Regenerate.
ian [Tue, 12 Oct 2010 19:00:30 +0000 (19:00 +0000)]
* arm.cc (Target_arm::Scan::local): Report the unsupported reloc
error for the deprecated relocations.
(Target_arm::Scan::global): Likewise.
(Target_arm::Relocate::relocate): Likewise.
jkratoch [Tue, 12 Oct 2010 18:41:05 +0000 (18:41 +0000)]
gdb/testsuite/
* gdb.base/break-interp.exp (test_ld): Replace gdb_expect by
gdb_test_multiple.
ro [Tue, 12 Oct 2010 18:39:35 +0000 (18:39 +0000)]
* emultempl/solaris2.em (elf_solaris2_before_allocation): Renamed
basever_syms to global_syms.
Emit global_syms into .dynamic section for all executables and
shared objects.
(elf_solaris2_after_allocation): New function.
(LDEMUL_AFTER_ALLOCATION): Use it.
* emulparams/solaris2.sh: New file.
* emulparams/elf32_sparc_sol2.sh: Use it.
* emulparams/elf64_sparc_sol2.sh: Likewise.
* emulparams/elf_i386_sol2.sh: Likewise.
* emulparams/elf_x86_64_sol2.sh: Likewise.
* Makefile.am (eelf32_sparc_sol2.c): Depend on
$(srcdir)/emulparams/solaris2.sh.
(eelf64_sparc_sol2.c): Likewise.
(eelf_x86_64_sol2.c): Likewise.
(eelf_i386_sol2.c): Likewise.
* Makefile.in: Regenerate.
jkratoch [Tue, 12 Oct 2010 18:12:48 +0000 (18:12 +0000)]
gdb/testsuite/
* gdb.base/break-interp.exp: Use ldlags for linking flags.
* gdb.base/prelink.exp: Likewise.
* gdb.base/solib-nodir.exp: Likewise.
* lib/gdb.exp (gdb_compile) <*-*-openbsd*>
(gdb_compile) <shlib_load>: Use ldlags for linking flags.
* lib/prelink-support.exp (build_executable_own_libs): Likewise.
uweigand [Tue, 12 Oct 2010 17:17:35 +0000 (17:17 +0000)]
* break-interp.exp (test_ld): Use two separate gdb_expect statements
for the "info files" test to avoid timeouts on slow machines.
muller [Tue, 12 Oct 2010 15:40:03 +0000 (15:40 +0000)]
* ser-go32.c (struct dos_ops): Add missing fdopen field.
rsandifo [Tue, 12 Oct 2010 15:30:24 +0000 (15:30 +0000)]
gold/
* fileread.cc (Input_file::find_file): Initialize *found_name
and *namep when using the fallback search for case 4.
mgretton [Tue, 12 Oct 2010 08:46:15 +0000 (08:46 +0000)]
* gdb/arm-tdep.c (arm_mode_strings): Add NULL entry at end of array.
gdbadmin [Tue, 12 Oct 2010 00:00:02 +0000 (00:00 +0000)]
*** empty log message ***
ccoutant [Mon, 11 Oct 2010 23:15:25 +0000 (23:15 +0000)]
* options.h (class General_options): Redefine -z lazy as an alias for
the negation of -z now.
amodra [Mon, 11 Oct 2010 23:00:05 +0000 (23:00 +0000)]
daily update
schwab [Mon, 11 Oct 2010 22:18:42 +0000 (22:18 +0000)]
binutils/:
* binutils-all/m68k/objdump.exp: Add fnop test.
* binutils-all/m68k/fnop.s: New file.
opcodes/:
* m68k-opc.c (m68k_opcodes): Move fnop before fbf.
jkratoch [Mon, 11 Oct 2010 21:36:25 +0000 (21:36 +0000)]
gdb/testsuite/
* gdb.cp/infcall-dlopen.cc (openlib): Support NULL FILENAME.
(main): Make openlib dummy call.
ian [Mon, 11 Oct 2010 20:04:04 +0000 (20:04 +0000)]
* resolve.cc (symbol_to_bits): Report the value of the unsupported
binding.
devans [Mon, 11 Oct 2010 19:24:49 +0000 (19:24 +0000)]
* c-typeprint.c (c_type_print_modifier): Add note that this prints
the address space id too.
devans [Mon, 11 Oct 2010 15:46:09 +0000 (15:46 +0000)]
* gdb.texinfo (Values From Inferior): Add reference to "Types in
Python" from gdb.Value.type description.
krebbel [Mon, 11 Oct 2010 11:56:53 +0000 (11:56 +0000)]
2010-10-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* s390-opc.c: Make the instruction masks for the load/store on
condition instructions to cover the condition code mask as well.
* s390-opc.txt: lgoc -> locg and stgoc -> stocg.
2010-10-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* gas/s390/zarch-z196.d: Adjust the load/store on condition
instructions.
* gas/s390/zarch-z196.s: Likewise.
amodra [Mon, 11 Oct 2010 09:12:25 +0000 (09:12 +0000)]
* ld-elf/orphan-region.d: xfail frv-*-*.
amodra [Mon, 11 Oct 2010 09:11:33 +0000 (09:11 +0000)]
* elf32-frv.c (elf32_frv_relocate_section): Set "name" for global syms.
(elf32_frvfdpic_finish_dynamic_sections): Don't crash on
__ROFIXUP_END__ defined in shared lib.
vapier [Mon, 11 Oct 2010 08:56:41 +0000 (08:56 +0000)]
fix dates in previous blackfin commits
jkratoch [Mon, 11 Oct 2010 08:50:28 +0000 (08:50 +0000)]
gdb/
Fix attaching to re-prelinked executables on ppc64.
* solib-svr4.c (svr4_exec_displacement): New variable plt2_asect,
initialize it, try to adjust FILESZ field by it.
jkratoch [Mon, 11 Oct 2010 08:47:47 +0000 (08:47 +0000)]
gdb/testsuite/
Fix missing _start PIE relocation on ppc64 due to stop on dl_main.
* break-interp.exp (reach): Move the core body ...
(reach_1): ... here. Use stop-on-solib-events for _dl_debug_state.
(test_ld): Provide always real argument, even to the linker. Replace
dl_main by _dl_debug_state.
jkratoch [Mon, 11 Oct 2010 08:45:11 +0000 (08:45 +0000)]
gdb/testsuite/
Fix results of prelinked PIEs on ppc*.
* gdb.base/break-interp.exp (reach, test_core, test_attach_gdb):
Accept also DISPLACEMENT "PRESENT".
(main): Replace "ZERO" displacements by "PRESENT".
vapier [Mon, 11 Oct 2010 08:37:19 +0000 (08:37 +0000)]
gas: blackfin: reign in overeager insn flag handling
Currently, trying to declare single letter variables in Blackfin assembly
can sometimes lead to parser errors if that letter is used for insn flags.
For example, X, Z, S, M, and T are used to change the behavior of insns:
R0 = 1; R0 = 1 (X); R0 = 1 (Z);
But the current parser just looks for single letter tokens rather than
ones that show up in the (FLAGS) field. So only match these letters as
flags when they're in parentheses.
Not a complete fix, but it at least lets gcc tests pass now (the test
gcc/testsuite/gcc.c-torture/compile/mangle-1.c to be exact). A complete
fix would require a significant parser rewrite in order to handle:
R0 = (x) (x); /* zero extend the address of the symbol "x" */
R0 = W; R0 = W[P0];
Signed-off-by: Steve Kilbane <steve.kilbane@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
vapier [Mon, 11 Oct 2010 08:36:29 +0000 (08:36 +0000)]
gas: blackfin: support numeric local labels with LOOP_BEGIN/LOOP_END pseudo insns
The current LOOP_BEGIN/LOOP_END pseudo insns hit parser errors when trying
to use numeric local labels. So add support for them.
Signed-off-by: David Gibson <david.gibson@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
vapier [Mon, 11 Oct 2010 08:35:51 +0000 (08:35 +0000)]
gas: blackfin: fix LOOP_BEGIN/LOOP_END pseudo insns handling of local labels
The current LOOP_BEGIN/LOOP_END pseudo insns hit "Internal errors" when
using local labels as the loop names due to attempts at removing them.
Signed-off-by: David Gibson <david.gibson@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
amodra [Mon, 11 Oct 2010 08:10:42 +0000 (08:10 +0000)]
* ld-mmix/sec-3.d: Adjust for 2010-09-29 orphan change.
* ld-mmix/sec-7m.d: Likewise.
tschwinge [Mon, 11 Oct 2010 07:38:51 +0000 (07:38 +0000)]
* elf32-arm.c (elf32_arm_final_link_relocate)
(elf32_arm_relocate_section): Handle relocations against STN_UNDEF.
jkratoch [Mon, 11 Oct 2010 06:10:35 +0000 (06:10 +0000)]
opcodes/
* Makefile.am (libopcodes_a_SOURCES): New as empty.
* Makefile.in: Regenerate.
davek [Mon, 11 Oct 2010 00:21:44 +0000 (00:21 +0000)]
* elflink.c (_bfd_elf_link_output_relocs): Delete unused variable
"output_rel_hdr".
gdbadmin [Mon, 11 Oct 2010 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***
amodra [Sun, 10 Oct 2010 23:00:06 +0000 (23:00 +0000)]
daily update
gdbadmin [Sun, 10 Oct 2010 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***
amodra [Sat, 9 Oct 2010 23:00:05 +0000 (23:00 +0000)]
daily update
corinna [Sat, 9 Oct 2010 11:01:03 +0000 (11:01 +0000)]
*** empty log message ***
corinna [Sat, 9 Oct 2010 11:00:47 +0000 (11:00 +0000)]
* new-features.sgml (ov-new1.7.8): Document reinstantiation of the
original 1.7 CWD handling.
corinna [Sat, 9 Oct 2010 10:54:12 +0000 (10:54 +0000)]
* cygheap.h (cwdstuff::override_win32_cwd): Declare.
* ntdll.h (struct _PEB): Add members accessed by the fast cwd method
starting with Vista.
(struct _KUSER_SHARED_DATA): Define with only the DismountCount.
(RtlAllocateHeap): Declare.
(RtlEnterCriticalSection): Declare.
(RtlFreeHeap): Declare.
(RtlLeaveCriticalSection): Declare.
* path.cc (get_user_proc_parms): Remove.
(struct _FAST_CWD): New structure.
(fast_cwd_ptr): Define.
(SharedUserData): Define.
(peek32): Define.
(find_fast_cwd_pointers): New function to find the global pointer
to the current FAST_CWD structure.
(copy_cwd_str): New helper function.
(cwdstuff::override_win32_cwd): New method to set the Win32 CWD.
(cwdstuff::init): Just call override_win32_cwd from here when
started from native Win32 parent.
(cwdstuff::set): Access Win32 CWD via PEB reference instead of using
get_user_proc_parms function. Memorize old DismountCount before
opening directory handle. Call override_win32_cwd to set up Win32 CWD.
Be more verbose in comments.
* wincap.h (wincaps::has_fast_cwd): New element.
* wincap.cc: Implement has_fast_cwd element throughout.
amodra [Sat, 9 Oct 2010 07:56:18 +0000 (07:56 +0000)]
Regenerate for bool -> bool_ change
amodra [Sat, 9 Oct 2010 06:50:20 +0000 (06:50 +0000)]
cgen/
* utils-cgen.scm (gen-attr-accessors): Rename bool attribute to bool_.
* cpu/mep.opc (mep_cgen_insn_supported): Ditto.
include/opcode/
* cgen.h (CGEN_ATTR, CGEN_ATTR_TYPE): Rename bool attribute to bool_.
(CGEN_ATTR_BOOLS, CGEN_ATTR_CGEN_INSN_ALIAS_VALUE): Likewise.
opcodes/
* fr30-desc.h: Regenerate.
* frv-desc.h: Regenerate.
* ip2k-desc.h: Regenerate.
* iq2000-desc.h: Regenerate.
* lm32-desc.h: Regenerate.
* m32c-desc.h: Regenerate.
* m32r-desc.h: Regenerate.
* mep-desc.h: Regenerate.
* mep-opc.c: Regenerate.
* mt-desc.h: Regenerate.
* openrisc-desc.h: Regenerate.
* xc16x-desc.h: Regenerate.
* xstormy16-desc.h: Regenerate.
hjl [Sat, 9 Oct 2010 05:52:28 +0000 (05:52 +0000)]
Use BYTE_GET_SIGNED on r_addend.
2010-10-08 H.J. Lu <hongjiu.lu@intel.com>
* dwarf.c (byte_get_signed): Make it extern.
* dwarf.h (byte_get_signed): New.
* readelf.c (BYTE_GET_SIGNED): New.
(slurp_rela_relocs): Use BYTE_GET_SIGNED on r_addend.
(dump_relocations): Properly dump r_addend.
jjohnstn [Sat, 9 Oct 2010 02:33:28 +0000 (02:33 +0000)]
2010-10-08 Bernd Schmidt <bernds@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
* configure.host: Handle tic6x targets.
* libc/include/machine/ieeefp.h: Define endianness for C6X.
* libc/include/machine/setjmp.h: Add __TMS320C6X__ case.
* libc/machine/configure.in: Handle tic6x targets.
* libc/machine/configure: Regenerate.
* libc/machine/tic6x/Makefile.am, libc/machine/tic6x/configure.in,
libc/machine/tic6x/setjmp.S: New.
* libc/machine/tic6x/Makefile.in, libc/machine/tic6x/aclocal.m4,
libc/machine/tic6x/configure: New (generated).
jjohnstn [Sat, 9 Oct 2010 02:31:21 +0000 (02:31 +0000)]
2010-10-08 Bernd Schmidt <bernds@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
* configure.in: Handle tic6x targets.
* configure: Regenerate.
* tic6x/Makefile.in, tic6x/configure.in, tic6x/crt0.S,
tic6x/getpid.c, tic6x/kill.c, tic6x/sbrk.c, tic6x/syscalls.c: New.
* tic6x/configure: New (generated).
jjohnstn [Sat, 9 Oct 2010 02:29:34 +0000 (02:29 +0000)]
2010-10-08 Bernd Schmidt <bernds@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
* COPYING.LIBGLOSS: Add National Semiconductor and CodeSourcery
notices.
* COPYING.NEWLIB: Add Texas Instruments notice.
gdbadmin [Sat, 9 Oct 2010 00:00:32 +0000 (00:00 +0000)]
*** empty log message ***
amodra [Fri, 8 Oct 2010 23:00:05 +0000 (23:00 +0000)]
daily update
amodra [Fri, 8 Oct 2010 22:34:35 +0000 (22:34 +0000)]
* reloc.c (BFD_RELOC_ARM_HVC): Add.
* libbfd.h: Regenerate.
drow [Fri, 8 Oct 2010 20:45:20 +0000 (20:45 +0000)]
* tracepoint.c (merge_uploaded_trace_state_variables): Only print
messages if info_verbose.
swagiaal [Fri, 8 Oct 2010 18:28:46 +0000 (18:28 +0000)]
Test case for unimplemented overload cases.
2010-10-08 Sami Wagiaalla <swagiaal@redhat.com>
* gdb.cp/oranking.exp: New test.
* gdb.cp/oranking.cc: New test program.
kwerner [Fri, 8 Oct 2010 16:50:51 +0000 (16:50 +0000)]
gdb:
* valops.c (value_cast): Handle vector types.
* valarith.c (value_binop): Widen scalar to vector if appropriate.
gdb/testsuite:
* gdb.base/gnu_vector.c (ia, ib, fa, fb): New variables.
* gdb.base/gnu_vector.exp: Add tests for scalar to vector widening.
ktietz [Fri, 8 Oct 2010 15:54:17 +0000 (15:54 +0000)]
2010-10-08 Kai Tietz <kai.tietz@onevision.com>
* pei-x86_64.c (find_next_xdata_or_end): Removed.
(pex64_dump_xdata): Remove arguments stop, onaline,
and pdata. New argument endx. Print term "none"
instead of misleading "CFA".
(sort_xdata_arr): New function.
(pex64_bfd_print_pdata): Use binary search/sort for unwind-RVAs
instead of searching quadratic.
corinna [Fri, 8 Oct 2010 15:28:48 +0000 (15:28 +0000)]
* libc/include/sys/unistd.h: Declare getsid, setegid, seteuid for RTEMS.
corinna [Fri, 8 Oct 2010 15:24:55 +0000 (15:24 +0000)]
* libm/common/sf_llrint.c, libm/common/sf_round.c: Add explicit casts
to __uint32_t to avoid overflows on implicit casts.
jsm28 [Fri, 8 Oct 2010 15:12:28 +0000 (15:12 +0000)]
* nm.c (value_format_64bit): Define appropriately for __MSVCRT__.
(set_print_radix): Update for __MSVCRT__ definition of
value_format_64bit.
corinna [Fri, 8 Oct 2010 15:01:14 +0000 (15:01 +0000)]
* libm/complex/complex.tex: Add empty stub.
amodra [Fri, 8 Oct 2010 14:00:44 +0000 (14:00 +0000)]
Fix build with -DDEBUG=7
uweigand [Fri, 8 Oct 2010 13:31:07 +0000 (13:31 +0000)]
* arm-tdep.c (thumb_expand_immediate): New function.
(thumb_instruction_changes_pc): Likewise.
(thumb2_instruction_changes_pc): Likewise.
(thumb_analyze_prologue): Handle 32-bit Thumb instructions during
prologue parsing. Improved support for optimized code.
(thumb_scan_prologue): Do not reply on line-number information,
use same heuristics as arm_scan_prologue insead.
(skip_prologue_function): Accept functions
"__tls_get_addr" and "__aeabi_read_tp".
uweigand [Fri, 8 Oct 2010 13:24:53 +0000 (13:24 +0000)]
2010-10-08 Ulrich Weigand <uweigand@de.ibm.com>
Daniel Jacobowitz <dan@codesourcery.com>
* arm-tdep.c (thumb_in_function_epilogue_p)
(arm_in_function_epilogue_p): New.
(arm_gdbarch_init): Install arm_in_function_epilogue_p as
gdbarch_in_function_epilogue_p callback.
corinna [Fri, 8 Oct 2010 10:56:14 +0000 (10:56 +0000)]
* new-features.sgml (ov-new1.7.8): Document new C99 complex API.
corinna [Fri, 8 Oct 2010 10:51:16 +0000 (10:51 +0000)]
* cygwin.din: Export new complex math functions from newlib.
* posix.sgml: Move newly exported complex functions to implemented
SUSv4 functions.
* include/cygwin/version.h: Bump API minor version.
corinna [Fri, 8 Oct 2010 10:49:28 +0000 (10:49 +0000)]
* libm/math/w_cabs.c: Delete.
* libm/math/wf_cabs.c: Delete.
* libm/math/Makefile.am (src): Remove w_cabs.c.
(fsrc): Remove wf_cabs.c.
* libm/math/Makefile.in: Regenerate.
corinna [Fri, 8 Oct 2010 10:35:13 +0000 (10:35 +0000)]
* libc/include/complex.h: New complex header.
* libm/common/fdlibm.h: Added ifdef _COMPLEX_H.
* libm/complex/*: New complex functions imported from NetBSD.
* libm/Makefile.am: Added complex subdir.
* libm/Makefile.in: Regenerate.
* libm/configure.in: Added complex subdir.
* libm/configure: Regenerate.
gdbadmin [Fri, 8 Oct 2010 00:00:32 +0000 (00:00 +0000)]
*** empty log message ***
amodra [Thu, 7 Oct 2010 23:00:05 +0000 (23:00 +0000)]
daily update
davek [Thu, 7 Oct 2010 20:50:01 +0000 (20:50 +0000)]
* configure.ac (build_lto_plugin): New shell variable.
(--enable-lto): Turn on by default for all non-ELF platforms that
have had LTO support added so far. Set build_lto_plugin appropriately
for both ELF and non-ELF.
(configdirs): Add lto-plugin or not based on build_lto_plugin.
* configure: Regenerate.
devans [Thu, 7 Oct 2010 19:34:51 +0000 (19:34 +0000)]
* cc-with-index.sh (output_file): Default to a.out.
rwild [Thu, 7 Oct 2010 19:25:44 +0000 (19:25 +0000)]
Add missing ChangeLog entry for toplevel configure from 2010-07-26.
devans [Thu, 7 Oct 2010 17:23:28 +0000 (17:23 +0000)]
* dwarf2read.c (mapped_index): Rename member index_table to
symbol_table and index_table_slots to symbol_table_slots.
All uses updated.
(create_symbol_hash_table): Renamed from create_index_table.
All callers updated.
(add_indices_to_cpool): Rename arg index_table to symbol_hash_table.
(write_hash_table): Rename local index_table to symbol_hash_table.
devans [Thu, 7 Oct 2010 17:02:06 +0000 (17:02 +0000)]
* addrmap.h (addrmap_foreach_fn): New typedef.
(addrmap_foreach): Declare.
* addrmap.c (struct addrmap_funcs): New member foreach.
(addrmap_foreach): New function.
(addrmap_fixed_foreach): New function.
(addrmap_fixed_funcs): Update.
(struct mutable_foreach_data): New struct.
(addrmap_mutable_foreach_worker): New function.
(addrmap_mutable_foreach): New function.
(addrmap_mutable_funcs): Update.
dj [Thu, 7 Oct 2010 16:20:35 +0000 (16:20 +0000)]
merge from gcc
corinna [Thu, 7 Oct 2010 14:03:25 +0000 (14:03 +0000)]
* fhandler.h (fhandler_base::get_stat_access): Delete.
* fhandler_disk_file.cc (fhandler_base::fstat_helper): Always check
executable suffix to get x-bits for .exe files also in notexec case.
Always reopen file when checking for file header.
* ntdll.h (wait_pending): Delete.
* path.cc (symlink_info::check_shortcut): Drop call to wait_pending
since file is always opened for sync IO.
(symlink_info::check_sysfile): Ditto.
(MIN_STAT_ACCESS): Remove.
(FULL_STAT_ACCESS): Remove.
(symlink_info::check): Drop access flag. Revert to open file with
just read attributes access. Reorder symlink check to check for
reparse points first. Don't check reparse points for anything else,
even on remote drives. Open file for GENERIC_READ when trying to
read shortcuts or system-bit symlinks. Accommodate dropped access
flag in call to path_conv_handle::set.
* path.h (class path_conv_handle): Drop access flag and accommodate
all related methods.
bernds [Thu, 7 Oct 2010 11:28:48 +0000 (11:28 +0000)]
gas/
* config/tc-tic6x.c (tic6x_try_encode): Correct encoding of fstg field
in SPKERNEL instructions.
opcodes/
* tic6x-dis.c (print_insn_tic6x): Correct decoding of fstg field
in SPKERNEL instructions.
gas/testsuite/
* gas/tic6x/insns-c674x-sploop.d: Add two more sploop/spkernel tests.
* gas/tic6x/insns-c674x-sploop.s: Likewise.
hilfingr [Thu, 7 Oct 2010 08:32:36 +0000 (08:32 +0000)]
Correct dict_hash to our most recent version.
Several changes to dict_hash from Adacore's local version were inadvertantly
left out of the last change to that function. These changes conservatively
cause dict_hash to revert to msymbol_hash_iw in more cases where the symbol
being hashed is known not to be Ada-encoded. This avoids a few cases where
the function hashes large groups of names with similar prefixes to the same
value.
Changelog:
gdb/
* dictionary.c (dict_hash): Revert to msymbol_hash_iw in
more cases.
hilfingr [Thu, 7 Oct 2010 07:13:49 +0000 (07:13 +0000)]
Rework symbol searches to move Ada-specific stuff to ada-lang.c.
This is a clean-up of some of our symbol-lookup machinery to pull some
kludgy Ada-specific definitions out of psymtab.c. In place of
map_ada_symtabs and ada_lookup_partial_symbol, we have a method
map_matching_symbols, which searches through all symbol tables and
partial symbol tables looking for a symbol that matches according to
a matching function that is passed as a parameter. This requires some
care, because partial symbol tables speed up searches by binary search,
while full symbol tables use hashing. To call map_matching_symbols, therefore,
you may need to supply both a matching function that is compatible with the
dictionary hash function and an ordering relation that is compatible with
strcmp_iw, which is used to order partial symbol tables.
Having added this general routine to psymtab.c, we use it in ada-lang.c
to rework add_non_local_symbols (now renamed add_nonlocal_symbols).
Changelog:
gdb/
* ada-lang.c (full_match): Declare.
(ada_match_name): Rename to match_name (we should avoid prefixing static
symbols with "ada_").
(match_name): New name for ada_match_name.
(struct ada_psym_data): Remove and replace with...
(struct match_data): User data for map_matching_symbols.
(ada_add_psyms): Remove.
(aux_add_nonlocal_symbols): New function, used as callback for
map_matching_symbols.
(compare_names): Ordering function adopted from strcmp_iw for Ada-encoded
symbols.
(ada_add_non_local_symbols): Rename to add_nonlocal_symbols.
(add_nonlocal_symbols): Renamed from ada_add_non_local_symbols.
Rework to use map_matching_symbols instead of map_ada_symtabs.
(ada_lookup_symbol_list): Use add_nonlocal_symbols.
* psymtab.c: Include dependency on dictionary.h.
(match_partial_symbol): New function.
(ada_lookup_partial_symbol): Remove.
(map_block): New function, auxiliary to map_matching_symbols_psymtab.
(map_matching_symbols_psymtab): New function.
(psym_functions): Replace map_ada_symtabs with map_matching_symbols_psymtab.
* symfile.h: Replace map_ada_symtabs definition with map_matching_symbols.
hilfingr [Thu, 7 Oct 2010 06:53:42 +0000 (06:53 +0000)]
Extend hashed symbol dictionaries to work with Ada
This patch allows Ada to speed up symbol lookup by using the facilities
in dictionary.[ch] for hashed lookups. First, we generalize dictionary
search to allow clients to specify any matching function compatible with
the hashing function. Next, we modify the hashing algorithm so that symbols
that wild-match a name hash to the same value. Finally, we modify Ada
symbol lookup to use these facilities.
Because this patch touches on a hashing algorithm used by other
languages, I took the precaution of doing a speed test on a list of
about 12000 identifiers (repeatedly inserting all of them into a table
and then doing a lookup on a million names at random, thus testing the
speed of the hashing algorithm and how well it distributed names).
There was actually a slight speedup, probably as a result of open-
coding some of the tests in msymbol_hash_iw. By design, the revised
hashing algorithm produces the same results as the original on most
"normal" C identifiers.
We considered augmenting the dictionary interface still further by allowing
different hashing algorithms for different dictionaries, based on the
(supposed) language of the symbols in that dictionary. While this produced
better isolation of the changes to Ada programs, the additional flexibility
also complicated the dictionary interface. I'd prefer to keep things
simple for now.
Tested w/o regressions on Linux i686.
ChangeLog:
gdb/
* ada-lang.c (ada_match_name): Use new API for wild_match.
(wild_match): Change API to be consistent with that of strcmp_iw;
return 0 for a match, and switch operand order.
(full_match): New function.
(ada_add_block_symbols): Use dict_iter_match_{first,next} for
matching to allow use of hashing.
* dictionary.c (struct dict_vector): Generalize iter_name_first,
iter_name_next ot iter_match_first, iter_match_next.
(iter_name_first_hashed): Replace with iter_match_first_hashed.
(iter_name_next_hashed): Replace with iter_match_next_hashed.
(iter_name_first_linear): Replace with iter_match_first_linear.
(iter_name_next_linear): Replace with iter_match_next_linear.
(dict_iter_name_first): Re-implement to use dict_iter_match_first.
(dict_iter_name_next): Re-implement to use dict_iter_match_next.
(dict_iter_match_first): New function.
(dict_iter_match_next): New function.
(dict_hash): New function.
* dictionary.h (dict_iter_match_first, dict_iter_match_next): Declare.
* psymtab.c (ada_lookup_partial_symbol): Use new wild_match API.
devans [Thu, 7 Oct 2010 00:18:19 +0000 (00:18 +0000)]
* data-directory/Makefile.in: Remove @host_makefile_frag@, @frags@.
gdbadmin [Thu, 7 Oct 2010 00:00:02 +0000 (00:00 +0000)]
*** empty log message ***
hp [Wed, 6 Oct 2010 23:45:44 +0000 (23:45 +0000)]
* callback.c (os_lseek): Call wrap on lseek result.