Jan Kratochvil [Wed, 2 Jun 2010 22:41:56 +0000 (22:41 +0000)]
gdb/
Support DW_TAG_module as separate namespaces.
* dwarf2read.c (typename_concat): New parameter physname.
(read_module_type): New function and declaration.
(scan_partial_symbols): Scan also DW_TAG_module children.
(partial_die_parent_scope): Accept scope even from DW_TAG_module. Pass
to typename_concat backward compatible physname value 0.
(partial_die_full_name, read_namespace_type): Pass to typename_concat
backward compatible physname value 0.
(add_partial_module, read_module): Remove FIXME comment.
(process_die) <DW_TAG_module>: Set PROCESSING_HAS_NAMESPACE_INFO.
(die_needs_namespace) <DW_TAG_variable>: Allow returning true even for
DIEs under DW_TAG_module.
(dwarf2_compute_name): Move the ada block for DW_AT_linkage_name and
DW_AT_MIPS_linkage_name first, extend it for language_fortran
&& physname and return there instead of just setting NAME. Extend
the main block for language_fortran. Pass physname parameter to the
typename_concat call.
(read_import_statement, read_func_scope, get_scope_pc_bounds)
(load_partial_dies, determine_prefix): Support also DW_TAG_module.
(new_symbol): Fill in cplus_specific.demangled_name if it is still
missing from SYMBOL_SET_NAMES in the language_fortran case.
(new_symbol) <DW_TAG_variable>: Force LOC_UNRESOLVED for gfortran module
variables.
(read_type_die) <DW_TAG_module>: New.
(MAX_SEP_LEN): Increase to 7.
(typename_concat): New parameter physname. New variable lead. Support
also language_fortran.
* f-exp.y (yylex): Consider : also as a symbol name character class.
* f-lang.c: Include cp-support.h.
(f_word_break_characters, f_make_symbol_completion_list): New functions.
(f_language_defn): Use cp_lookup_symbol_nonlocal,
f_word_break_characters and f_make_symbol_completion_list.
* f-typeprint.c (f_type_print_base) <TYPE_CODE_MODULE>: New.
* gdbtypes.h (enum type_code) <TYPE_CODE_MODULE>: New.
* symtab.c (symbol_init_language_specific): Support language_fortran.
(symbol_find_demangled_name): New comment on language_fortran.
(symbol_natural_name, symbol_demangled_name): Use demangled_name even
for language_fortran.
(lookup_symbol_aux_local): Check imports also for language_fortran.
(default_make_symbol_completion_list): Rename to ...
(default_make_symbol_completion_list_break_on): ... this name. New
parameter break_on, use it.
(default_make_symbol_completion_list): New stub.
* symtab.h (default_make_symbol_completion_list_break_on): New
prototype.
gdb/testsuite/
Support DW_TAG_module as separate namespaces.
* gdb.fortran/library-module.exp, gdb.fortran/library-module-main.f90,
gdb.fortran/library-module-lib.f90: New.
* gdb.fortran/module.exp: Replace startup by a prepare_for_testing call.
(print i): Remove.
(continue to breakpoint: i-is-1, print var_i value 1)
(continue to breakpoint: i-is-2, print var_i value 2)
(continue to breakpoint: a-b-c-d, print var_a, print var_b, print var_c)
(print var_d, print var_i value 14, ptype modmany, complete `modm)
(complete `modmany, complete `modmany`, complete `modmany`var)
(show language, setting breakpoint at module): New tests.
* gdb.fortran/module.f90 (module mod): Remove.
(module mod1, module mod2, module modmany, subroutine sub1)
(subroutine sub2, program module): New.
Sriraman Tallam [Tue, 1 Jun 2010 23:37:58 +0000 (23:37 +0000)]
* gold.h (is_wildcard_string): New function.
* layout.cc (Layout::layout): Pass this pointer to add_input_section.
(Layout::layout_eh_frame): Ditto.
(Layout::find_section_order_index): New method.
(Layout::read_layout_from_file): New method.
* layout.h (Layout::find_section_order_index): New method.
(Layout::read_layout_from_file): New method.
(Layout::input_section_position_): New private member.
(Layout::input_section_glob_): New private member.
* main.cc (main): Call read_layout_from_file here.
* options.h (--section-ordering-file): New option.
* output.cc (Output_section::input_section_order_specified_): New
member.
(Output_section::Output_section): Initialize new member.
(Output_section::add_input_section): Add new parameter.
Keep input sections when --section-ordering-file is used.
(Output_section::set_final_data_size): Sort input sections when
section ordering file is specified.
(Output_section::Input_section_sort_entry): Add new parameter.
Check sorting type.
(Output_section::Input_section_sort_entry::compare_section_ordering):
New method.
(Output_section::Input_section_sort_compare::operator()): Change to
consider section_order_index.
(Output_section::Input_section_sort_init_fini_compare::operator()):
Change to consider section_order_index.
(Output_section::Input_section_sort_section_order_index_compare
::operator()): New method.
(Output_section::sort_attached_input_sections): Change to sort
according to section order when specified.
(Output_section::add_input_section<32, true>): Add new parameter.
(Output_section::add_input_section<64, true>): Add new parameter.
(Output_section::add_input_section<32, false>): Add new parameter.
(Output_section::add_input_section<64, false>): Add new parameter.
* output.h (Output_section::add_input_section): Add new parameter.
(Output_section::input_section_order_specified): New
method.
(Output_section::set_input_section_order_specified): New method.
(Input_section::Input_section): Initialize section_order_index_.
(Input_section::section_order_index): New method.
(Input_section::set_section_order_index): New method.
(Input_section::section_order_index_): New member.
(Input_section::Input_section_sort_section_order_index_compare): New
struct.
(Output_section::input_section_order_specified_): New member.
* script-sections.cc (is_wildcard_string): Delete and move modified
method to gold.h.
(Output_section_element_input::Output_section_element_input): Modify
call to is_wildcard_string.
(Output_section_element_input::Input_section_pattern
::Input_section_pattern): Ditto.
(Output_section_element_input::Output_section_element_input): Ditto.
* testsuite/Makefile.am (final_layout): New test case.
* testsuite/Makefile.in: Regenerate.
* testsuite/final_layout.cc: New file.
* testsuite/final_layout.sh: New file.
2010-04-16 Rainer Orth <[email protected]>
* configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx
separately.
* configure: Regenerate.
2010-04-13 Steve Ellcey <[email protected]>
* configure: Regenerate after change to elf.m4.
2010-04-02 Sebastian Pop <[email protected]>
* configure.ac: Add brackets around AC_TRY_COMPILE alternative.
* configure: Regenerated.
2010-04-02 Sebastian Pop <[email protected]>
* configure.ac: Print "buggy but acceptable" when CLooG
revision is less than 9.
* configure: Regenerated.
config/:
Sync from GCC:
2010-04-13 Steve Ellcey <[email protected]>
* elf.m4: Add hppa[12]*-*-hpux* to list of non-elf platforms.
2010-01-05 Rainer Orth <[email protected]>
* stdint.m4 (GCC_HEADER_STDINT): Don't typedef uint8_t etc. if
corresponding macros already exist.
* gdb.texinfo (Set Tracepoints): Mention tracepoints support in
gdbserver, and add cross reference.
(Tracepoints support in gdbserver): New subsection.
* scripttempl/alphavms.sc: Add comments. Move $LINK$ to the
readonly output-section. Handle LIB$INITIALIZE and sections
created by gcc.
* emultempl/vms.em (vms_place_orphan): Add comments.
* vms-lib.c (credat_lo, credat_hi): New fields.
(vms_read_block): Adjust comments.
(vms_write_block): New function.
(_bfd_vms_lib_archive_p): Decode majorid once. Replace some
hard-coded values with constants. Set credat_lo and credat_hi.
(_bfd_vms_lib_mkarchive): Add argument kind.
Set ver, mhd_size and type according to kind.
(_bfd_vms_lib_alpha_mkarchive): New function.
(struct lib_index): Renamed from struct vms_index
(lib_index_cmp): Renamed from vms_index_cmp. Adjusted.
(get_idxlen): Type of idx argument adjusted. Add is_elfidx
argument and handle it.
(vms_write_index): Adjust argument idx. Handle elf indexes.
(_bfd_vms_lib_build_map): Adjust type of arguments modules and res.
(_bfd_vms_lib_write_archive_contents): Add is_elfidx variable and
use it. Handle elf indexes. Set credat.
* libbfd-in.h (_bfd_vms_lib_mkarchive): Renamed to ...
(_bfd_vms_lib_alpha_mkarchive): ... this.
* libbfd.h: Regenerated.
* vms-alpha.c (vms_alpha_vec): Adjust after previous renaming.
Pierre Muller [Mon, 31 May 2010 07:00:41 +0000 (07:00 +0000)]
* windows-nat.c (GetConsoleFontSize, GetCurrentConsoleFont):
New macros.
(windows_set_console_info): New function.
(windows_create_inferior): Call windows_set_console_info
if NEW_CONSOLE is true.
(bad_GetCurrentConsoleFont, bad_GetConsoleFontSize): New functions.
(_initialize_loadable): Initialize GetConsoleFontSize and
GetCurrentConsoleFont.
* elf32-xtensa.c (elf_xtensa_relocate_section): Add a large amount
of code to change the bits in the instructions to match the changes
in the relocations. Declare dest_addr and sym_sec to help.
* gas/config/tc-arm.c (do_t_mov_cmp): In unified syntax encode movs as
lsls and not adds.
* gas/testsuite/gas/arm/thumb2_it_auto.d: Update for change in movs encoding.
gas/arm/thumb2_it.d: Likewise.
gas/arm/thumb32.d: Likewise.
Joel Brobecker [Fri, 28 May 2010 01:32:08 +0000 (01:32 +0000)]
Cache the TSD type in inferior-data (performance).
This is something I noticed while looking at ada_find_any_type.
Use of that function is expensive, since it causes a global lookup.
Reviewing some of the uses, I found that we were calling it to get
a specific type everytime we print a tagged type (the equivalent of
classes in C++); and not only that, we did it 4 times [1]!
Since the type in question (ada__tags__type_specific_data) is guarantied
to remain the same througout the entire life of the inferior, the solution
was to cache that type in inferior private data. This patch creates
an ada-land private-data area, and uses it to store that type after
the first time we look it up.
[1]: The problem is mitigated in AdaCore's tree because we use an Ada
symbol cache which we are thinking of contributing to the FSF tree.
But that's still pretty bad, regardless.
* ada-lang.c (ada_inferior_data): New struct.
(ada_inferior_data): New static global.
(ada_inferior_data_cleanup, get_ada_inferior_data, ada_inferior_exit)
(ada_get_tsd_type): New functions.
(ada_tag_name_2): Use ada_get_tsd_type instead of ada_find_any_type
to look the tsd type up.
(_initialize_ada_language): Attach ada_inferior_exit to inferior_exit
event. Set ada_inferior_data.
Tom Tromey [Thu, 27 May 2010 19:06:12 +0000 (19:06 +0000)]
* arm-tdep.c (push_stack_item): 'contents' now const.
(arm_push_dummy_call): Make 'val' const. Use value_contents, not
value_contents_writeable. Introduce new temporary.
Joel Brobecker [Thu, 27 May 2010 17:37:45 +0000 (17:37 +0000)]
Replace call to value_contents_raw by call to value_contents.
This is something that Tom spotted. It shouldn't make much of a difference
in practice with the current code, but Tom is planning on making some
changes (bitwise optimized-out tracking) in value_contents...
* vms-misc.c: Define __NEW_STARLET. Remove trailing spaces.
(VMS_TIME_FACTOR, VMS_TIME_OFFSET): New macros.
(vms_time_to_time_t): Use them instead of local const.
(vms_time_t_to_vms_time): New function.
(vms_get_time): Likewise.
(vms_raw_get_time): Likewise.
* vms.h (vms_time_t_to_vms_time): New declaration.
(vms_get_time): Likewise.
(vms_raw_get_time): Likewise.
Nick Clifton [Thu, 27 May 2010 10:40:36 +0000 (10:40 +0000)]
* config/tc-arm.c (encode_thumb2_ldmstm): Make warning about
writeback when base register is in register list an error, and
correct check.
(do_t_ldmstm): Change warnings.
* gas/arm/thumb2_ldmstm.d: Add new testcases.
* gas/arm/thumb2_ldmstm.s: Likeiwse.
* gas/arm/thumb2_ldmstm_bad.d: Add testcases to check for
UNPREDICTABLE ldm/stm.
* gas/arm/thumb2_ldmstm_bad.l: Likewise.
* gas/arm/thumb2_ldmstm_bad.s: Likewise.
Doug Evans [Thu, 27 May 2010 03:40:45 +0000 (03:40 +0000)]
Allow python to find its files if moved from original location.
* acinclude.m4 (GDB_AC_DEFINE_RELOCATABLE): New function.
(GDB_AC_WITH_DIR): Call it.
* configure.ac: Define WITH_PYTHON_PATH if we can find the
python installation directory.
* config.in: Regenerate.
* configure: Regenerate.
* defs.h (python_libdir): Declare.
* main.c (python_libdir): Define.
(captured_main): Initialize python_libdir.
* python/python.c (_initialize_python): #ifdef WITH_PYTHON_PATH,
call Py_SetProgramName to make sure python can find its libraries
and modules.
gdb/
* ser-tcp.c (net_open): Check error return from socket() call by its
equality to -1 not by it being negative.
(net_close): Likewise.
gdb/gdbserver/
* gdbreplay.c (remote_open): Check error return from socket() call by
its equality to -1 not by it being negative.
* remote-utils.c (remote_open): Likewise.
sim/arm/
* communicate.c (MYread_char): Check error return from accept() call
by its equality to -1 not by it being negative.
(MYread_charwait): Likewise.
* main.c (main): Likewise for both socket() and accept() calls.
sim/common/
* dv-sockser.c (dv_sockser_init): Check error return from socket()
call by its equality to -1 not by it being negative.
(connected_p): Likewise for accept() call.
sim/cris/
* dv-rv.c (hw_rv_init_socket): Check error return from socket() call
by its equality to -1 not by it being negative.
(hw_rv_write): Likewise.
(hw_rv_handle_incoming): Likewise.
(hw_rv_poll_once): Likewise.
* rvdummy.c (setupsocket): Likewise.
(main): Likewise for accept() call as returned from setupsocket().
sim/m32c/
* main.c (setup_tcp_console): Check error return from socket() call
by its equality to -1 not by it being negative.
* object.cc (Sized_relobj::do_finalize_local_symbols): Use offset
from start of output section instead of address for a local symbol
in a merged or relaxed section when doing a relocatable link.
* gdb.texinfo (General Query Packets) <qSupported>: Describe the
`qRelocInsn' feature.
(Relocate instruction reply packet): New subsection
of `Tracepoint Packets'.
(Tracepoint Packets): Mention that packets QTDP and QTStart
support the qRelocInsn request, and add cross reference to new
subsection.
* vms-alpha.c: Update comments.
(alpha_vms_write_exec): Set lnkflags. Write the GST.
(alpha_vms_link_output_symbol): New function.
(alpha_vms_bfd_final_link): Generate the VMS symbol table.
Set dst_section private field.
(alpha_vms_bfd_final_link): Remove code that set dst_section.