binutils-gdb.git
11 years ago * elf64-mips.c (micromips_elf64_howto_table_rel): Add
Maciej W. Rozycki [Mon, 18 Feb 2013 23:20:45 +0000 (23:20 +0000)]
* elf64-mips.c (micromips_elf64_howto_table_rel): Add
R_MICROMIPS_SCN_DISP and R_MICROMIPS_JALR.
(micromips_elf64_howto_table_rela): Likewise.
(micromips_reloc_map): Add BFD_RELOC_MICROMIPS_JALR.
* elfn32-mips.c (elf_micromips_howto_table_rel): Add
R_MICROMIPS_SCN_DISP and R_MICROMIPS_JALR.
(elf_micromips_howto_table_rela): Likewise.
(micromips_reloc_map): Add BFD_RELOC_MICROMIPS_JALR.

11 years ago * elfxx-mips.c (MICROMIPS_P): New macro.
Maciej W. Rozycki [Mon, 18 Feb 2013 23:18:16 +0000 (23:18 +0000)]
* elfxx-mips.c (MICROMIPS_P): New macro.
(_bfd_mips_elf_symbol_processing): Use it.

11 years ago * elfxx-mips.c (_bfd_mips_elf_create_dynamic_sections): Clarify
Maciej W. Rozycki [Mon, 18 Feb 2013 23:16:35 +0000 (23:16 +0000)]
* elfxx-mips.c (_bfd_mips_elf_create_dynamic_sections): Clarify
comment on _PROCEDURE_LINKAGE_TABLE_ creation.

11 years agodaily update
Alan Modra [Mon, 18 Feb 2013 23:00:04 +0000 (23:00 +0000)]
daily update

11 years ago PR gdb/15102:
Tom Tromey [Mon, 18 Feb 2013 21:04:28 +0000 (21:04 +0000)]
PR gdb/15102:
* dwarf2read.c (read_subrange_type): Use result of
'check_typedef'.
gdb/testsuite
* gdb.dwarf2/subrange.exp: New file.

11 years agogdb/gdbserver
Yao Qi [Mon, 18 Feb 2013 14:54:57 +0000 (14:54 +0000)]
gdb/gdbserver

* linux-bfin-low.c (the_low_target): Use NULL instead of 0.

11 years agoFix ChangeLog typo.
Maciej W. Rozycki [Mon, 18 Feb 2013 14:02:47 +0000 (14:02 +0000)]
Fix ChangeLog typo.

11 years ago * config/tc-mips.c (append_insn): Correcting indentation, remove
Maciej W. Rozycki [Mon, 18 Feb 2013 14:02:02 +0000 (14:02 +0000)]
* config/tc-mips.c (append_insn): Correcting indentation, remove
extraneous braces.

11 years ago PR ld/12549
Alan Modra [Mon, 18 Feb 2013 10:40:19 +0000 (10:40 +0000)]
PR ld/12549
* elf-bfd.h (_bfd_elf_strtab_clear_refs): Delete.
(_bfd_elf_strtab_clear_all_refs): Declare.
(_bfd_elf_strtab_resize): Declare.
* elf-strtab.c (_bfd_elf_strtab_clear_refs): Delete.
(_bfd_elf_strtab_clear_all_refs): New function.
(_bfd_elf_strtab_resize): Likewise.
* elflink.c (elf_link_add_object_symbols): Use _bfd_elf_strtab_resize.

11 years ago * ld-plugin/lto.exp (Build pr15146b.so) Add -Wl,--no-as-needed.
Alan Modra [Mon, 18 Feb 2013 09:13:11 +0000 (09:13 +0000)]
* ld-plugin/lto.exp (Build pr15146b.so) Add -Wl,--no-as-needed.
(PR ld/15146 (1), (2)): Likewise.
(LTO 7): Likewise.

11 years agomissed from last commit
Alan Modra [Mon, 18 Feb 2013 04:44:16 +0000 (04:44 +0000)]
missed from last commit

11 years ago * elf-bfd.h (struct elf_obj_tdata): Move find_line_info, local_stubs,
Alan Modra [Mon, 18 Feb 2013 02:56:58 +0000 (02:56 +0000)]
* elf-bfd.h (struct elf_obj_tdata): Move find_line_info, local_stubs,
local_call_stubs, elf_data_symbol, elf_text_symbol, elf_data_section,
and elf_text_section to..
* elfxx-mips.c (struct mips_elf_obj_tdata): ..here.  Update all refs.
* elf64-alpha.c (struct mips_elf_find_line): Rename to..
(struct alpha_elf_find_line): ..this.
(struct alpha_elf_obj_tdata): Add find_line_info, update refs.

