Mike Frysinger [Sat, 31 Mar 2012 18:48:20 +0000 (18:48 +0000)]
sim: bfin: fix typo in BF54x SIC init
The current code triggers a warning:
dv-bfin_sic.c: In function 'bfin_sic_finish':
dv-bfin_sic.c:930:41: warning: operation on 'sic-><U78e8>.bf54x.iwr1'
may be undefined [-Wsequence-point]
This points out the IWR2 register was not being setup because of a typo.
Mike Frysinger [Sat, 31 Mar 2012 18:44:43 +0000 (18:44 +0000)]
sim: bfin: include devices.h to fix build warnings
The place where these funcs get defined do not include the header that
declares their prototypes. Add that to fix -Wmissing-prototypes:
devices.c:59:1: warning: no previous prototype for 'dv_bfin_mmr_invalid'
devices.c:66:1: warning: no previous prototype for 'dv_bfin_mmr_require'
devices.c:99:1: warning: no previous prototype for 'dv_bfin_mmr_check'
devices.c:159:14: warning: no previous prototype for 'dv_get_bus_num'
Joel Brobecker [Thu, 29 Mar 2012 23:30:55 +0000 (23:30 +0000)]
Rename variables in ada-lang.c:ada_make_symbol_completion_list.
This renaming allows us to have variable names that are consistent
with the names of the parameters in the functions where these
variables are used. This also allows us to avoid a -Wshadow warning
in the case of variable "wild_match", which is now renamed to
"wild_match_p".
gdb/ChangeLog:
-Wshadow warning fix.
* ada-lang.c (ada_make_symbol_completion_list): Rename parameters
"wild_match" and "encoded" into "wild_match_p" and "encoded_p".
Adjust code accordingly.
Joel Brobecker [Thu, 29 Mar 2012 23:29:47 +0000 (23:29 +0000)]
Rename "wild_match" parameter in ada-lang.c:ada_add_local_symbols
... to avoid -Wshadow warning...
gdb/ChangeLog:
-Wshadow warning fix.
* ada-lang.c (ada_add_local_symbols): Rename "wild_match"
parameter into "wild_match_p". Adjust code accordingly.
Document this parameter in the function description.
Joel Brobecker [Thu, 29 Mar 2012 18:50:21 +0000 (18:50 +0000)]
Fix -Wshadow error in ada-valprint.c
gdb/ChangeLog:
* ada-valprint.c (ada_val_print_1): Move the code handling
TYPE_CODE_ENUM inside its own lexical block. Declare
variables len and val there, instead of in the function's
top level block. Avoid declaring deref_val again in a way
that shadows another variable of the same name declared
in one of the up-level blocks. Just re-use the up-level
variable instead.
Joel Brobecker [Thu, 29 Mar 2012 18:23:00 +0000 (18:23 +0000)]
Make ada_lookup_encoded_symbol "return" a struct ada_symbol_info
This makes ada_lookup_encoded_symbol more consistent with other functions
such as ada_lookup_symbol_list, and also makes it clearer in the code
using that function that symbol and block are related.
gdb/ChangeLog:
* ada-lang.c (ada_lookup_encoded_symbol): Now returns void.
Replace block_found argument by symbol_info. Adjust
implementation accordingly. Add function documentation.
(ada_lookup_symbol): Adjust to new ada_lookup_encoded_symbol.
Fix documentation.
* ada-lang.h (ada_lookup_encoded_symbol): Update declaration.
* ada-exp.y (write_object_renaming): Adjust to new
ada_lookup_encoded_symbol API.
Joel Brobecker [Wed, 28 Mar 2012 21:31:46 +0000 (21:31 +0000)]
[doco] document the "type_changed" flag further.
gdb/doc/ChangeLog:
* gdb.texinfo (GDB/MI Variable Objects): Document what happens
to the children of a varobj and its update range when -var-update
returns that the varobj's type changed.
Joel Brobecker [Wed, 28 Mar 2012 21:31:29 +0000 (21:31 +0000)]
New varobj language callback: value_is_changeable_p.
This patch introduces a new language-specific callback for varobj
objects, allowing us to move the language-specific bits of the
varobj_value_is_changeable_p routine to language-specific functions.
This is more elegant than testing for the varobj's language...
gdb/ChangeLog:
* varobj.c (default_value_is_changeable_p): New function,
extracted from varobj_value_is_changeable_p. Add declaration.
(ada_value_is_changeable_p): New function, extracted from
varobj_value_is_changeable_p. Add declaration.
(struct language_specific): New field "value_is_changeable_p".
(languages): Add entries for new field.
(varobj_create): Set language before calling install_new_value.
(varobj_value_is_changeable_p): Reimplement to call the varobj's
"value_is_changeable_p" language callback.
Joel Brobecker [Wed, 28 Mar 2012 21:31:18 +0000 (21:31 +0000)]
Varobj support for Ada.
This patch adds varobj support for Ada variables. Most of the code
is implemented in a separate Ada-specific file called ada-varobj.c.
The only bits in varobj.c are the functions used as the hooks in
the language-specific varobj's vector.
Joel Brobecker [Wed, 28 Mar 2012 21:31:05 +0000 (21:31 +0000)]
framework for varobj type mutation
This patch introduces the framework necessary to support type mutations.
The only language that currently provides a language-specific hook for
that feature is Ada, but the hook remain unimplemented for now. The
actual implementation is tied to the rest of the varobj code for Ada,
and thus will be provided then.
gdb/ChangeLog:
* varobj.c (ada_value_has_mutated): Add declaration. New function.
(struct language_specific): New field "value_has_mutated".
(languages): Set field "value_has_mutated" in each entry of array.
(varobj_value_has_mutated): New function.
(varobj_udpdate): Add handling of type mutation.
(value_of_root): Add handling of type mutation.
(ada_value_has_mutated): New function.
Joel Brobecker [Wed, 28 Mar 2012 17:08:48 +0000 (17:08 +0000)]
[ia64-linux] Allow libunwind to fetch register 0
On ia64-linux, GDB sometimes prints the following error when trying
to switch to a different task:
(gdb) task 3
Register 0 is not available
This is a random failure that sometimes happens, sometimes does not.
The error comes from the fact that the libunwind library is requesting
the value of register 0 (zero): This eventually leads us to
ia64-linux-nat.c:ia64_linux_fetch_register.
This function relies on ia64_cannot_fetch_register to determine
whether or not we have access to the register's value. The ptrace
interface does not provide the r0 value, and so we end up telling
the regcache that this register's value is not available. And yet,
for r0, we do not need to ask ptrace for its value, since it is
always zero.
So, the fix was to add a special rule for supplying a nul value
when regnum == IA64_GR0_REGNUM.
gdb/ChangeLog:
* ia64-linux-nat.c (ia64_linux_fetch_register): Add special
handling for r0.
Jan Kratochvil [Tue, 27 Mar 2012 20:44:13 +0000 (20:44 +0000)]
gdb/doc/
* gdb.texinfo (Auto-loading): Move @menu to the end of @node.
Create two new links fir 'objfile-gdb.py file'
and 'dotdebug_gdb_scripts section'.
* arm-tdep.c (arm_process_record): New function.
(deallocate_reg_mem): New function.
(decode_insn): New function.
(thumb_record_branch): New function.
(thumb_record_ldm_stm_swi(): New function.
(thumb_record_misc): New function.
(thumb_record_ld_st_stack): New function.
(thumb_record_ld_st_imm_offset): New function.
(thumb_record_ld_st_reg_offset(): New function.
(thumb_record_add_sub_cmp_mov): New function.
(thumb_record_shift_add_sub): New function.
(arm_record_coproc_data_proc): New function.
(arm_record_coproc): New function.
(arm_record_b_bl): New function.
(arm_record_ld_st_multiple): New function.
(arm_record_ld_st_reg_offset): New function.
(arm_record_ld_st_imm_offset): New function.
(arm_record_data_proc_imm): New function.
(arm_record_data_proc_misc_ld_str): New function.
(arm_record_extension_space): New function.
(arm_record_strx): New function.
(sbo_sbz): New function.
(struct insn_decode_record): New structure for arm insn record.
(REG_ALLOC): New macro for reg allocations.
(MEM_ALLOC): New macro for memory allocations.
* arm-tdep.h (struct gdbarch_tdep): New field 'arm_swi_record'
Mike Frysinger [Sun, 25 Mar 2012 16:51:46 +0000 (16:51 +0000)]
sim: bfin: skip .c/.S tests if no compiler is available
Similar to logic in the cris exp, attempt a simple compile and if it fails
(presumably due to the compiler being broken), skip all the related tests.
Fortunately, most tests (~600 out of ~800) are pure assembly, so people should
still get pretty good coverage.
Alan Modra [Sun, 25 Mar 2012 06:45:16 +0000 (06:45 +0000)]
ld/
* ldemul.c (before_allocation_default): Revert last change.
ldlang.c (lang_add_section): Likewise.
(strip_excluded_output_sections): Don't strip output sections with
user input sections when emitrelocations, unless all are SEC_EXCLUDE.
ld/testsuite/
* ld-powerpc/vxworks-relax.rd: Remove check on reloc section
file offset and reloc symbol indices.
Mike Frysinger [Sat, 24 Mar 2012 05:38:43 +0000 (05:38 +0000)]
[PATCH] sim: make sure to include strsignal prototype
Before POSIX standardized strsignal(), old systems would hide the
prototype unless the normal extension defines were enabled. So use
the AC_USE_SYSTEM_EXTENSIONS helper for that.
Then make sure we include string.h ourselves in nrun.c rather than
relying on implicit includes via other sim headers.
Alan Modra [Fri, 23 Mar 2012 09:27:43 +0000 (09:27 +0000)]
* linker.c (_bfd_nearby_section): New function, split out from..
(fix_syms): ..here.
* bfd-in.h (_bfd_nearby_section): Declare.
* bfd-in2.h: Regenerate.
* elflink.c (elf_link_input_bfd): Don't use text_index_section or
data_index_section with ld -q or ld -r output relocs against
stripped output sections. Instead use _bfd_nearby_section.
Mike Frysinger [Fri, 23 Mar 2012 03:27:44 +0000 (03:27 +0000)]
sim: sync build_warnings handling with gdb
The sim code gets the logic for SIM_AC_OPTION_WARNINGS from gdb, but
it hasn't been updated in a good long while. Sync with the latest
gdb code.
There is a sim specific change in here: we disable -Werror for now.
This is because all sim code atm contains warnings. Will probably
have to slowly add a white list of targets which can tolerate this
until everyone is updated.