11 years ago*** empty log message ***
gdbadmin [Mon, 18 Feb 2013 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***

11 years agodaily update
Alan Modra [Sun, 17 Feb 2013 23:00:06 +0000 (23:00 +0000)]
daily update

11 years ago*** empty log message ***
gdbadmin [Sun, 17 Feb 2013 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***

11 years agodaily update
Alan Modra [Sat, 16 Feb 2013 23:00:05 +0000 (23:00 +0000)]
daily update

11 years agoDon't add DT_NEEDED for references from the dummy bfd
H.J. Lu [Sat, 16 Feb 2013 17:54:37 +0000 (17:54 +0000)]
Don't add DT_NEEDED for references from the dummy bfd

bfd/

PR ld/15146
* elflink.c (elf_link_add_object_symbols): Don't add DT_NEEDED
for references from the dummy bfd.

ld/

PR ld/15146
* plugin.c (plugin_notice): Replace the undefined dummy bfd with
the real one.

ld/testsuite/

PR ld/15146
* ld-plugin/pr15146.d: New file.
* ld-plugin/pr15146a.c: Likewise.
* ld-plugin/pr15146b.c: Likewise.
* ld-plugin/pr15146c.c: Likewise.
* ld-plugin/pr15146d.c: Likewise.

* ld-plugin/lto.exp: Add tests for PR ld/15146.

11 years agoAlso trace symbol from the IR bfd
H.J. Lu [Sat, 16 Feb 2013 17:50:20 +0000 (17:50 +0000)]
Also trace symbol from the IR bfd

PR ld/15141
* plugin.c (plugin_notice): Also trace symbol from the IR bfd.

11 years agoAlso track weak references
H.J. Lu [Sat, 16 Feb 2013 17:48:57 +0000 (17:48 +0000)]
Also track weak references

PR ld/15149
* elflink.c (elf_link_add_object_symbols): Also track weak
references.

11 years agogdb/
Yao Qi [Sat, 16 Feb 2013 08:57:48 +0000 (08:57 +0000)]
gdb/
2013-02-16  Yuanhui Zhang  <asmwarrior@gmail.com>

* frame.c: Remove one extra white space after #include
directive.

11 years ago*** empty log message ***
gdbadmin [Sat, 16 Feb 2013 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***

11 years agodaily update
Alan Modra [Fri, 15 Feb 2013 23:00:05 +0000 (23:00 +0000)]
daily update

11 years agogdb/
Jan Kratochvil [Fri, 15 Feb 2013 20:30:16 +0000 (20:30 +0000)]
gdb/
* contrib/cc-with-tweaks.sh: Extend the comment for -p option.

11 years agogdb/
Jan Kratochvil [Fri, 15 Feb 2013 20:28:24 +0000 (20:28 +0000)]
gdb/
* gdb-gdb.gdb.in: Wrap set complaints, b internal_error, b info_command
and dir commands into an if block.

11 years agoDon't allow a nested archive pointing to itself
H.J. Lu [Fri, 15 Feb 2013 18:26:06 +0000 (18:26 +0000)]
Don't allow a nested archive pointing to itself

PR binutils/15151
* archive.c (_bfd_find_nested_archive): Don't allow a nested
archive pointing to itself.
(_bfd_get_elt_at_filepos): Revert the last 2 changes.

11 years ago * configure.ac: Sync with GCC repo.
Yufeng Zhang [Fri, 15 Feb 2013 17:55:25 +0000 (17:55 +0000)]
* configure.ac: Sync with GCC repo.
* configure: Ditto.

11 years ago2013-02-15 Sanimir Agovic <sanimir.agovic@intel.com>
Tom Tromey [Fri, 15 Feb 2013 17:12:29 +0000 (17:12 +0000)]
2013-02-15  Sanimir Agovic  <sanimir.agovic@intel.com>

* python/py-breakpoint (struct pybp_code):  Use int instead of
enum type_code.

11 years agoAllow for some recursion when scanning archives.
Nick Clifton [Fri, 15 Feb 2013 15:53:42 +0000 (15:53 +0000)]
Allow for some recursion when scanning archives.

11 years ago * options.h (DEFINE_uint64_alias): Define.
Ian Lance Taylor [Fri, 15 Feb 2013 15:44:03 +0000 (15:44 +0000)]
* options.h (DEFINE_uint64_alias): Define.
(class General_options): Add -Ttext-segment as an alias for
-Ttext.

11 years ago * metag-dis.c: Initialize outf->bytes_per_chunk to 4
Nick Clifton [Fri, 15 Feb 2013 14:54:28 +0000 (14:54 +0000)]
* metag-dis.c: Initialize outf->bytes_per_chunk to 4
which also makes the disassembler output be in little
endian like it should be.

* metag/labelarithmetic.d: Fix the expected disassembler
output to be in little endian format
* metag/metacore12.d: likewise
* metag/metacore21.d: likewise
* metag/metacore21ext.d: likewise
* metag/metadsp21.d: likewise
* metag/metadsp21ext.d: likewise
* metag/metafpu.d: likewise
* metag/metafpuext.d: likewise
* metag/tls.d: likewise

* ld-metag/pcrel.d: Fix the expected disassembler
output to be in little endian format
* ld-metag/shared.d: likewise
* ld-metag/stub.d: likewise
* ld-metag/stub_pic_app.d: likewise
* ld-metag/stub_pic_shared.d: likewise
* ld-metag/stub_shared.d: likewise

11 years ago PR binutils/15140
Nick Clifton [Fri, 15 Feb 2013 14:37:39 +0000 (14:37 +0000)]
PR binutils/15140
* ar.c (open_inarch): Fail on attempts to convert a normal archive
to a thin archive or vice versa.
* elfcomm.c (make_qualified_name): Handle corrupted thin
archives.
* readelf.c (process_archive): Likewise.
* doc/binutils.texi: Clarify documentation describing thin
archives.

* archive.c (_bfd_get_elt_at_filepos): Prevent an infinite loop
accessing a corrupt nested archive.

11 years ago * objcopy.c (copy_main): Initialize context variable.
Kai Tietz [Fri, 15 Feb 2013 14:25:34 +0000 (14:25 +0000)]
    * objcopy.c (copy_main): Initialize context variable.

11 years ago * powerpc.cc (Stub_table::plt_off): New function, extracted from..
Alan Modra [Fri, 15 Feb 2013 12:59:15 +0000 (12:59 +0000)]
* powerpc.cc (Stub_table::plt_off): New function, extracted from..
(Stub_table::do_write): ..here, two places.
(Stub_table::plt_call_size): Use it here too.

11 years ago * scripttempl/pep.sc (.xdata): Merge .xdata* into .xdata section.
Kai Tietz [Fri, 15 Feb 2013 11:08:01 +0000 (11:08 +0000)]
    * scripttempl/pep.sc (.xdata): Merge .xdata* into .xdata section.
        (.pdata): Merge .pdata* into .pdata section.

11 years ago * gas/arm/neon-vmov-bad.d: New file.
Nick Clifton [Fri, 15 Feb 2013 10:07:47 +0000 (10:07 +0000)]
    * gas/arm/neon-vmov-bad.d: New file.
        * gas/arm/neon-vmov-bad.s: Likewise.
        * gas/arm/neon-vmov-bad.l: Likewise.

        * config/tc-arm.c (do_neon_mov): Break on NS_NULL.

11 years ago2013-02-15 Pedro Alves <pedro@codesourcery.com>
Hafiz Abid Qadeer [Fri, 15 Feb 2013 09:47:50 +0000 (09:47 +0000)]
2013-02-15  Pedro Alves  <pedro@codesourcery.com>
    Hafiz Abid Qadeer  <abidh@codesourcery.com>

gdb/
* NEWS: Mention new field "trace-file".
* tracepoint.c (trace_status_mi): Output "trace-file" field.
(tfile_open): Record the trace file's filename in the trace
status.
(tfile_files_info): Mention the name of the trace file.
Check the "filename" field explicitely.
(trace_status_command): Explicitely check "filename" field.
(trace_find_command): Ditto.
(trace_find_pc_command): Ditto.
(trace_find_tracepoint_command): Ditto.
(trace_find_line_command): Ditto.
(trace_find_range_command): Ditto.
(trace_find_outside_command): Ditto.
* tracepoint.h (struct trace_status) <from_file>: Rename it
to "filename" and make it hold the trace file's filename
instead of a boolean.
* remote.c (remote_get_trace_status): Initialize "filename"
field with NULL instead of 0.

gdb/doc/
* gdb.texinfo (GDB/MI Tracepoint Commands) <-trace-status>:
Document the "trace-file" field.

gdb/testsuite/
* gdb.trace/tfile.exp: Add test for -trace-status command.

11 years ago * configure.tgt: Add nios2-*-rtems*.
Nick Clifton [Fri, 15 Feb 2013 09:36:32 +0000 (09:36 +0000)]
* configure.tgt: Add nios2-*-rtems*.

11 years ago PR binutils/15033
Nick Clifton [Fri, 15 Feb 2013 09:32:31 +0000 (09:32 +0000)]
PR binutils/15033
* objcopy.c (enum change_action): Delete.
(struct section_list): Delete remove, copy, change_vma, change_lma
and set_flags fields.  Add context field.
(find_section_list): Add a context parameter.  Add support for
wildcard characters in section names.
(is_strip_section): Check for sections being both  copied and
removed.
(copy_object): Pass context to find_section_list.
(setup_section): Likewise.
(copy_section): Likewise.
(copy_main): Likewise.
* doc/binutils: Document the new behaviour.
* NEWS: Mention the new feature

11 years agogdb/
Yao Qi [Fri, 15 Feb 2013 03:37:12 +0000 (03:37 +0000)]
gdb/
* remote.c: Fix a typo.

11 years agomerge from gcc
DJ Delorie [Fri, 15 Feb 2013 02:48:33 +0000 (02:48 +0000)]
merge from gcc

11 years ago*** empty log message ***
gdbadmin [Fri, 15 Feb 2013 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***

11 years ago * binutils-all/mips/mixed-mips16.s: Add missing stack adjustment.
Maciej W. Rozycki [Thu, 14 Feb 2013 23:48:18 +0000 (23:48 +0000)]
* binutils-all/mips/mixed-mips16.s: Add missing stack adjustment.
* binutils-all/mips/mixed-mips16.d: Update accordingly.

11 years agodaily update
Alan Modra [Thu, 14 Feb 2013 23:00:04 +0000 (23:00 +0000)]
daily update

11 years ago * contrib/ari/gdb_ari.sh (GNU/Linux rule): Remove.
Pierre Muller [Thu, 14 Feb 2013 21:08:35 +0000 (21:08 +0000)]
* contrib/ari/gdb_ari.sh (GNU/Linux rule): Remove.

11 years agoopcodes/
Yufeng Zhang [Thu, 14 Feb 2013 18:12:51 +0000 (18:12 +0000)]
opcodes/

* aarch64-opc.c (aarch64_prfops): Change unnamed operation 'name'
fields to NULL.
(aarch64_print_operand): Adjust the printing for AARCH64_OPND_PRFOP.

gas/

* config/tc-aarch64.c (md_begin): Change to check if 'name' is
NULL.

gas/testsuite/

* gas/aarch64/system.s: Add tests.
* gas/aarch64/system.d: Update.

11 years agogdbserver: QTNotes, plug memory leak.
Pedro Alves [Thu, 14 Feb 2013 18:07:19 +0000 (18:07 +0000)]
gdbserver: QTNotes, plug memory leak.

The previous notes aren't being released before setting new ones.

Tested on x86_64 Fedora 17.

gdb/gdbserver/
2013-02-14  Pedro Alves  <palves@redhat.com>

Plug memory leak.

* tracepoint.c (cmd_qtnotes): Free TRACING_USER_NAME,
TRACING_NOTES and TRACING_STOP_NOTE before clobbering.

11 years agogdbserver:tracepoint.c:cmd_qtdpsrc use savestring.
Pedro Alves [Thu, 14 Feb 2013 17:30:03 +0000 (17:30 +0000)]
gdbserver:tracepoint.c:cmd_qtdpsrc use savestring.

An obvious use case for savestring.

Tested on x86_64 Fedora 17.

2013-02-14  Pedro Alves  <palves@redhat.com>

* tracepoint.c (cmd_qtdpsrc): Use savestring.

11 years agoMove savestring to common/common-utils.c, make gdbserver use it.
Pedro Alves [Thu, 14 Feb 2013 17:11:41 +0000 (17:11 +0000)]
Move savestring to common/common-utils.c, make gdbserver use it.

This makes gdbserver share gdb's savestring, instead of baking its own.

Tested on x86_64 Fedora 17.

gdb/
2013-02-14  Pedro Alves  <palves@redhat.com>

* utils.c (savestring): Don't #undef it.  Move function to
common/common-utils.c.
* common/common-utils.c: Include gdb_string.h.
(savestring): Move here from utils.c.
* common/common-utils.h (savestring): Declare.

gdb/gdbserver/
2013-02-14  Pedro Alves  <palves@redhat.com>

* tracepoint.c (save_string): Delete.
(add_tracepoint_action): Use savestring instead of save_string.

11 years agosavestring: Rename parameter 'size' to 'len'.
Pedro Alves [Thu, 14 Feb 2013 17:09:00 +0000 (17:09 +0000)]
savestring: Rename parameter 'size' to 'len'.

It's better to avoid needless confusion, and call string length,
length, instead of size, which is usually used to refer to sizeof of
the string (len+1):

size_t len = strlen (str);
size_t size = sizeof (str);

Tested on x86_64 Fedora 17.

2013-02-14  Pedro Alves  <palves@redhat.com>

* utils.c (savestring): Rename parameter 'size' to 'len'.

11 years agogdb/testsuite/
Jan Kratochvil [Thu, 14 Feb 2013 15:24:11 +0000 (15:24 +0000)]
gdb/testsuite/
* gdb.threads/pthread_cond_wait.c (main): Remove variable ts.  Replace
nanosleep by sleep.

11 years ago2013-02-14 Pedro Alves <palves@redhat.com>
Yufeng Zhang [Thu, 14 Feb 2013 13:50:30 +0000 (13:50 +0000)]
2013-02-14  Pedro Alves  <palves@redhat.com>
    Yufeng Zhang  <yufeng.zhang@arm.com>

* aarch64-linux-nat.c (aarch64_init_debug_reg_state): Delete.
(aarch64_inferior_data, struct aarch64_inferior_data):
Delete.
(struct aarch64_process_info): New.
(aarch64_process_list): New global.
(aarch64_find_process_pid, aarch64_add_process)
(aarch64_process_info_get): New functions.
(aarch64_inferior_data_get): Delete.
(aarch64_process_info_get): New function.
(aarch64_forget_process): New function.
(aarch64_get_debug_reg_state): New parameter 'pid'.  Reimplement.
(aarch64_linux_prepare_to_resume): Pass the lwp's pid to
aarch64_get_debug_reg_state.
(aarch64_notify_debug_reg_change): Use iterate_over_lwps
instead of linux_nat_iterate_watchpoint_lwps.
(aarch64_linux_new_fork): New function.
(aarch64_linux_child_post_startup_inferior): Use
aarch64_forget_process instead of aarch64_init_debug_reg_state.
(aarch64_handle_breakpoint, aarch64_linux_insert_hw_breakpoint)
(aarch64_linux_remove_hw_breakpoint)
(aarch64_handle_aligned_watchpoint)
(aarch64_handle_unaligned_watchpoint)
(aarch64_linux_insert_watchpoint)
(aarch64_linux_remove_watchpoint)
(aarch64_linux_stopped_data_address): Adjust to pass the current
process id to aarch64_debug_reg_state.
(_initialize_aarch64_linux_nat): Install aarch64_linux_new_fork as
linux_nat_new_fork hook, and aarch64_forget_process as
linux_nat_forget_process hook; remove the call to
register_inferior_data_with_cleanup.

11 years agoFix ptype bug actually exercised in userdef.exp
Pedro Alves [Thu, 14 Feb 2013 12:43:46 +0000 (12:43 +0000)]
Fix ptype bug actually exercised in userdef.exp

I happened to notice a bug with ptype &Ref, and found out userdef.exp
actually exercises the bug.  With:

class Container
{
public:
  Member m;

  Member& operator* ();
};

Member& Container::operator* ()
{
  return this->m;
}

And 'c' is of type Container:

(gdb) p c
$1 = {m = {z = -9192}}
(gdb) p *c
$2 = (Member &) @0x7fffffffda20: {z = -9192}
(gdb) ptype *c
type = class Member {
  public:
    int z;
} &

(gdb) p &*c
$3 = (Member *) 0x7fffffffda20

(gdb) ptype &*c
type = class Member {
  public:
    int z;
} &*
(gdb)

Notice that last print (&*c) on says the type is a pointer - that's
how you get the address behind a reference.  But notice the last ptype
instead says the type of the same expression is a pointer _reference_.
This looks like a bug to me.

This patch fixes it.  The issue is that we're entering the VALUE_LVAL
(x) == lval_memory branch by mistake for references.  The fix is just
to swap the tests so references are checked first, like value_addr
also handles references first.

Tested on x86_64 Fedora 17.

2013-02-14  Pedro Alves  <palves@redhat.com>

* eval.c (evaluate_subexp_for_address) <default_case_after_eval,
EVAL_AVOID_SIDE_EFFECTS>: Swap and handle TYPE_CODE_REF before
lval_memory.

2013-02-14  Pedro Alves  <palves@redhat.com>

* gdb.cp/userdef.exp (ptype &*c): Don't expect an &.

11 years ago PR binutils/15125
Nick Clifton [Thu, 14 Feb 2013 11:52:25 +0000 (11:52 +0000)]
PR binutils/15125
* objcopy.c (copy_object): Provide a helpful warning message when
adding a gnu_debuglink section to an object which already contains
one.

11 years ago2013-02-14 Pedro Alves <pedro@codesourcery.com>
Hafiz Abid Qadeer [Thu, 14 Feb 2013 10:19:39 +0000 (10:19 +0000)]
2013-02-14  Pedro Alves  <pedro@codesourcery.com>
    Hafiz Abid Qadeer  <abidh@codesourcery.com>

gdb/
* tracepoint.h (validate_trace_state_variable_name): Declare.
* tracepoint.c (validate_trace_state_variable_name): New.
(trace_variable_command): Parse the trace state variable's name
without using parse_expression.  Do several validations.
* mi/mi-main.c (mi_cmd_trace_define_variable): Don't parse the
trace state variable's name with parse_expression.  Validate it.

gdb/testsuite/
* gdb.trace/tsv.exp: Adjust tests, and add a few more.

11 years agogdb/
Yao Qi [Thu, 14 Feb 2013 04:00:16 +0000 (04:00 +0000)]
gdb/
* infcmd.c (breakpoint_proceeded): Remove it.

11 years agogdb/
Yao Qi [Thu, 14 Feb 2013 03:57:13 +0000 (03:57 +0000)]
gdb/
* tracepoint.c (end_actions_pseudocommand): Make it static.
(while_stepping_pseudocommand): Likewise.
* tracepoint.h (end_actions_pseudocommand): Remove the
declaration.
(while_stepping_pseudocommand): Likewise.

11 years agogdb/
Yao Qi [Thu, 14 Feb 2013 03:51:59 +0000 (03:51 +0000)]
gdb/
Indent one changelog entry.

11 years agogdb/
Yao Qi [Thu, 14 Feb 2013 03:39:42 +0000 (03:39 +0000)]
gdb/
* cli/cli-decode.c (help_cmd): Remove the declaration of
"cmdlist".
(help_all): Likewise.

11 years ago*** empty log message ***
gdbadmin [Thu, 14 Feb 2013 00:00:36 +0000 (00:00 +0000)]
*** empty log message ***

11 years agodaily update
Alan Modra [Wed, 13 Feb 2013 23:00:05 +0000 (23:00 +0000)]
daily update

11 years agoCorrect ChangeLog dates.
Maciej W. Rozycki [Wed, 13 Feb 2013 19:36:10 +0000 (19:36 +0000)]
Correct ChangeLog dates.

11 years ago opcodes/
Maciej W. Rozycki [Wed, 13 Feb 2013 17:09:09 +0000 (17:09 +0000)]
opcodes/
* mips-dis.c (is_compressed_mode_p): Only match symbols from the
section disassembled.

binutils/testsuite/
* binutils-all/mips/mixed-micromips.d: New test.
* binutils-all/mips/mixed-mips16.d: New test.
* binutils-all/mips/mixed-micromips.s: New test source.
* binutils-all/mips/mixed-mips16.s: New test source.
* binutils-all/mips/mips.exp: New file.

11 years agoFix typo: amd64 -> i386.
Pedro Alves [Wed, 13 Feb 2013 15:06:50 +0000 (15:06 +0000)]
Fix typo: amd64 -> i386.

11 years ago[native x86 GNU/Linux] Access debug register mirror from the corresponding process.
Pedro Alves [Wed, 13 Feb 2013 14:59:49 +0000 (14:59 +0000)]
[native x86 GNU/Linux] Access debug register mirror from the corresponding process.

While reviewing the native AArch64 patch, I noticed a problem:

On 02/06/2013 08:46 PM, Pedro Alves wrote:
>
>> > +static void
>> > +aarch64_linux_prepare_to_resume (struct lwp_info *lwp)
>> > +{
>> > +  struct arch_lwp_info *info = lwp->arch_private;
>> > +
>> > +  /* NULL means this is the main thread still going through the shell,
>> > +     or, no watchpoint has been set yet.  In that case, there's
>> > +     nothing to do.  */
>> > +  if (info == NULL)
>> > +    return;
>> > +
>> > +  if (DR_HAS_CHANGED (info->dr_changed_bp)
>> > +      || DR_HAS_CHANGED (info->dr_changed_wp))
>> > +    {
>> > +      int tid = GET_LWP (lwp->ptid);
>> > +      struct aarch64_debug_reg_state *state = aarch64_get_debug_reg_state ();
> Hmm.  This is always fetching the debug_reg_state of
> the current inferior, but may not be the inferior of lwp.
> I see the same bug on x86.  Sorry about that.  I'll fix it.

A natural fix would be to make xxx_get_debug_reg_state take an
inferior argument, but that doesn't work because of the case where we
detach breakpoints/watchpoints from the child fork, at a time there's
no inferior for the child fork at all.  We do a nasty hack in
i386_inferior_data_get, but that relies on all callers pointing the
current inferior to the correct inferior, which isn't actually being
done by all callers, and I don't think we want to enforce that -- deep
in the bowls of linux-nat.c, there are many cases we resume lwps
behind the scenes, and it's be better to not have that code rely on
global state (as it doesn't today).

The fix is to decouple the watchpoints code from inferiors, making it
track target processes instead.  This way, we can freely keep track of
the watchpoint mirrors for these processes behind the core's back.
Checkpoints also play dirty tricks with swapping the process behind
the inferior, so they get special treatment too in the patch (which
just amounts to calling a new hook).  Instead of the old hack in
i386_inferior_data_get, where we returned a copy of the current
inferior's debug registers mirror, as soon as we detect a fork in the
target, we copy the debug register mirror from the parent to the child
process.

I don't have an old kernel handy to test, but I stepped through gdb doing
the watchpoint removal in the fork child in the watchpoint-fork test
seeing that the debug registers end up cleared in the child.

I didn't find the need for linux_nat_iterate_watchpoint_lwps.  If
we use plain iterate_over_lwps instead, what happens is that
when removing watchpoints, that iterate_over_lwps doesn't actually
iterate over anything, since the fork child is not added to the
lwp list until later, at detach time, in linux_child_follow_fork.
And if we don't iterate over that lwp, we don't mark its debug
registers as needing update.  But linux_child_follow_fork takes
care of doing that explicitly:

  child_lp = add_lwp (inferior_ptid);
  child_lp->stopped = 1;
  child_lp->last_resume_kind = resume_stop;
  make_cleanup (delete_lwp_cleanup, child_lp);

  /* CHILD_LP has new PID, therefore linux_nat_new_thread is not called for it.
     See i386_inferior_data_get for the Linux kernel specifics.
     Ensure linux_nat_prepare_to_resume will reset the hardware debug
     registers.  It is done by the linux_nat_new_thread call, which is
     being skipped in add_lwp above for the first lwp of a pid.  */
  gdb_assert (num_lwps (GET_PID (child_lp->ptid)) == 1);
  if (linux_nat_new_thread != NULL)
    linux_nat_new_thread (child_lp);

  if (linux_nat_prepare_to_resume != NULL)
    linux_nat_prepare_to_resume (child_lp);
  ptrace (PTRACE_DETACH, child_pid, 0, 0);

so unless I'm missing something (quite possible) it ends up all
the same.  But, the !detach-on-fork, and the "follow-fork child" paths
should also call linux_nat_new_thread, and they don't presently.  It
seems to me in those cases we're not clearing debug regs correctly
when that's needed.  Instead of copying that bit that works around
add_lwp bypassing the linux_nat_new_thread call, I thought it'd
be better to add an add_initial_lwp call to be used in the case we
really need to bypass linux_nat_new_thread, and make
add_lwp always call linux_nat_new_thread.

i386_cleanup_dregs is rewritten to forget about the current process
debug mirrors, which takes cares of other i386 ports.  Only a couple
of extra tweaks here and there were needed, as some targets wheren't
actually calling i386_cleanup_dregs.

Tested on Fedora 17 x86_64 -m64/-m32.

GDBserver already fetches the i386_debug_reg_state from the right
process, and, it doesn't handle forks at all, so no fix is needed over
there.

gdb/
2013-02-13  Pedro Alves  <palves@redhat.com>

* amd64-linux-nat.c (update_debug_registers_callback):
Update comment.
(amd64_linux_dr_set_control, amd64_linux_dr_set_addr): Use
iterate_over_lwps.
(amd64_linux_prepare_to_resume): Pass the lwp's pid to
i386_debug_reg_state.
(amd64_linux_new_fork): New function.
(_initialize_amd64_linux_nat): Install amd64_linux_new_fork as
linux_nat_new_fork hook, and i386_forget_process as
linux_nat_forget_process hook.
* i386-linux-nat.c (update_debug_registers_callback):
Update comment.
(amd64_linux_dr_set_control, amd64_linux_dr_set_addr): Use
iterate_over_lwps.
(i386_linux_prepare_to_resume): Pass the lwp's pid to
i386_debug_reg_state.
(i386_linux_new_fork): New function.
(_initialize_i386_linux_nat): Install i386_linux_new_fork as
linux_nat_new_fork hook, and i386_forget_process as
linux_nat_forget_process hook.
* i386-nat.c (i386_init_dregs): Delete.
(i386_inferior_data, struct i386_inferior_data):
Delete.
(struct i386_process_info): New.
(i386_process_list): New global.
(i386_find_process_pid, i386_add_process, i386_process_info_get):
New functions.
(i386_inferior_data_get): Delete.
(i386_process_info_get): New function.
(i386_debug_reg_state): New parameter 'pid'.  Reimplement.
(i386_forget_process): New function.
(i386_cleanup_dregs): Rewrite.
(i386_update_inferior_debug_regs, i386_insert_watchpoint)
(i386_remove_watchpoint, i386_region_ok_for_watchpoint)
(i386_stopped_data_address, i386_insert_hw_breakpoint)
(i386_remove_hw_breakpoint): Adjust to pass the current process id
to i386_debug_reg_state.
(i386_use_watchpoints): Don't register inferior data.
* i386-nat.h (i386_debug_reg_state): Add new 'pid' parameter, and
adjust comment.
(i386_forget_process): Declare.
* linux-fork.c (delete_fork): Call linux_nat_forget_process.
* linux-nat.c (linux_nat_new_fork, linux_nat_forget_process_hook):
New static globals.
(linux_child_follow_fork): Don't call linux_nat_new_thread here.
(add_initial_lwp): New, factored out from ...
(add_lwp): ... this.  Don't check the number of lwps before
calling linux_nat_new_thread.
(linux_nat_iterate_watchpoint_lwps): Delete.
(linux_nat_attach): Use add_initial_lwp instead of add_lwp.
(linux_handle_extended_wait): Call the linux_nat_new_fork hook on
forks and vforks.
(linux_nat_wait_1): Use add_initial_lwp instead of add_lwp for the
initial lwp.
(linux_nat_kill, linux_nat_mourn_inferior): Call
linux_nat_forget_process.
(linux_nat_set_new_fork, linux_nat_set_forget_process)
(linux_nat_forget_process): New functions.
* linux-nat.h (linux_nat_iterate_watchpoint_lwps_ftype): Delete
type.
(linux_nat_iterate_watchpoint_lwps): Delete declaration.
(linux_nat_new_fork_ftype, linux_nat_forget_process_ftype): New
types.
(linux_nat_set_new_fork, linux_nat_set_forget_process)
(linux_nat_forget_process): New declarations.

* amd64fbsd-nat.c (super_mourn_inferior): New global.
(amd64fbsd_mourn_inferior): New function.
(_initialize_amd64fbsd_nat): Override to_mourn_inferior.
* windows-nat.c (windows_detach): Call i386_cleanup_dregs.

11 years agoFix ARI gripe about missing _().
Marcus Shawcroft [Wed, 13 Feb 2013 14:32:56 +0000 (14:32 +0000)]
Fix ARI gripe about missing _().

11 years agobfd/
Richard Sandiford [Wed, 13 Feb 2013 14:08:58 +0000 (14:08 +0000)]
bfd/
* elfxx-mips.c (mips_got_page_ref): New structure.
(mips_got_page_entry): Use a section rather than a (bfd, symndx)
pair to represent the anchor point.
(mips_got_info): Add a got_page_refs field.
(mips_elf_link_hash_table): Add a sym_cache field.
(mips_got_page_ref_hash, mips_got_page_ref_eq): New functions.
(mips_got_page_entry_hash, mips_got_page_entry_eq): Update for
new anchor representation.
(mips_elf_create_got_info): Create got_page_refs rather than
got_page_entries.
(mips_elf_record_got_page_ref): New function.
(mips_elf_pages_for_range): Move further down file.
(mips_elf_record_got_page_entry): Likewise.  Take a got as argument.
Use a section rather than a (bfd, symndx) pair to represent the
anchor point.
(mips_elf_resolve_got_page_ref): New function.
(mips_elf_resolve_final_got_entries): Use it to populate
got_page_entries.
(_bfd_mips_elf_check_relocs): Call mips_elf_record_got_page_ref
rather than mips_elf_record_got_page_entry.  Only nullify h
afterwards.
(mips_elf_lay_out_got): Call mips_elf_resolve_final_got_entries
earlier.

ld/testsuite/
* ld-mips-elf/mips16-pic-2.dd,
ld-mips-elf/mips16-pic-2.gd: Remove 3 unused local GOT entries.
* ld-mips-elf/got-page-4a.s, ld-mips-elf/got-page-4b.s,
ld-mips-elf/got-page-4a.d, ld-mips-elf/got-page-4a.got,
ld-mips-elf/got-page-4b.d, ld-mips-elf/got-page-4b.got,
ld-mips-elf/got-page-5.s, ld-mips-elf/got-page-5.d,
ld-mips-elf/got-page-5.got, ld-mips-elf/got-page-6.s,
ld-mips-elf/got-page-6.d, ld-mips-elf/got-page-6.got,
ld-mips-elf/got-page-7a.s, ld-mips-elf/got-page-7b.s,
ld-mips-elf/got-page-7c.s, ld-mips-elf/got-page-7d.s,
ld-mips-elf/got-page-7e.s, ld-mips-elf/got-page-7.d,
ld-mips-elf/got-page-7.got: New tests.
* ld-mips-elf/mips-elf.exp: Run them.

11 years agoARI fix: Replace %llx with %s and phex().
Marcus Shawcroft [Wed, 13 Feb 2013 13:42:39 +0000 (13:42 +0000)]
ARI fix: Replace %llx with %s and phex().

2013-02-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>

        * aarch64-linux-nat.c (debug_reg_change_callback)
        (aarch64_linux_get_debug_reg_capacity): ARI fix: Replace %llx with
        %s and phex().

11 years agoARI fix: Replace long long with LONGEST.
Marcus Shawcroft [Wed, 13 Feb 2013 13:41:12 +0000 (13:41 +0000)]
ARI fix: Replace long long with LONGEST.

        * aarch64-linux-nat.c (dr_changed_t): ARI fix: Replace long long
        with LONGEST.

11 years ago2013-02-13 Pedro Alves <palves@redhat.com>
Hafiz Abid Qadeer [Wed, 13 Feb 2013 10:41:11 +0000 (10:41 +0000)]
2013-02-13  Pedro Alves  <palves@redhat.com>
    Hafiz Abid Qadeer  <abidh@codesourcery.com>

* c-lang.c (c_op_print_tab): Add entry for UNOP_PLUS.

11 years ago*** empty log message ***
gdbadmin [Wed, 13 Feb 2013 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***

11 years agodaily update
Alan Modra [Tue, 12 Feb 2013 23:00:05 +0000 (23:00 +0000)]
daily update

11 years ago PR symtab/11464:
Tom Tromey [Tue, 12 Feb 2013 20:27:36 +0000 (20:27 +0000)]
PR symtab/11464:
* c-exp.y (lex_one_token): Initialize other fields of yylval on
NAME return.
(classify_inner_name): Remove 'first_name' argument, add
'context'.  Remove unused variable.
(yylex): Explicitly maintain the context type.  Exit loop earlier
if NAME result is seen.
gdb/testsuite
* gdb.cp/m-static.cc (gnu_obj_1::~gnu_obj_1): New destructor.
* gdb.cp/m-static.exp: Add tests to print quoted destructor.

11 years agoConsistent use of (C) after "Copyright".
Pedro Alves [Tue, 12 Feb 2013 19:03:57 +0000 (19:03 +0000)]
Consistent use of (C) after "Copyright".

While writing the previous patch, I noticed that we're not consistent
with the (C) in the copyright header.  The maintainers manual prefers
having it, though also says it's optional.  We have over 10x more
files with (C) than without in gdb's code, so I spent a few minutes
grepping and fixing.  Funny enough, the testsuite has it backwards.
I'll leave that for another time.

gdb/
2013-02-12  Pedro Alves  <palves@redhat.com>

* amd64-darwin-tdep.c: Add (C) after Copyright.
* cli/cli-cmds.h: Ditto.
* cli/cli-decode.c: Ditto.
* cli/cli-decode.h: Ditto.
* cli/cli-dump.c: Ditto.
* cli/cli-dump.h: Ditto.
* cli/cli-interp.c: Ditto.
* cli/cli-logging.c: Ditto.
* cli/cli-script.c: Ditto.
* cli/cli-script.h: Ditto.
* cli/cli-setshow.c: Ditto.
* cli/cli-setshow.h: Ditto.
* cli/cli-utils.c: Ditto.
* cli/cli-utils.h: Ditto.
* config/alpha/nm-osf3.h: Ditto.
* config/djgpp/djconfig.sh: Ditto.
* config/i386/nm-fbsd.h: Ditto.
* config/i386/nm-i386gnu.h: Ditto.
* config/nm-linux.h: Ditto.
* config/nm-nto.h: Ditto.
* config/rs6000/nm-rs6000.h: Ditto.
* config/sparc/nm-sol2.h: Ditto.
* darwin-nat-info.c: Ditto.
* dfp.c: Ditto.
* dfp.h: Ditto.
* gdb-demangle.h: Ditto.
* i386-darwin-nat.c: Ditto.
* i386-darwin-tdep.c: Ditto.
* linux-fork.h: Ditto.
* m32c-tdep.c: Ditto.
* microblaze-linux-tdep.c: Ditto.
* microblaze-rom.c: Ditto.
* microblaze-tdep.c: Ditto.
* microblaze-tdep.h: Ditto.
* mips-linux-tdep.h: Ditto.
* ppc-ravenscar-thread.c: Ditto.
* ppc-ravenscar-thread.h: Ditto.
* prologue-value.c: Ditto.
* prologue-value.h: Ditto.
* ravenscar-thread.c: Ditto.
* ravenscar-thread.h: Ditto.
* sparc-ravenscar-thread.c: Ditto.
* sparc-ravenscar-thread.h: Ditto.
* tilegx-linux-tdep.c: Ditto.
* unwind_stop_reasons.def: Ditto.
* windows-nat.h: Ditto.
* xtensa-linux-tdep.c: Ditto.
* xtensa-xtregs.c: Ditto.
* regformats/regdat.sh: Ditto.
* regformats/regdef.h: Ditto.

gdb/gdbserver/
2013-02-12  Pedro Alves  <palves@redhat.com>

* linux-xtensa-low.c: Ditto.
* xtensa-xtregs.c: Ditto.

11 years agoUpdate some copyright years.
Pedro Alves [Tue, 12 Feb 2013 18:27:29 +0000 (18:27 +0000)]
Update some copyright years.

Some files managed to get in the tree with outdated copyright years.
This fixes it.  Applied.

gdb/
2013-02-12  Pedro Alves  <palves@redhat.com>

* break-catch-sig.c: Update copyright years.

gdb/testsuite/
2013-02-12  Pedro Alves  <palves@redhat.com>

* gdb.base/catch-signal.c: Update copyright years.
* gdb.base/catch-signal.exp: Update copyright years.
* gdb.dwarf2/dw2-dir-file-name.c: Update copyright years.
* gdb.dwarf2/dw2-dir-file-name.exp: Update copyright years.
* gdb.dwarf2/dw2-empty-pc-range.S: Update copyright years.
* gdb.dwarf2/dw2-error.S: Update copyright years.
* gdb.dwarf2/dw2-error.c: Update copyright years.
* gdb.dwarf2/dw2-restrict.S: Update copyright years.
* gdb.dwarf2/dw2-restrict.c: Update copyright years.
* gdb.dwarf2/dw2-restrict.exp: Update copyright years.

11 years agoFix some pastos in the testsuite.
Pedro Alves [Tue, 12 Feb 2013 17:54:22 +0000 (17:54 +0000)]
Fix some pastos in the testsuite.

2013-02-12  Pedro Alves  <palves@redhat.com>

* gdb.base/catch-signal.exp: Correct test file name in "Skipping"
message.
* gdb.base/sigaltstack.exp: Ditto.
* gdb.base/siginfo.exp: Ditto.
* gdb.base/sizeof.exp: Ditto.

11 years agoTweak intro comments to some MI test files.
Pedro Alves [Tue, 12 Feb 2013 16:36:07 +0000 (16:36 +0000)]
Tweak intro comments to some MI test files.

A while ago I noticed there's some blind copy/pasting going on some test
intro comments.  This fixes some instances, in the MI testsuite.

Tested on x86_64 Fedora 17.

testsuite/
2013-02-12  Pedro Alves  <palves@redhat.com>

* gdb.mi/mi-basics.exp: Tweak intro comment.
* gdb.mi/mi-break.exp: Tweak intro comment.
* gdb.mi/mi-console.exp: Tweak intro comment.
* gdb.mi/mi-file.exp: Tweak intro comment.
* gdb.mi/mi-read-memory.exp: Tweak intro comment.
* gdb.mi/mi-return.exp: Tweak intro comment.
* gdb.mi/mi-stepi.exp: Tweak intro comment.
* gdb.mi/mi-until.exp: Tweak intro comment.
* gdb.mi/mi-watch.exp: Tweak intro comment.

11 years agoFix whitespace.
Pedro Alves [Tue, 12 Feb 2013 15:18:33 +0000 (15:18 +0000)]
Fix whitespace.

11 years agoFrom: Sanimir Agovic <sanimir.agovic@intel.com>
Pedro Alves [Tue, 12 Feb 2013 15:03:12 +0000 (15:03 +0000)]
From: Sanimir Agovic <sanimir.agovic@intel.com>

null ptr check to prevent gdbserver from crashing

Evaluating a thread local storage variable in a remote scenario crashes
gdbserver if libthread-db could not be loaded.

2013-02-12  Sanimir Agovic  <sanimir.agovic@intel.com>

gdbserver/
* thread-db.c (thread_db_get_tls_address):
NULL pointer check thread_db.

testsuite/
* gdb.server/no-thread-db.exp: New file.
* gdb.server/no-thread-db.c: New file.
* gdb.server/Makefile.in (EXECUTABLES): Add no-thread-db.

11 years agobfd/
Richard Sandiford [Tue, 12 Feb 2013 09:54:56 +0000 (09:54 +0000)]
bfd/
* elfxx-mips.c (mips_elf_lay_out_got): Count VxWorks GOT relocs
in g->relocs.

11 years ago Add support for a destructor for ui_out data and use it to
Siva Chandra Reddy [Tue, 12 Feb 2013 01:47:49 +0000 (01:47 +0000)]
Add support for a destructor for ui_out data and use it to
provide a ui_out destructor.
* ui-out.h: Declare the new ui_out destructor.
(ui_out_impl): Add a field for data destructor in ui_out_impl.
* ui-out.c (default_data_destroy): Add a default data destructor
which does nothing.
(default_ui_out_impl): Set the new data_destroy field to
default_data_destroy
(uo_data_destroy): Local function which invokes the data
destructor if present.
(clear_table): Local function which clears the table data of a
ui_out object.
(ui_out_destroy): Public function which frees a ui_out object.
(ui_out_table_end): Use the new clear_table function.
* cli-out.c (cli_ui_out_impl): Set the new data_destroy field to
NULL.
* mi/mi-out.c (mi_ui_out_impl): Set the new data_destroy field
to NULL.

11 years ago*** empty log message ***
gdbadmin [Tue, 12 Feb 2013 00:00:04 +0000 (00:00 +0000)]
*** empty log message ***

11 years agodaily update
Alan Modra [Mon, 11 Feb 2013 23:00:04 +0000 (23:00 +0000)]
daily update

11 years ago(printf_c_string): Fix thinko in comment.
Doug Evans [Mon, 11 Feb 2013 22:44:23 +0000 (22:44 +0000)]
(printf_c_string): Fix thinko in comment.
(printf_wide_c_string): Ditto.

11 years ago * elfxx-target.h (bfd_elfNN_bfd_link_hash_table_free): Provide
Alan Modra [Mon, 11 Feb 2013 22:15:53 +0000 (22:15 +0000)]
* elfxx-target.h (bfd_elfNN_bfd_link_hash_table_free): Provide
suitable definition when using generic linker hash table.

11 years ago * printcmd.c (printf_c_string,printf_wide_c_string): New functions.
Doug Evans [Mon, 11 Feb 2013 22:04:58 +0000 (22:04 +0000)]
* printcmd.c (printf_c_string,printf_wide_c_string): New functions.
(printf_decfloat): New function.  Broken out from ui_printf.
Remove unnecessary code to shift the entire format string down.
(printf_pointer): New function.
(ui_printf): Code to print C strings, wide C strings, decfloats,
and pointers moved to separate functions.

11 years agoThis patch assigns explicit integers to enum values corresponding
Sriraman Tallam [Mon, 11 Feb 2013 19:36:56 +0000 (19:36 +0000)]
This patch assigns explicit integers to enum values corresponding
to the plugin API.  This patch helps preventing problems while
cherry-picking plugin-api.h changes from trunk gold to local branches.
For instance, a linker plugin compiled with a cherry-picked
plugin-api.h header with some enum values missing will behave
strangely when used with a linker built with the up to date header.

* plugin-api.h (enum ld_plugin_level): Assign integers
explicitly for all values.

11 years agobfd/
Richard Sandiford [Mon, 11 Feb 2013 18:20:51 +0000 (18:20 +0000)]
bfd/
* elfxx-mips.c (mips_elf_count_got_entries): Delete.
(mips_elf_check_recreate_got, mips_elf_recreate_got): Take a
mips_elf_traverse_got_arg.  Count GOT entries.
(mips_elf_resolve_final_got_entries): Take the bfd_link_info
as argument.  Update after above changes.
(mips_elf_merge_got, mips_elf_lay_out_got): Don't call
mips_elf_count_got_entries.  Update the calls to
mips_elf_resolve_final_got_entries.

11 years agobfd/
Richard Sandiford [Mon, 11 Feb 2013 18:17:57 +0000 (18:17 +0000)]
bfd/
* elfxx-mips.c (mips_got_tls_type): New enum.
(mips_got_entry): Add tls_initialized.
(mips_elf_got_entry_hash, mips_elf_got_entry_eq, mips_tls_got_relocs)
(mips_elf_count_got_entry, mips_elf_initialize_tls_index): Remove
GOT_TLS_TYPE masks.
(mips_elf_reloc_tls_type, mips_tls_got_entries)
(mips_elf_record_global_got_symbol, mips_elf_initialize_tls_index)
(_bfd_mips_elf_finish_dynamic_symbol): Use GOT_TLS_NONE rather
than GOT_NORMAL.
(mips_elf_initialize_tls_slots): Replace got_offset and tls_type_p
arguments with a GOT entry.  Remove GOT_TLS_TYPE masks.  Use
tls_initialized rather than GOT_TLS_DONE.
(mips_tls_got_index): Delete.
(mips_elf_local_got_index, mips_elf_global_got_index): Use
mips_elf_initialize_tls_slots rather than mips_tls_got_index.
(mips_elf_record_got_entry): Initialize tls_initialized.

11 years agobfd/
Richard Sandiford [Mon, 11 Feb 2013 18:15:47 +0000 (18:15 +0000)]
bfd/
* elfxx-mips.c (mips_got_entry): Remove tls_ldm_offset.
(mips_elf_link_hash_entry): Remove tls_ie_type, tls_gd_type,
tls_ie_got_offset and tls_gd_got_offset.
(mips_elf_link_hash_newfunc): Remove initialization.
(mips_elf_create_got_info): Likewise.
(mips_elf_count_local_got_entries, mips_elf_count_global_tls_entries)
(mips_tls_single_got_index): Delete.
(mips_elf_local_got_index): Always use the GOT entry to track
GOT indices.
(mips_elf_global_got_index): Likewise.
(mips_elf_create_local_got_entry): Assert that TLS entries have
already been allocated.
(mips_elf_record_global_got_symbol): Don't initialize
tls_ie_type or tls_gd_type.
(mips_elf_count_got_symbols): Only count reloc-only GOT entries here.
(mips_elf_initialize_tls_index): Allocate a GOT index for every TLS
entry.
(mips_elf_lay_out_got): Use mips_elf_count_got_entries to count
the GOT entries.
(_bfd_mips_elf_finish_dynamic_symbol): Assert that TLS GOT offsets
have been allocated.
(_bfd_mips_elf_copy_indirect_symbol): Remove handling of
tls_ie_type and tls_gd_type.

11 years agobfd/
Richard Sandiford [Mon, 11 Feb 2013 18:12:27 +0000 (18:12 +0000)]
bfd/
* elfxx-mips.c (mips_elf_create_local_got_entry): Tidy.  Avoid
aliasing violation.  Check for htab allocation failures.

11 years agobfd/
Richard Sandiford [Mon, 11 Feb 2013 18:11:17 +0000 (18:11 +0000)]
bfd/
* elfxx-mips.c (mips_elf_primary_global_got_index): New function,
split out from...
(mips_elf_global_got_index): ...here.  Reorder arguments so that
the output bfd and info come first.
(mips_elf_calculate_relocation): Update the call to
mips_elf_global_got_index accordingly.
(_bfd_mips_elf_finish_dynamic_symbol): Use
mips_elf_primary_global_got_index rather than
mips_elf_global_got_index.
(_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.

11 years agobfd/
Richard Sandiford [Mon, 11 Feb 2013 18:09:24 +0000 (18:09 +0000)]
bfd/
* elfxx-mips.c (mips_got_entry): Update comments.
(mips_elf_multi_got_entry_eq): Rename to...
(mips_elf_got_entry_eq): ...this, deleting the old definition.
(mips_elf_create_got_info): Remove master_got_p argument.
Always use mips_elf_got_entry_eq.
(mips_elf_bfd_got, mips_elf_multi_got, mips_elf_create_got_section):
Update calls accordingly.

ld/testsuite/
* ld-mips-elf/tlsdyn-o32-1.d, ld-mips-elf/tlsdyn-o32-1.got,
ld-mips-elf/tlsdyn-o32-2.d, ld-mips-elf/tlsdyn-o32-2.got,
ld-mips-elf/tlsdyn-o32-3.d, ld-mips-elf/tlsdyn-o32-3.got,
ld-mips-elf/tls-hidden3.d, ld-mips-elf/tls-hidden3.got: Update
for new hash table order.

11 years agobfd/
Richard Sandiford [Mon, 11 Feb 2013 18:06:10 +0000 (18:06 +0000)]
bfd/
* elfxx-mips.c (mips_got_info): Remove bfd2got.
(mips_elf_bfd2got_hash): Delete.
(mips_elf_got_per_bfd_arg): Remove bfd2got.
(mips_elf_replace_bfd_got, mips_elf_count_got_entries): New functions.
(mips_elf_global_got_index, mips_elf_create_local_got_entry): Use
g->next to test for the multigot case.  Use mips_elf_bfd_got rather
than mips_elf_got_for_ibfd.
(mips_elf_bfd2got_entry_hash, mips_elf_bfd2got_entry_eq)
(mips_elf_got_for_ibfd, mips_elf_get_got_for_bfd): Delete.
(mips_elf_make_got_per_bfd): Replace with...
(mips_elf_add_got_entry): ...this new function.
(mips_elf_make_got_pages_per_bfd): Replace with...
(mips_elf_add_got_page_entry): ...this new function.
(mips_elf_merge_got_with): Replace bfd2got argument with separate
bfd and GOT arguments.  Use mips_elf_add_got_entry and
mips_elf_add_got_page_entry instead of mips_elf_make_got_per_bfd
and mips_elf_make_got_pages_per_bfd.  Use mips_elf_replace_bfd_got
to set the BFD's GOT and free the old table.
(mips_elf_merge_got): Replace bfd2got argument with separate
bfd and GOT arguments.  Apply mips_elf_resolve_final_got_entries.
Use mips_elf_count_got_entries to count the number of entries in
each GOT.  Update the calls to mips_elf_merge_got_with.
(mips_elf_adjust_gp): Use g->next to test for the multigot case.
Use mips_elf_bfd_got rather than mips_elf_got_for_ibfd.
(mips_elf_multi_got): Don't create the bfd2got hash table.
Replace hash table traversal with a walk over the input bfds,
updating the call to mips_elf_merge_got.  Use mips_elf_replace_bfd_got
to set the output bfd's GOT.
(mips_elf_lay_out_got): Rename "sub" to "ibfd".  Record that all
bfds use the master GOT in the single-GOT case.
(_bfd_mips_elf_finish_dynamic_sections): Use mips_elf_bfd_got
rather than mips_elf_got_for_ibfd.

ld/testsuite/
* ld-mips-elf/tls-hidden4.got, ld-mips-elf/tls-multi-got-1.d,
ld-mips-elf/tls-multi-got-1.got: Update for changes in the order
that symbols are added to per-bfd GOTs.

11 years agogdb/:
Sergio Durigan Junior [Mon, 11 Feb 2013 18:05:35 +0000 (18:05 +0000)]
gdb/:
2013-02-11  Sergio Durigan Junior  <sergiodj@redhat.com>

* valops.c (value_assign): Handling bitfield offset in
`lval_internalvar_component' case.

gdb/testsuite/:
2013-02-11  Sergio Durigan Junior  <sergiodj@redhat.com>

* gdb.base/bitfields.c (struct internalvartest): New declaration.
* gdb.base/bitfields.exp (bitfield_internalvar): New function.

11 years agobfd/
Richard Sandiford [Mon, 11 Feb 2013 18:01:58 +0000 (18:01 +0000)]
bfd/
* elfxx-mips.c (mips_elf_obj_tdata): Add a got field.
(mips_elf_bfd_got, mips_elf_record_got_entry): New functions.
(mips_elf_record_global_got_symbol): Update the hash entry before
adding the mips_got_entry.  Use mips_elf_record_got_entry to do
the latter.
(mips_elf_record_local_got_symbol): Use mips_elf_record_got_entry.
(mips_elf_record_got_page_entry): Record the entry in both the
master and bfd GOTs.

11 years agobfd/
Richard Sandiford [Mon, 11 Feb 2013 17:59:31 +0000 (17:59 +0000)]
bfd/
* elfxx-mips.c (mips_elf_recreate_got): Don't change the entry;
create another one if necessary.
(mips_elf_set_gotidx): New function.
(mips_elf_set_global_gotidx): Use it.
(mips_elf_initialize_tls_index): Likewise.  Take a
mips_elf_traverse_got_arg as argument.
(mips_elf_lay_out_got): Update use of mips_elf_initialize_tls_index.
(mips_elf_multi_got): Likewise.  Cope with error returns from
mips_elf_set_global_gotidx.

11 years agobfd/
Richard Sandiford [Mon, 11 Feb 2013 17:55:27 +0000 (17:55 +0000)]
bfd/
* elfxx-mips.c (mips_got_info): Add relocs field.
(mips_elf_set_global_got_offset_arg, mips_elf_count_tls_arg): Replace
with...
(mips_elf_traverse_got_arg): ...this new structure.
(mips_elf_count_local_tls_relocs): Delete.
(mips_elf_count_global_tls_relocs): Likewise.
(mips_elf_count_got_entry): New function.
(mips_elf_count_local_got_entries): Likewise.
(mips_elf_count_global_tls_entries): Take a mips_elf_traverse_got_arg
rather than a mips_elf_count_tls_arg.  Count both relocs and entries.
(mips_elf_record_local_got_symbol): Don't count got entries here.
(mips_elf_make_got_per_bfd): Use mips_elf_count_got_entry.
(mips_elf_set_global_got_offset): Split into...
(mips_elf_set_global_got_area, mips_elf_set_global_gotidx): ...these
new functions.  Take a mips_elf_traverse_got_arg rather than a
mips_elf_set_global_got_offset_arg.  Don't count TLS relocs here.
Use g->relocs to record the number of relocs needed for global GOT
entries.
(mips_elf_multi_got): Use mips_elf_traverse_got_arg rather than
mips_elf_set_global_got_offset_arg.  Use the relocs field to count
relocations.  Update for above function split.
(mips_elf_lay_out_got): Use mips_elf_count_local_got_entries
to count both the number of GOT entries and the number of TLS
relocs required by local entries.  Likewise
mips_elf_count_global_tls_entries and global entries.
Remove uses of mips_elf_count_local_tls_relocs and
mips_elf_count_global_tls_relocs.

11 years agobfd/
Richard Sandiford [Mon, 11 Feb 2013 17:54:16 +0000 (17:54 +0000)]
bfd/
* elfxx-mips.c (mips_got_entry): Update comment above tls_type entry
to say that each structure represents only one type of TLS reference.
(GOT_TLS_TYPE): New define.
(mips_elf_link_hash_entry): Temporarily split tls_type and
tls_got_offset into two variables each.
(mips_elf_link_hash_newfunc): Update accordingly.
(mips_elf_got_entry_eq, mips_elf_got_entry_hash)
(mips_elf_multi_got_entry_eq): Require the tls_type to be the same.
(mips_elf_reloc_tls_type, mips_tls_got_entries): New functions.
(mips_tls_got_relocs): Use a switch statement.
(mips_elf_count_global_tls_entries): Handle the new hash entry fields.
(mips_elf_initialize_tls_slots): Use a switch statement.  Avoid
local "offset" variable.
(mips_tls_got_index): Remove r_type argument and assert.  Remove
code that handled entries with two TLS types; always use the
original got_index instead.
(mips_tls_single_got_index): New function.
(mips_elf_local_got_index): Use entry->tls_type to check for
TLS entries.  Use mips_tls_single_got_index.  Update call to
mips_tls_got_index.
(mips_elf_global_got_index): Use mips_elf_reloc_tls_type.
Use p->tls_type to check for TLS entries.  Update call to
mips_tls_got_index.  Use mips_tls_single_got_index.
(mips_elf_create_local_got_entry): Use mips_elf_reloc_tls_type.
Use entry.tls_type to check for TLS entries.
(mips_elf_record_global_got_symbol): Replace tls_flag argument
with r_type argument.  Use mips_elf_reloc_tls_type.
Set up the new hash entry fields.
(mips_elf_record_local_got_symbol): Replace tls_flag argument
with r_type argument.  Use mips_elf_reloc_tls_type and
mips_tls_got_entries.  Remove code that handled entries
with multiple TLS types.
(mips_elf_make_got_per_bfd): Use mips_tls_got_entries.
(mips_elf_initialize_tls_index): Handle new hash entry fields.
Use equality rather than masks when checking for specific TLS types.
Use mips_tls_got_entries.  Remove code that handled entries
with multiple TLS types.
(mips_elf_calculate_relocation): Use TLS_RELOC_P instead of
testing the hash table entry.
(_bfd_mips_elf_check_relocs): Update calls to
mips_elf_record_global_got_symbol and mips_elf_record_local_got_symbol.
(_bfd_mips_elf_finish_dynamic_symbol): Don't check h->type.
(_bfd_mips_elf_copy_indirect_symbol): Handle new hash entry fields.

11 years agobfd/
Richard Sandiford [Mon, 11 Feb 2013 17:46:02 +0000 (17:46 +0000)]
bfd/
* elfxx-mips.c (mips_elf_multi_got_entry_hash): Rename to...
(mips_elf_got_entry_hash): ...this, deleting the old version.
(mips_elf_create_got_info): Use mips_elf_got_entry_hash for
both types of GOT.

ld/testsuite/
* ld-mips-elf/tls-hidden3.d, ld-mips-elf/tls-hidden3.got,
ld-mips-elf/tls-multi-got-1.got, ld-mips-elf/tlsbin-o32.d,
ld-mips-elf/tlsbin-o32.got, ld-mips-elf/tlsdyn-o32-1.d,
ld-mips-elf/tlsdyn-o32-1.got, ld-mips-elf/tlsdyn-o32-2.d,
ld-mips-elf/tlsdyn-o32-2.got, ld-mips-elf/tlsdyn-o32-3.d,
ld-mips-elf/tlsdyn-o32-3.got, ld-mips-elf/tlsdyn-o32.d,
ld-mips-elf/tlsdyn-o32.got, ld-mips-elf/tlslib-o32.d,
ld-mips-elf/tlslib-o32.got, ld-mips-elf/tlslib-o32-hidden.got,
ld-mips-elf/tlslib-o32-ver.got: Adjust GOT layout for new
got_entry hash function.

11 years agobfd/
Richard Sandiford [Mon, 11 Feb 2013 17:43:00 +0000 (17:43 +0000)]
bfd/
* elfxx-mips.c (mips_elf_create_got_info): New function.
(mips_elf_get_got_for_bfd, mips_elf_multi_got): Use it.
(mips_elf_create_got_section): Likewise.