public inbox for archer-commits@sourceware.org
help / color / mirror / Atom feed
* [SCM]  tromey/always-async: enable target-async
@ 2013-07-30 17:12 tromey
  0 siblings, 0 replies; 2+ messages in thread
From: tromey @ 2013-07-30 17:12 UTC (permalink / raw)
  To: archer-commits

The branch, tromey/always-async has been updated
  discards  5f6c234ae1c5b12923dc0a4028284a864c5bd307 (commit)
  discards  61d5819038600bf117a00aa9de01ee5b40d0a888 (commit)
  discards  f76323f207f8582907a1dd8cd16abaafa9c28450 (commit)
  discards  b0704f7dce201dc07eb17c5577c15544f3591b73 (commit)
  discards  173433defb21f2d5e3649c888bf33895007517b5 (commit)
  discards  4ac436c1c099e4d02cdb950a207146d9ef9c349f (commit)
  discards  79ac36c37d082568d3aa2c13ba41bf4895178937 (commit)
  discards  e2f61a606a77d561af560e073cf0c5278320952c (commit)
  discards  322b7eed1d4716c5f747142ca694e3439861aa7c (commit)
  discards  03baae232bc37f2acd787f3e01f3d30949b3d4ae (commit)
  discards  5253f7732eaf4157dc464d8c76a9a26a2c3334a1 (commit)
  discards  31fd10e11165df02a399b8e263215e479c46dae8 (commit)
  discards  274644a55f78ece01a01ae2a6ca83412eb2b0d09 (commit)
       via  7888e8b09d4b4c1e746c1d82e00dcb555ac76d45 (commit)
       via  d45b5606f6db5ab35f02ac977651d73823f8694a (commit)
       via  262870ca15ddfeda3b65da97b9fdcd12357d30f3 (commit)
       via  ff151c706279c3f1b637b52bb58ecef1cf94fbf2 (commit)
       via  fcdad5ed9365533ddee3ef4dfb2cf4b8204512b7 (commit)
       via  029969c02352d7be222bc799b7f6a597a9bd4dce (commit)
       via  3f4e17be3ed3ef2eeb45cdd5feb01e749a138e66 (commit)
       via  719746031c2cbb0a9f6c4d5118ff1297062540fa (commit)
       via  e01dcfc09f68077efce58475486cf80a1ae4fff5 (commit)
       via  0ba707dcf38b2602eb1b90d40e98498d47e3625a (commit)
       via  e8015b8438a58cdd5f1563807d4dce6ec840858f (commit)
       via  5b831cbbbffc0388e92268f80c2d398f78745306 (commit)
       via  fb4bf353a38cf19cd096a142e2843915e5cddd41 (commit)
       via  8fc7a089e86f65267a9dffbdae07e7cd05ccfa8c (commit)
       via  a2e6aeb00f733653081e3925565c3e640d3fe6d1 (commit)
       via  a86fecb7fdc11c3de8b9ae2429ba4b0228e488a0 (commit)
       via  cce6ccf8ebd362fabfe52e81368ec8b0f81f7e2f (commit)
       via  ea8c23e5273140785651281afed97f17c1943e7f (commit)
       via  3a4b914e706d5b002c4d3566c9807cff3462d0ec (commit)
       via  f3a76bdb82e455edeb697a221547d56a24752831 (commit)
       via  9362e151678d6aea50787f184ae86755f005290c (commit)
       via  1a15ed211941e10c03b483a3646f2aebca6a2a46 (commit)
       via  9996f808b8a68c7914aa6d246b32114aded36829 (commit)
       via  a0d6284f9fc398f68c394f8e155d8976bcd55ee4 (commit)
       via  10b6767bcdf2555fb9799f07ccd6777baa72ffe3 (commit)
       via  5fdcd0d30e415fb36547f586f0e75d9ac98bc16b (commit)
       via  b51e5c1a91ec0dcff5cdde459119d75a4b4b9fb7 (commit)
       via  422c9c79548cf14cc9f8ab83c40834be811e14b5 (commit)
       via  c999e86c92ac6cc861e84682509f1919066f59a3 (commit)
       via  090ff55a4c23c66a56a58dc5cdc2133254926364 (commit)
       via  573f1691574fc5fb11cf8cef95364a44049051f2 (commit)
       via  e5d17b96714b2848b3e1b251f368788dba9bd319 (commit)
       via  f1830d914a63cd2dc4bbd65e2a9a4c07077a62ad (commit)
       via  7a8caec96a43bb17be1650668f43f4cc1edc5bfa (commit)
       via  2fe42e82135c2d1cea50ee7126283fa5cc723d52 (commit)
       via  56f4fed4c8ec7ea80656cecac20f5077f08a5854 (commit)
       via  e73fd3d4b8b7c697660398b913e3898044e1fe5f (commit)
       via  cf1756e7bf9078ebe313bc80f38e980d0bd5f006 (commit)
       via  ee74adaa47e1e74228bc751bedac2fb1016feaf1 (commit)
       via  7dd06bddcb8b628be4e3c6443a7e419fd59c5a0e (commit)
       via  1d9a1fa39f1efe77c9399b8c596e5b572d325bd8 (commit)
       via  8da18fc40f26ba6a26e0e8fc2c76408155d5991b (commit)
       via  86bc4461f808a26927de34f7b7161270ae2b2395 (commit)
       via  13e5055cac399d8a97c6f1a80836061fd58e7393 (commit)
       via  99f4358f8203da67f08fbcdd84f984709a50c68b (commit)
       via  0387eeea5b1bd190f27e85448b9a8a93e2bd438a (commit)
       via  aaff6f779cacd457a586a620f36999b8c5de937f (commit)
       via  e7a0f8a1bd81978f27d910a9900e9b77d899b822 (commit)
       via  f2a6f5a569675c00c27c49626df5040238e59ed0 (commit)
       via  e6b1de9c41ca1eb6acf208c5b6cf07020286b02d (commit)
       via  21ba3ea8a2c5067ac7e848d763fe8ad9a62b8e7e (commit)
       via  85c131c8bd8ca90a7eb8b1a1ae6f6189984dd627 (commit)
       via  b711faca056f6729967aad30054cc993a6b3a475 (commit)
       via  3e1cf1b5d796066d4082b10a5d4675f12b176959 (commit)
       via  7203fcadb4d73cfc06a619433d64a976f593210c (commit)
       via  50bedac67a153fec697e48af559af166c5fe4fd8 (commit)
       via  cdf3101ddfebd0ed897ed47369507871ffd6f79a (commit)
      from  5f6c234ae1c5b12923dc0a4028284a864c5bd307 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email.

- Log -----------------------------------------------------------------
commit 7888e8b09d4b4c1e746c1d82e00dcb555ac76d45
Author: Tom Tromey <tromey@redhat.com>
Date:   Wed Jul 3 10:11:58 2013 -0600

    enable target-async
    
    This enables target-async by default.
    
    Unlike the CLI, MI chose to treat target-async specially -- setting it
    changes the default behavior of commands.  So, we can't get rid of the
    option.  Instead we have to make it MI-only.
    
    The hardest part of this patch, to my surprise, was getting the MI
    prompt to work properly.  It was reasonably easy, and clean, to get
    close to what the test suite expects; but to fix the last remaining
    failure (mi-async.exp), I had to resort to a hack.
    
    It seems to me that the MI grammar was never updated to account for
    changes implied by async.
    
    Perhaps some future MI can dispense with the prompt entirely.
    
    Built and regtested on x86-64 Fedora 18.
    
    	* infrun.c (set_observer_mode): Don't set target_async_permitted.
    	* linux-nat.c (linux_nat_is_async_p): Always return 1.
    	(linux_nat_can_async_p): Likewise.
    	* mi/mi-interp.c (mi_interpreter_prompt_p): Maybe print the MI
    	prompt.
    	(mi_cmd_interpreter_exec): Set mi_last_was_cli.
    	(mi_execute_command_input_handler): Conditionally print prompt.
    	(mi_on_resume): Check sync_execution before printing prompt.
    	* mi/mi-main.h (mi_last_was_cli): Declare.
    	* mi/mi-main.c (mi_last_was_cli): New global.
    	(mi_target_can_async_p): New function.
    	(exec_continue): Maybe call async_disable_stdin.
    	(run_one_inferior, mi_cmd_exec_run, mi_cmd_list_target_features):
    	Use mi_target_can_async_p.
    	(captured_mi_execute_command): Clear mi_last_was_cli.
    	(mi_execute_async_cli_command): Use mi_target_can_async_p.
    	* remote.c (remote_open_1, remote_terminal_inferior)
    	(remote_terminal_ours, remote_can_async_p, remote_is_async_p):
    	Don't check target_async_permitted.
    
    	* gdb.texinfo (Non-Stop Mode): Remove "set target-async 1"
    	from example.
    	(Background Execution): Move target-async docs...
    	(Asynchronous and non-stop modes): ... here.  Rewrite to
    	MI form.
    
    	* gdb.mi/mi-cli.exp: Don't check "$async".

commit d45b5606f6db5ab35f02ac977651d73823f8694a
Author: Tom Tromey <tromey@redhat.com>
Date:   Mon Jul 8 10:23:33 2013 -0600

    fix py-finish-breakpoint.exp with always-async
    
    With target async enabled, py-finish-breakpoint.exp will trigger an
    assertion failure.
    
    The failure occurs because execute_command re-enters the event loop in
    some circumstances, and in this case resets the sync_execution flag.
    Then later gdb reaches this assertion in normal_stop:
    
          gdb_assert (sync_execution || !target_can_async_p ());
    
    execute_command has a comment explaining why it dispatches events:
    
          /* If the interpreter is in sync mode (we're running a user
    	 command's list, running command hooks or similars), and we
    	 just ran a synchronous command that started the target, wait
    	 for that command to end.  */
    
    However, the code did not follow this comment -- it didn't check to
    see if the command started the target.
    
    This patch fixes the problem by noting whether the target was
    executing in sync_execution mode before running the command, and then
    augmenting the condition to test this as well.
    
    Built and regtested on x86-64 Fedora 18.
    
    	* top.c (execute_command): Only dispatch events if command
    	started target.

commit 262870ca15ddfeda3b65da97b9fdcd12357d30f3
Author: Tom Tromey <tromey@redhat.com>
Date:   Mon Jul 8 09:41:57 2013 -0600

    make dprintf.exp pass in always-async mode
    
    When target-async is enabled, dprintf.exp fails.
    
    This happens because run_inferior_call causes gdb to forget that it is
    running in sync_execution mode, so something like a breakpoint
    condition that makes an inferior call causes gdb to enter fully async
    mode.
    
    This patch fixes the problem by noticing when gdb was in
    sync_execution mode in run_inferior_call, and taking care to restore
    this state afterward.
    
    Built and regtested on x86-64 Fedora 18.
    
    	PR cli/15718:
    	* infcall.c: Include event-top.h.
    	(run_inferior_call): Call async_disable_stdin if needed.

commit ff151c706279c3f1b637b52bb58ecef1cf94fbf2
Author: Pedro Alves <palves@redhat.com>
Date:   Wed May 9 14:07:04 2012 +0100

    PR gdb/13860: don't lose '-interpreter-exec console EXECUTION_COMMAND''s output in async mode.
    
    The other part of PR gdb/13860 is about console execution commands
    in MI getting their output half lost.  E.g., take the finish command,
    executed on a frontend's GDB console:
    
    sync:
    
      finish
      &"finish\n"
      ~"Run till exit from #0  usleep (useconds=10) at ../sysdeps/unix/sysv/linux/usleep.c:27\n"
      ^running
      *running,thread-id="1"
      (gdb)
      ~"0x00000000004004d7 in foo () at stepinf.c:6\n"
      ~"6\t    usleep (10);\n"
      ~"Value returned is $1 = 0\n"
      *stopped,reason="function-finished",frame={addr="0x00000000004004d7",func="foo",args=[],file="stepinf.c",fullname="/home/pedro/gdb/tests/stepinf.c",line="6"},thread-id="1",stopped-threads="all",core="1"
    
    async:
    
      finish
      &"finish\n"
      ~"Run till exit from #0  usleep (useconds=10) at ../sysdeps/unix/sysv/linux/usleep.c:27\n"
      ^running
      *running,thread-id="1"
      (gdb)
      *stopped,reason="function-finished",frame={addr="0x00000000004004d7",func="foo",args=[],file="stepinf.c",fullname="/home/pedro/gdb/tests/stepinf.c",line="6"},gdb-result-var="$1",return-value="0",thread-id="1",stopped-threads="all",core="0"
    
    Note how all the "Value returned" etc. output is missing in async mode.
    
    The same happens with e.g., catchpoints:
    
      =breakpoint-modified,bkpt={number="1",type="catchpoint",disp="keep",enabled="y",what="22016",times="1"}
      ~"\nCatchpoint "
      ~"1 (forked process 22016), 0x0000003791cbd8a6 in __libc_fork () at ../nptl/sysdeps/unix/sysv/linux/fork.c:131\n"
      ~"131\t  pid = ARCH_FORK ();\n"
      *stopped,reason="fork",disp="keep",bkptno="1",newpid="22016",frame={addr="0x0000003791cbd8a6",func="__libc_fork",args=[],file="../nptl/sysdeps/unix/sysv/linux/fork.c",fullname="/usr/src/debug/glibc-2.14-394-g8f3b1ff/nptl/sysdeps/unix/sysv/linux/fork.c",line="131"},thread-id="1",stopped-threads="all",core="0"
    
    where all those ~ lines are missing in async mode, or just the "step"
    current line indication:
    
      s
      &"s\n"
      ^running
      *running,thread-id="all"
      (gdb)
      ~"13\t  foo ();\n"
      *stopped,frame={addr="0x00000000004004ef",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffdd78"}],file="stepinf.c",fullname="/home/pedro/gdb/tests/stepinf.c",line="13"},thread-id="1",stopped-threads="all",core="3"
      (gdb)
    
    Or in the case of the PRs example, the "Stopped due to shared library
    event" note:
    
      start
      &"start\n"
      ~"Temporary breakpoint 1 at 0x400608: file ../../../src/gdb/testsuite/gdb.mi/solib-main.c, line 21.\n"
      =breakpoint-created,bkpt={number="1",type="breakpoint",disp="del",enabled="y",addr="0x0000000000400608",func="main",file="../../../src/gdb/testsuite/gdb.mi/solib-main.c",fullname="/home/pedro/gdb/mygit/src/gdb/testsuite/gdb.mi/solib-main.c",line="21",times="0",original-location="main"}
      ~"Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main \n"
      =thread-group-started,id="i1",pid="21990"
      =thread-created,id="1",group-id="i1"
      ^running
      *running,thread-id="all"
      (gdb)
      =library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",thread-group="i1"
      ~"Stopped due to shared library event (no libraries added or removed)\n"
      *stopped,reason="solib-event",thread-id="1",stopped-threads="all",core="3"
      (gdb)
    
    IMO, if you're typing execution commands in a frontend's console, you
    expect to see their output.  Indeed it's what you get in sync mode.  I
    think async mode should do the same.
    
    That's what this patch does.
    
    Notes:
    
      - mi->out is the same as gdb_stdout when MI is the current
        interpreter.  I think that referring to that directly is cleaner.
        An earlier revision of this patch made the changes that are now
        done in mi_on_normal_stop directly in infrun.c:normal_stop, and so
        not having an obvious place to put the new uiout by then, and not
        wanting to abuse CLI's uiout, I made a temporary uiout when
        necessary.
    
      - Hopefuly the rest of the patch is more or less obvious given the
        comments I added.
    
    Tested on x86_64 Fedora 16, no regressions.
    
    2012-05-09  Pedro Alves  <palves@redhat.com>
    
    	PR gdb/13860
    
    	* gdbthread.h (struct thread_control_state): New field
    	`command_interp'.
    	* infrun.c (follow_fork): Copy the new thread control field to the
    	child fork thread.
    	(clear_proceed_status_thread): Clear the new thread control field.
    	(proceed): Set the new thread control field.
    	* interps.h (command_interp): Declare.
    	* interps.c (command_interpreter): New global.
    	(command_interp): New function.
    	(interp_exec): Set `command_interpreter' while here.
    
    	* cli-out.c (cli_uiout_dtor): New function.
    	(cli_ui_out_impl): Install it.
    
    	* mi/mi-interp.c: Include cli-out.h.
    	(mi_cmd_interpreter_exec): Add comment.
    	(restore_current_uiout_cleanup): New function.
    	(ui_out_free_cleanup): New function.
    	(mi_on_normal_stop): In async mode, if finishing an execution
    	command started by a CLI command, or any kind of breakpoint-like
    	event triggered, print the stop event to the output (CLI) stream.
    	* mi/mi-out.c (mi_ui_out_impl): Install NULL `dtor' handler.
    
    	gdb/testsuite/
    	* gdb.mi/mi-cli.exp: Also expect the new source line to be output
    	after a "next", in async mode.  Make it a pass/fail test.
    	* gdb.mi/mi-solib.exp: Test that the CLI solib event note is
    	output.

commit fcdad5ed9365533ddee3ef4dfb2cf4b8204512b7
Author: Pedro Alves <palves@redhat.com>
Date:   Wed May 9 14:10:30 2012 +0100

    PR gdb/13860: make "-exec-foo"'s MI output equal to "foo"'s MI output.
    
    Part of PR gdb/13860 is about the mi-solib.exp test's output being
    different in sync vs async modes.
    
    sync:
    
      >./gdb -nx -q ./testsuite/gdb.mi/solib-main -ex "set stop-on-solib-events 1" -ex "set target-async off" -i=mi
      =thread-group-added,id="i1"
      ~"Reading symbols from /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main..."
      ~"done.\n"
      (gdb)
      &"start\n"
      ~"Temporary breakpoint 1 at 0x400608: file ../../../src/gdb/testsuite/gdb.mi/solib-main.c, line 21.\n"
      =breakpoint-created,bkpt={number="1",type="breakpoint",disp="del",enabled="y",addr="0x0000000000400608",func="main",file="../../../src/gdb/testsuite/gdb.mi/solib-main.c",fullname="/home/pedro/gdb/mygit/src/gdb/testsuite/gdb.mi/solib-main.c",line="21",times="0",original-location="main"}
      ~"Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main \n"
      =thread-group-started,id="i1",pid="17724"
      =thread-created,id="1",group-id="i1"
      ^running
      *running,thread-id="all"
      (gdb)
      =library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",thread-group="i1"
      ~"Stopped due to shared library event (no libraries added or removed)\n"
      *stopped,reason="solib-event",frame={addr="0x000000379180f990",func="_dl_debug_state",args=[],from="/lib64/ld-linux-x86-64.so.2"},thread-id="1",stopped-threads="all",core="3"
      (gdb)
    
    async:
    
      >./gdb -nx -q ./testsuite/gdb.mi/solib-main -ex "set stop-on-solib-events 1" -ex "set target-async on" -i=mi
      =thread-group-added,id="i1"
      ~"Reading symbols from /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main..."
      ~"done.\n"
      (gdb)
      start
      &"start\n"
      ~"Temporary breakpoint 1 at 0x400608: file ../../../src/gdb/testsuite/gdb.mi/solib-main.c, line 21.\n"
      =breakpoint-created,bkpt={number="1",type="breakpoint",disp="del",enabled="y",addr="0x0000000000400608",func="main",file="../../../src/gdb/testsuite/gdb.mi/solib-main.c",fullname="/home/pedro/gdb/mygit/src/gdb/testsuite/gdb.mi/solib-main.c",line="21",times="0",original-location="main"}
      ~"Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main \n"
      =thread-group-started,id="i1",pid="17729"
      =thread-created,id="1",group-id="i1"
      ^running
      *running,thread-id="all"
      =library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",thread-group="i1"
      (gdb)
      *stopped,reason="solib-event",thread-id="1",stopped-threads="all",core="1"
    
    For now, let's focus only on the *stopped event.  We see that the
    async output is missing frame info.  And this causes a test failure in
    async mode, as "mi_expect_stop solib-event" wants to see the frame
    info.
    
    However, if we compare the event output when a real MI execution
    command is used, compared to a CLI command (e.g., run vs -exec-run,
    next vs -exec-next, etc.), we see:
    
      >./gdb -nx -q ./testsuite/gdb.mi/solib-main -ex "set stop-on-solib-events 1" -ex "set target-async off" -i=mi
      =thread-group-added,id="i1"
      ~"Reading symbols from /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main..."
      ~"done.\n"
      (gdb)
      r
      &"r\n"
      ~"Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main \n"
      =thread-group-started,id="i1",pid="17751"
      =thread-created,id="1",group-id="i1"
      ^running
      *running,thread-id="all"
      (gdb)
      =library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",thread-group="i1"
      ~"Stopped due to shared library event (no libraries added or removed)\n"
      *stopped,reason="solib-event",frame={addr="0x000000379180f990",func="_dl_debug_state",args=[],from="/lib64/ld-linux-x86-64.so.2"},thread-id="1",stopped-threads="all",core="3"
      (gdb)
      -exec-run
      =thread-exited,id="1",group-id="i1"
      =thread-group-exited,id="i1"
      =library-unloaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",thread-group="i1"
      =thread-group-started,id="i1",pid="17754"
      =thread-created,id="1",group-id="i1"
      ^running
      *running,thread-id="all"
      (gdb)
      =library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",thread-group="i1"
      *stopped,reason="solib-event",thread-id="1",stopped-threads="all",core="1"
      =thread-selected,id="1"
      (gdb)
    
    As seen above, with MI commands, the *stopped event _doesn't_ have
    frame info.  This is because normal_stop, as commanded by the result
    of bpstat_print, skips printing frame info in this case (it's an
    "event", not a "breakpoint"), and when the interpreter is MI,
    mi_on_normal_stop skips calling print_stack_frame, as the normal_stop
    call was already done with the MI uiout.  This explains why the async
    output is different even with a CLI command.  Its because in async
    mode, the mi_on_normal_stop path is always taken; it is always reached
    with the MI uiout, because the stop is handled from the event loop,
    instead of from within `proceed -> wait_for_inferior -> normal_stop'
    with the interpreter overridden, as in sync mode.
    
    This patch fixes the issue by making all cases output the same
    *stopped event, by factoring out the print code from normal_stop, and
    using it from mi_on_normal_stop as well.  I chose the *stopped output
    without a frame, mainly because that is what you already get if you
    use MI execution commands, the commands frontends are supposed to use
    (except when implementing a console).  This patch makes it simpler to
    tweak the MI output differently if desired, as we only have to change
    the centralized print_stop_event (taking into account whether the
    uiout is MI-like), and all different modes will change accordingly.
    
    Tested on x86_64 Fedora 16, no regressions.  The mi-solib.exp test no
    longer fails in async mode with this patch, so the patch removes the
    kfail.
    
    2012-05-09  Pedro Alves  <palves@redhat.com>
    
    	PR gdb/13860
    
    	gdb/
    	* inferior.h (print_stop_event): Declare.
    	* infrun.c (print_stop_event): New, factored out from ...
    	(normal_stop): ... this.
    	* mi/mi-interp.c (mi_on_normal_stop): Use print_stop_event instead
    	of bpstat_print/print_stack_frame.
    
    	gdb/testsuite/
    	* gdb.mi/mi-solib.exp: Remove gdb/13860 kfail.
    	* lib/mi-support.exp (mi_expect_stop): Add special handling for
    	solib-event.

commit 029969c02352d7be222bc799b7f6a597a9bd4dce
Author: Pedro Alves <palves@redhat.com>
Date:   Wed May 9 17:28:12 2012 +0100

    PR gdb/13860: make -interpreter-exec console "list" behave more like "list".
    
    Patch 3 in this series made me notice that "list" behaves differently
    in CLI vs MI.  Particularly:
    
      >./gdb -nx -q ./testsuite/gdb.mi/mi-cli
      Reading symbols from /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/mi-cli...done.
      (gdb) start
      Temporary breakpoint 1 at 0x40054d: file ../../../src/gdb/testsuite/gdb.mi/basics.c, line 62.
      Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/mi-cli
    
      Temporary breakpoint 1, main () at ../../../src/gdb/testsuite/gdb.mi/basics.c:62
      62        callee1 (2, "A string argument.", 3.5);
      (gdb) list
      57      {
      58      }
      59
      60      main ()
      61      {
      62        callee1 (2, "A string argument.", 3.5);
      63        callee1 (2, "A string argument.", 3.5);
      64
      65        do_nothing (); /* Hello, World! */
      66
      (gdb)
    
    Note the list started at line 57.  IOW, the program stopped at line
    62, and GDB centered the list on that.
    
    compare with:
    
      >./gdb -nx -q ./testsuite/gdb.mi/mi-cli -i=mi
      =thread-group-added,id="i1"
      ~"Reading symbols from /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/mi-cli..."
      ~"done.\n"
      (gdb)
      start
      &"start\n"
      ~"Temporary breakpoint 1 at 0x40054d: file ../../../src/gdb/testsuite/gdb.mi/basics.c, line 62.\n"
      =breakpoint-created,bkpt={number="1",type="breakpoint",disp="del",enabled="y",addr="0x000000000040054d",func="main",file="../../../src/gdb/testsuite/gdb.mi/basics.c",fullname="/home/pedro/gdb/mygit/src/gdb/testsuite/gdb.mi/basics.c",line="62",times="0",original-location="main"}
      ~"Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/mi-cli \n"
      =thread-group-started,id="i1",pid="14221"
      =thread-created,id="1",group-id="i1"
      ^running
      *running,thread-id="all"
      (gdb)
      =library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",thread-group="i1"
      =library-loaded,id="/lib64/libm.so.6",target-name="/lib64/libm.so.6",host-name="/lib64/libm.so.6",symbols-loaded="0",thread-group="i1"
      =library-loaded,id="/lib64/libc.so.6",target-name="/lib64/libc.so.6",host-name="/lib64/libc.so.6",symbols-loaded="0",thread-group="i1"
      =breakpoint-modified,bkpt={number="1",type="breakpoint",disp="del",enabled="y",addr="0x000000000040054d",func="main",file="../../../src/gdb/testsuite/gdb.mi/basics.c",fullname="/home/pedro/gdb/mygit/src/gdb/testsuite/gdb.mi/basics.c",line="62",times="1",original-location="main"}
      ~"\nTemporary breakpoint "
      ~"1, main () at ../../../src/gdb/testsuite/gdb.mi/basics.c:62\n"
      ~"62\t  callee1 (2, \"A string argument.\", 3.5);\n"
      *stopped,reason="breakpoint-hit",disp="del",bkptno="1",frame={addr="0x000000000040054d",func="main",args=[],file="../../../src/gdb/testsuite/gdb.mi/basics.c",fullname="/home/pedro/gdb/mygit/src/gdb/testsuite/gdb.mi/basics.c",line="62"},thread-id="1",stopped-threads="all",core="0"
      =breakpoint-deleted,id="1"
      (gdb)
      -interpreter-exec console list
      ~"62\t  callee1 (2, \"A string argument.\", 3.5);\n"
      ~"63\t  callee1 (2, \"A string argument.\", 3.5);\n"
      ~"64\t\n"
      ~"65\t  do_nothing (); /* Hello, World! */\n"
      ~"66\t\n"
      ~"67\t  callme (1);\n"
      ~"68\t  callme (2);\n"
      ~"69\t\n"
      ~"70\t  return 0;\n"
      ~"71\t}\n"
      ^done
      (gdb)
    
    Here the list starts at line 62, where the program was stopped.
    
    This happens because print_stack_frame, called from both normal_stop
    and mi_on_normal_stop, is the function responsible for setting the
    current sal from the selected frame, overrides the PRINT_WHAT
    argument, and only after that does it decide whether to center the
    current sal line or not, based on the overriden value, and it will
    always decide false.
    
    (The print_stack_frame call in mi_on_normal_stop is a little different
    from the call in normal_stop, in that it is an unconditional
    SRC_AND_LOC call.  The next patch will make those uniform.)
    
    Tested on x86_64 Fedora 16, no regressions.
    
    gdb/
    2012-05-09  Pedro Alves  <palves@redhat.com>
    
    	* stack.c (print_stack_frame): Compute CENTER before overriding
    	PRINT_WHAT.
    
    gdb/testsuite/
    2012-05-09  Pedro Alves  <palves@redhat.com>
    
    	* gdb.mi/mi-cli.exp: Adjust expected output of "list".

commit 3f4e17be3ed3ef2eeb45cdd5feb01e749a138e66
Author: Tom Tromey <tromey@redhat.com>
Date:   Tue Jul 30 10:36:07 2013 -0600

    add "this" pointers to more target APIs

commit 719746031c2cbb0a9f6c4d5118ff1297062540fa
Author: Tom Tromey <tromey@redhat.com>
Date:   Fri Jul 12 13:00:34 2013 -0600

    add target method delegation
    
    This patch replaces some code in the record targets with target method
    delegation.
    
    Right now there are two latent problems in the record target.
    
    First, record-full.c stores pointers to many target methods when the
    record target is pushed.  Then it later delegates some calls via
    these.  This is wrong because it violates the target stack contract.
    In particular it is ok to unpush a target at any stratum, but
    record-full does not keep track of this, so it could potentially call
    into an unpushed target.
    
    Second, RECORD_IS_USED and some other spots look at
    current_target.to_stratum to determine whether a record target is in
    use.  This is bad because arch_stratum is greater than record_stratum.
    
    To fix the first problem, this patch introduces a handful of
    target_delegate_* functions, which forward calls further down the
    target stack.
    
    To fix the second problem, this patch adds find_target_at to determine
    whether a target appears at a given stratum.  This may seem like
    overkill somehow, but I have a subsequent patch series (see archer.git
    tromey/multi-target) that uses it more heavily.
    
    	* record-full.c (record_full_beneath_to_resume_ops)
    	(record_full_beneath_to_resume, record_full_beneath_to_wait_ops)
    	(record_full_beneath_to_wait)
    	(record_full_beneath_to_store_registers_ops)
    	(record_full_beneath_to_store_registers)
    	(record_full_beneath_to_xfer_partial_ops)
    	(record_full_beneath_to_xfer_partial)
    	(record_full_beneath_to_insert_breakpoint)
    	(record_full_beneath_to_remove_breakpoint)
    	(record_full_beneath_to_stopped_by_watchpoint)
    	(record_full_beneath_to_stopped_data_address)
    	(record_full_beneath_to_async, tmp_to_resume_ops, tmp_to_resume)
    	(tmp_to_wait_ops, tmp_to_wait, tmp_to_store_registers_ops)
    	(tmp_to_store_registers, tmp_to_xfer_partial_ops)
    	(tmp_to_xfer_partial, tmp_to_insert_breakpoint)
    	(tmp_to_remove_breakpoint, tmp_to_stopped_by_watchpoint)
    	(tmp_to_stopped_data_address, tmp_to_async): Remove.
    	(record_full_open_1, record_full_open): Update.  Use RECORD_IS_USED.
    	(record_full_resume, record_full_wait_1)
    	(record_full_stopped_by_watchpoint, record_full_stopped_data_address)
    	(record_full_store_registers, record_full_xfer_partial)
    	(record_full_insert_breakpoint, record_full_remove_breakpoint)
    	(record_full_async, record_full_can_async_p, record_full_is_async_p)
    	(record_full_core_xfer_partial): Use target delegation.
    	* record.c (find_record_target): Use find_target_at.
    	* record.h (RECORD_IS_USED): Use find_target_at.
    	* target.c (update_current_target): Use target_delegate_xfer_partial.
    	(target_delegate_xfer_partial): Now public.  Renamed from...
    	(current_xfer_partial): ...this.  Remove.
    	(target_delegate_async, target_delegate_is_async_p)
    	(target_delegate_can_async_p, target_delegate_insert_breakpoint)
    	(target_delegate_remove_breakpoint, target_delegate_wait)
    	(target_delegate_resume, find_target_at)
    	(target_delegate_store_registers)
    	(target_delegate_stopped_by_watchpoint)
    	(target_delegate_stopped_data_address): New functions.
    	* target.h (target_delegate_async, target_delegate_is_async_p)
    	(target_delegate_can_async_p, target_delegate_insert_breakpoint)
    	(target_delegate_remove_breakpoint, target_delegate_wait)
    	(target_delegate_resume, find_target_at)
    	(target_delegate_store_registers)
    	(target_delegate_stopped_by_watchpoint)
    	(target_delegate_stopped_data_address)
    	(target_delegate_xfer_partial): Declare.

commit e01dcfc09f68077efce58475486cf80a1ae4fff5
Author: Tom Tromey <tromey@redhat.com>
Date:   Tue Jul 9 09:48:09 2013 -0600

    fix latent bugs in ui-out.c
    
    The destructor code in ui-out.c has a latent bug, which is hidden by
    the fact that nothing uses this right now.  This patch fixes the
    problem.  The bug is that we don't always clear a pointer in the
    ui-out object, leading to bad a free.
    
    	* ui-out.c (clear_table, ui_out_new): Clear uiout->table.id.

commit 0ba707dcf38b2602eb1b90d40e98498d47e3625a
Author: Tom Tromey <tromey@redhat.com>
Date:   Tue Jul 30 09:22:07 2013 -0600

    add README.archer

commit e8015b8438a58cdd5f1563807d4dce6ec840858f
Author: Alan Modra <amodra@bigpond.net.au>
Date:   Mon Jul 29 00:00:04 2013 +0000

    daily update

commit 5b831cbbbffc0388e92268f80c2d398f78745306
Author: Maciej W. Rozycki <macro@linux-mips.org>
Date:   Sun Jul 28 23:05:17 2013 +0000

    	* elf64-hppa.c (elf64_hppa_finish_dynamic_sections)
    	<DT_HP_LOAD_MAP>: Return unsuccessfully if there's no `.data'
    	section.

commit fb4bf353a38cf19cd096a142e2843915e5cddd41
Author: pinskia <pinskia>
Date:   Sun Jul 28 03:29:41 2013 +0000

    2013-07-27  Andrew Pinski  <apinski@cavium.com>
    
    	* elfnn-aarch64.c (elfNN_aarch64_check_relocs):
    	Use the correct alignment for
    	_bfd_elf_make_dynamic_reloc_section for ILP32.

commit 8fc7a089e86f65267a9dffbdae07e7cd05ccfa8c
Author: Alan Modra <amodra@bigpond.net.au>
Date:   Sun Jul 28 00:00:04 2013 +0000

    daily update

commit a2e6aeb00f733653081e3925565c3e640d3fe6d1
Author: pinskia <pinskia>
Date:   Sat Jul 27 23:58:42 2013 +0000

    2013-07-27  Andrew Pinski  <apinski@cavium.com>
    
    	* elfnn-aarch64.c (elfNN_aarch64_howto_from_bfd_reloc): Handle
    	BFD_RELOC_AARCH64_NONE explicitly.

commit a86fecb7fdc11c3de8b9ae2429ba4b0228e488a0
Author: Maciej W. Rozycki <macro@linux-mips.org>
Date:   Sat Jul 27 22:38:50 2013 +0000

    	* elf32-vax.c (elf_vax_finish_dynamic_sections): Don't set GOT's
    	entry size if there is no ELF section data.

commit cce6ccf8ebd362fabfe52e81368ec8b0f81f7e2f
Author: Maciej W. Rozycki <macro@linux-mips.org>
Date:   Sat Jul 27 22:21:10 2013 +0000

    	bfd/
    	* elf32-vax.c (elf_vax_check_relocs) <R_VAX_GOT32, R_VAX_PLT32>:
    	Don't check symbol visibility here.  Remove a check already
    	asserted for.
    	(elf_vax_instantiate_got_entries): Use SYMBOL_REFERENCES_LOCAL
    	instead of individual checks.
    	(elf_vax_relocate_section) <R_VAX_GOT32, R_VAX_PLT32>: Only
    	check the offset to decide if produce a GOT or PLT entry.
    	Remove redundant assertions.  Remove code to produce GOT entries
    	for local symbols.  Remove a duplicate comment and add a comment
    	on GOT relocations.
    	(elf_vax_finish_dynamic_symbol): Remove code to produce RELATIVE
    	dynamic relocs.
    
    	ld/testsuite/
    	* ld-vax-elf/got-local-exe.xd: New test.
    	* ld-vax-elf/got-local-lib.xd: New test.
    	* ld-vax-elf/got-local-aux.s: New test source.
    	* ld-vax-elf/got-local-def.s: New test source.
    	* ld-vax-elf/got-local-ref.s: New test source.
    	* ld-vax-elf/vax-elf.exp: Run the new tests.

commit ea8c23e5273140785651281afed97f17c1943e7f
Author: Maciej W. Rozycki <macro@linux-mips.org>
Date:   Sat Jul 27 19:32:53 2013 +0000

    	* elf32-vax.c (elf_vax_always_size_sections): Correct a comment
    	typo.

commit 3a4b914e706d5b002c4d3566c9807cff3462d0ec
Author: Maciej W. Rozycki <macro@linux-mips.org>
Date:   Sat Jul 27 19:17:28 2013 +0000

    	* elf32-vax.c (elf_vax_discard_got_entries): New function.
    	(elf_vax_always_size_sections): Likewise.
    	(elf_vax_size_dynamic_sections): Remove code moved to
    	elf_vax_always_size_sections.  Make comment on
    	elf_vax_instantiate_got_entries match reality.
    	(elf_vax_instantiate_got_entries): Assert that rather than check
    	if dynobj is null.  Don't check for dynamic_sections_created.
    	Make function description match reality.
    	(elf_backend_always_size_sections): New macro.

commit f3a76bdb82e455edeb697a221547d56a24752831
Author: qiyao <qiyao>
Date:   Sat Jul 27 07:59:48 2013 +0000

    gdb/gdbserver/
    
    	* Makefile.in (SFILES): Add common/mips-linux-watch.c.
    	(mips-linux-watch.o): New rule.
    	(mips_linux_watch_h): New variable.
    	* configure.srv <mips*-*-linux*>: Add mips-linux-watch.o to
    	srv_tgtobj.
    	* linux-mips-low.c: Include mips-linux-watch.h.
    	(struct arch_process_info, struct arch_lwp_info): New.
    	(update_watch_registers_callback): New function.
    	(mips_linux_new_process, mips_linux_new_thread) New functions.
    	(mips_linux_prepare_to_resume, mips_insert_point): New
    	functions.
    	(mips_remove_point, mips_stopped_by_watchpoint): New
    	functions.
    	(rsp_bp_type_to_target_hw_bp_type): New function.
    	(mips_stopped_data_address): New function.
    	(the_low_target): Add watchpoint support functions.
    
    gdb/
    
    	* NEWS: Mention that GDBserver now supports hardware
    	watchpoints on the MIPS GNU/Linux target.

commit 9362e151678d6aea50787f184ae86755f005290c
Author: qiyao <qiyao>
Date:   Sat Jul 27 07:49:04 2013 +0000

    gdb/
    
    	* Makefile.in (HFILES_NO_SRCDIR): Add
    	common/mips-linux-watch.h.
    	(mips-linux-watch.o): New rule.
    	* common/mips-linux-watch.c: New.
    	* common/mips-linux-watch.h: New.
    	* config/mips/linux.mh (NATDEPFILES): Add mips-linux-watch.o
    	* mips-linux-nat.c: Include mips-linux-watch.h.
    	(W_BIT, R_BIT, I_BIT, W_MASK, R_MASK, I_MASK, IRW_MASK): Move
    	to common/mips-linux-watch.h.
    	(MAX_DEBUG_REGISTER): Likewise.
    	(enum pt_watch_style): Likewise.
    	(struct mips32_watch_regs): Likewise.
    	(struct mips64_watch_regs): Likewise.
    	(struct pt_watch_regs): Likewise.
    	(struct mips_watchpoint): Likewise.
    	(mips_linux_watch_get_irw_mask): Move to
    	common/mips-linux-watch.c.
    	(get_reg_mask, mips_linux_watch_get_num_valid): Likewise.
    	(mips_linux_watch_get_watchlo): Likewise.
    	(mips_linux_watch_set_watchlo): Likewise.
    	(mips_linux_watch_get_watchhi): Likewise.
    	(mips_linux_watch_set_watchhi): Likewise.
    	(mips_linux_read_watch_registers): Likewise.
    	(mips_linux_watch_type_to_irw): Likewise.
    	(mips_linux_stopped_data_address, fill_mask): Likewise.
    	(mips_linux_watch_try_one_watch): Likewise.
    	(mips_linux_watch_populate_regs): Likewise.

commit 1a15ed211941e10c03b483a3646f2aebca6a2a46
Author: qiyao <qiyao>
Date:   Sat Jul 27 07:32:39 2013 +0000

    gdb/
    	* mips-linux-nat.c (get_irw_mask): Rename to ...
    	(mips_linux_watch_get_irw_mask): ... this.  Rename parameter
    	'set' to 'n'.  Update function comment.  All callers changed.
    	(get_reg_mask): Rename parameter 'set' to 'n'.  Update
    	function comment.  All callers changed.
    	(get_num_valid): Rename to ...
    	(mips_linux_watch_get_num_valid): ... this.  Rename parameter
    	'set' to 'n'.  Update function comment.  All callers changed.
    	(get_watchlo): Rename to ...
    	(mips_linux_watch_get_watchlo): ... this.  Rename parameter
    	'set' to 'n'.  Update function comment.  All callers changed.
    	(set_watchlo): Rename to ...
    	(mips_linux_watch_set_watchlo): ... this.  Rename parameter
    	'set' to 'n'.  Update function comment.  All callers changed.
    	(get_watchhi): Rename to ...
    	(mips_linux_watch_get_watchhi): ... this.  Update function
    	comment.  All callers changed.
    	(set_watchhi): Rename to ...
    	(mips_linux_watch_set_watchhi): ... this.  Update function
    	comment.  All callers changed.
    	(mips_linux_read_watch_registers): Update function comment.
    	Add new parameters 'lwpid', 'watch_readback', and
    	'watch_readback_valid'.  Update.
    	(type_to_irw): Rename to ...
    	(mips_linux_watch_type_to_irw): ... this.  Update function
    	comment.  All callers changed.
    	(fill_mask): Update function comment.
    	(try_one_watch): Rename to ...
    	(mips_linux_watch_try_one_watch): ... this.  Change the type
    	of parameter 'irw' from 'unsigned' to 'uint32_t'.
    	(populate_regs_from_watches): Rename to ...
    	(mips_linux_watch_populate_regs): ... this.  Add parameter
    	'current_watches'.  All callers changed.

commit 9996f808b8a68c7914aa6d246b32114aded36829
Author: qiyao <qiyao>
Date:   Sat Jul 27 07:27:18 2013 +0000

    gdb/
    	* mips-linux-nat.c (MAX_DEBUG_REGISTER): Move it earlier in
    	the code.
    	(PTRACE_SET_WATCH_REGS, enum pt_watch_style): Remove.
    	(struct mips32_watch_regs, struct mips64_watch_regs): Remove.
    	(struct pt_watch_regs): Likewise.
    	[!PTRACE_GET_WATCH_REGS] (PTRACE_SET_WATCH_REGS): New macro.
    	[!PTRACE_GET_WATCH_REGS] (enum pt_watch_style): New.
    	[!PTRACE_GET_WATCH_REGS] (struct mips32_watch_regs): New.
    	[!PTRACE_GET_WATCH_REGS] (struct mips64_watch_regs): New.
    	[!PTRACE_GET_WATCH_REGS] (struct pt_watch_regs): New.

commit a0d6284f9fc398f68c394f8e155d8976bcd55ee4
Author: qiyao <qiyao>
Date:   Sat Jul 27 07:11:46 2013 +0000

    gdb/
    
    	* breakpoint.h: Include break-common.h.
    	(enum target_hw_bp_type): Move to ...
    	* common/break-common.h: ... here.  New.
    
    gdb/gdbserver/
    
    	* i386-low.c: Include break-common.h.
    	(enum target_hw_bp_type): Remove.

commit 10b6767bcdf2555fb9799f07ccd6777baa72ffe3
Author: Alan Modra <amodra@bigpond.net.au>
Date:   Sat Jul 27 00:00:04 2013 +0000

    daily update

commit 5fdcd0d30e415fb36547f586f0e75d9ac98bc16b
Author: Keith Seitz <keiths@redhat.com>
Date:   Fri Jul 26 18:15:06 2013 +0000

    	* gdb.mi/mi-var-child-f.exp: Pass f90 to gdb_compile instead
    	of f77.
    	Allow for compiler variations of integer types.
    	Use mi_create_varobj.
    	Use mi_list_varobj_children for the immediate children of `array'.
    	Add "has_more" attribute for grandchildren test.

commit b51e5c1a91ec0dcff5cdde459119d75a4b4b9fb7
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 26 17:20:24 2013 +0000

    Add Intel AVX-512 support
    
    binutils/
    
    2013-07-26  Sergey Guriev  <sergey.s.guriev@intel.com>
    	    Alexander Ivchenko  <alexander.ivchenko@intel.com>
    	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
    	    Sergey Lega  <sergey.s.lega@intel.com>
    	    Anna Tikhonova  <anna.tikhonova@intel.com>
    	    Ilya Tocar  <ilya.tocar@intel.com>
    	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
    	    Ilya Verbin  <ilya.verbin@intel.com>
    	    Kirill Yukhin  <kirill.yukhin@intel.com>
    	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
    
    	* dwarf.c (dwarf_regnames_i386): Add k0-k7 registers and
    	numeration in comments.
    	(dwarf_regnames_x86_64): Add xmm16-31 and k0-k7 registers to
    	dwarf table.
    
    gas/
    
    2013-07-26  Sergey Guriev  <sergey.s.guriev@intel.com>
    	    Alexander Ivchenko  <alexander.ivchenko@intel.com>
    	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
    	    Sergey Lega  <sergey.s.lega@intel.com>
    	    Anna Tikhonova  <anna.tikhonova@intel.com>
    	    Ilya Tocar  <ilya.tocar@intel.com>
    	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
    	    Ilya Verbin  <ilya.verbin@intel.com>
    	    Kirill Yukhin  <kirill.yukhin@intel.com>
    	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
    
    	* config/tc-i386-intel.c (O_zmmword_ptr): New.
    	(i386_types): Add zmmword.
    	(i386_intel_simplify_register): Allow regzmm.
    	(i386_intel_simplify): Handle zmmwords.
    	(i386_intel_operand): Handle RC/SAE, vector operations and
    	zmmwords.
    	* config/tc-i386.c (ZMMWORD_MNEM_SUFFIX): New.
    	(struct RC_Operation): New.
    	(struct Mask_Operation): New.
    	(struct Broadcast_Operation): New.
    	(vex_prefix): Size of bytes increased to 4 to support EVEX
    	encoding.
    	(enum i386_error): Add new error codes: unsupported_broadcast,
    	broadcast_not_on_src_operand, broadcast_needed,
    	unsupported_masking, mask_not_on_destination, no_default_mask,
    	unsupported_rc_sae, rc_sae_operand_not_last_imm,
    	invalid_register_operand, try_vector_disp8.
    	(struct _i386_insn): Add new fields vrex, need_vrex, mask,
    	rounding, broadcast, memshift.
    	(struct RC_name): New.
    	(RC_NamesTable): New.
    	(evexlig): New.
    	(evexwig): New.
    	(extra_symbol_chars): Add '{'.
    	(cpu_arch): Add AVX512F, AVX512CD, AVX512ER and AVX512PF.
    	(i386_operand_type): Add regzmm, regmask and vec_disp8.
    	(match_mem_size): Handle zmmwords.
    	(operand_type_match): Handle zmm-registers.
    	(mode_from_disp_size): Handle vec_disp8.
    	(fits_in_vec_disp8): New.
    	(md_begin): Handle {} properly.
    	(type_names): Add "rZMM", "Mask reg" and "Vector d8".
    	(build_vex_prefix): Handle vrex.
    	(build_evex_prefix): New.
    	(process_immext): Adjust to properly handle EVEX.
    	(md_assemble): Add EVEX encoding support.
    	(swap_2_operands): Correctly handle operands with masking,
    	broadcasting or RC/SAE.
    	(check_VecOperands): Support EVEX features.
    	(VEX_check_operands): Properly handle 16 upper [xyz]mm registers.
    	(match_template): Support regzmm and handle new error codes.
    	(process_suffix): Handle zmmwords and zmm-registers.
    	(check_byte_reg): Extend to zmm-registers.
    	(process_operands): Extend to zmm-registers.
    	(build_modrm_byte): Handle EVEX.
    	(output_insn): Adjust to properly handle EVEX case.
    	(disp_size): Handle vec_disp8.
    	(output_disp): Support compressed disp8*N evex feature.
    	(output_imm): Handle RC/SAE immediates properly.
    	(check_VecOperations): New.
    	(i386_immediate): Handle EVEX features.
    	(i386_index_check): Handle zmmwords and zmm-registers.
    	(RC_SAE_immediate): New.
    	(i386_att_operand): Handle EVEX features.
    	(parse_real_register): Add a check for ZMM/Mask registers.
    	(OPTION_MEVEXLIG): New.
    	(OPTION_MEVEXWIG): New.
    	(md_longopts): Add mevexlig and mevexwig.
    	(md_parse_option): Handle mevexlig and mevexwig options.
    	(md_show_usage): Add description for mevexlig and mevexwig.
    	* doc/c-i386.texi: Document avx512f/.avx512f, avx512cd/.avx512cd,
    	avx512er/.avx512er, avx512pf/.avx512pf, mevexlig and mevexwig.
    
    gas/testsuite/
    
    2013-07-26  Sergey Guriev  <sergey.s.guriev@intel.com>
    	    Alexander Ivchenko  <alexander.ivchenko@intel.com>
    	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
    	    Sergey Lega  <sergey.s.lega@intel.com>
    	    Anna Tikhonova  <anna.tikhonova@intel.com>
    	    Ilya Tocar  <ilya.tocar@intel.com>
    	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
    	    Ilya Verbin  <ilya.verbin@intel.com>
    	    Kirill Yukhin  <kirill.yukhin@intel.com>
    	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
    
    	* gas/cfi/cfi-i386.s: Add tests for k0-k7.
    	* gas/cfi/cfi-i386.d: Change to reflect above mentioned changes.
    	* gas/cfi/cfi-x86_64.s: Add tests for xmm16-31, k0-7.
    	* gas/cfi/cfi-x86_64.d: Change to reflect above mentioned changes.
    	* gas/i386/ilp32/cfi/cfi-x86_64.d: Ditto.
    	* gas/i386/intel-regs.s: Add tests for zmm0 and xmm16 registers.
    	* gas/i386/intel-regs.d: Change correspondingly.
    	* gas/i386/prefetch-intel.d: Reflect implementation of prefetchwt1.
    	* gas/i386/prefetch.d: Ditto.
    	* gas/i386/x86-64-prefetch-intel.d: Ditto.
    	* gas/i386/x86-64-prefetch.d: Ditto.
    	* gas/i386/avx512f-intel.d: New.
    	* gas/i386/avx512f-nondef.d: New.
    	* gas/i386/avx512f-nondef.s: New.
    	* gas/i386/avx512f-opts-intel.d: New.
    	* gas/i386/avx512f-opts.d: New.
    	* gas/i386/avx512f-opts.s: New.
    	* gas/i386/avx512f.d: New.
    	* gas/i386/avx512f.s: New.
    	* gas/i386/avx512cd-intel.d: New.
    	* gas/i386/avx512cd.d: New.
    	* gas/i386/avx512cd.s: New.
    	* gas/i386/avx512er-intel.d: New.
    	* gas/i386/avx512er.d: New.
    	* gas/i386/avx512er.s: New.
    	* gas/i386/avx512pf-intel.d: New.
    	* gas/i386/avx512pf.d: New.
    	* gas/i386/avx512pf.s: New.
    	* gas/i386/evex-lig.s: New.
    	* gas/i386/evex-lig256-intel.d: New.
    	* gas/i386/evex-lig256.d: New.
    	* gas/i386/evex-lig512-intel.d: New.
    	* gas/i386/evex-lig512.d: New.
    	* gas/i386/evex-wig.s: New.
    	* gas/i386/evex-wig1-intel.d: New.
    	* gas/i386/evex-wig1.d: New.
    	* gas/i386/inval-avx512f.l: New.
    	* gas/i386/inval-avx512f.s: New.
    	* gas/i386/x86-64-avx512f-intel.d: New.
    	* gas/i386/x86-64-avx512f-nondef.d: New.
    	* gas/i386/x86-64-avx512f-nondef.s: New.
    	* gas/i386/x86-64-avx512f-opts-intel.d: New.
    	* gas/i386/x86-64-avx512f-opts.d: New.
    	* gas/i386/x86-64-avx512f-opts.s: New.
    	* gas/i386/x86-64-avx512f.d: New.
    	* gas/i386/x86-64-avx512f.s: New.
    	* gas/i386/x86-64-avx512cd-intel.d: New.
    	* gas/i386/x86-64-avx512cd.d: New.
    	* gas/i386/x86-64-avx512cd.s: New.
    	* gas/i386/x86-64-avx512er-intel.d: New.
    	* gas/i386/x86-64-avx512er.d: New.
    	* gas/i386/x86-64-avx512er.s: New.
    	* gas/i386/x86-64-avx512pf-intel.d: New.
    	* gas/i386/x86-64-avx512pf.d: New.
    	* gas/i386/x86-64-avx512pf.s: New.
    	* gas/i386/x86-64-evex-lig.s: New.
    	* gas/i386/x86-64-evex-lig256-intel.d: New.
    	* gas/i386/x86-64-evex-lig256.d: New.
    	* gas/i386/x86-64-evex-lig512-intel.d: New.
    	* gas/i386/x86-64-evex-lig512.d: New.
    	* gas/i386/x86-64-evex-wig.s: New.
    	* gas/i386/x86-64-evex-wig1-intel.d: New.
    	* gas/i386/x86-64-evex-wig1.d: New.
    	* gas/i386/x86-64-inval-avx512f.l: New.
    	* gas/i386/x86-64-inval-avx512f.s: New.
    	* gas/i386/i386.exp: Run new AVX-512 tests.
    
    opcodes/
    
    2013-07-26  Sergey Guriev  <sergey.s.guriev@intel.com>
    	    Alexander Ivchenko  <alexander.ivchenko@intel.com>
    	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
    	    Sergey Lega  <sergey.s.lega@intel.com>
    	    Anna Tikhonova  <anna.tikhonova@intel.com>
    	    Ilya Tocar  <ilya.tocar@intel.com>
    	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
    	    Ilya Verbin  <ilya.verbin@intel.com>
    	    Kirill Yukhin  <kirill.yukhin@intel.com>
    	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
    
    	* i386-dis-evex.h: New.
    	* i386-dis.c (OP_Rounding): New.
    	(VPCMP_Fixup): New.
    	(OP_Mask): New.
    	(Rdq): New.
    	(XMxmmq): New.
    	(EXdScalarS): New.
    	(EXymm): New.
    	(EXEvexHalfBcstXmmq): New.
    	(EXxmm_mdq): New.
    	(EXEvexXGscat): New.
    	(EXEvexXNoBcst): New.
    	(VPCMP): New.
    	(EXxEVexR): New.
    	(EXxEVexS): New.
    	(XMask): New.
    	(MaskG): New.
    	(MaskE): New.
    	(MaskR): New.
    	(MaskVex): New.
    	(modes enum): Add evex_x_gscat_mode, evex_x_nobcst_mode,
    	evex_half_bcst_xmmq_mode, xmm_mdq_mode, ymm_mode,
    	evex_rounding_mode, evex_sae_mode, mask_mode.
    	(USE_EVEX_TABLE): New.
    	(EVEX_TABLE): New.
    	(EVEX enum): New.
    	(REG enum): Add REG_EVEX_0F72, REG_EVEX_0F73, REG_EVEX_0F38C6,
    	REG_EVEX_0F38C7.
    	(MOD enum): Add MOD_EVEX_0F10_PREFIX_1, MOD_EVEX_0F10_PREFIX_3,
    	MOD_EVEX_0F11_PREFIX_1, MOD_EVEX_0F11_PREFIX_3,
    	MOD_EVEX_0F12_PREFIX_0, MOD_EVEX_0F16_PREFIX_0, MOD_EVEX_0F38C6_REG_1,
    	MOD_EVEX_0F38C6_REG_2, MOD_EVEX_0F38C6_REG_5, MOD_EVEX_0F38C6_REG_6,
    	MOD_EVEX_0F38C7_REG_1, MOD_EVEX_0F38C7_REG_2,  MOD_EVEX_0F38C7_REG_5,
    	MOD_EVEX_0F38C7_REG_6.
    	(PREFIX enum): Add PREFIX_VEX_0F41, PREFIX_VEX_0F42, PREFIX_VEX_0F44,
    	PREFIX_VEX_0F45, PREFIX_VEX_0F46, PREFIX_VEX_0F47, PREFIX_VEX_0F4B,
    	PREFIX_VEX_0F90, PREFIX_VEX_0F91, PREFIX_VEX_0F92, PREFIX_VEX_0F93,
    	PREFIX_VEX_0F98, PREFIX_VEX_0F3A30, PREFIX_VEX_0F3A32,
    	PREFIX_VEX_0F3AF0, PREFIX_EVEX_0F10, PREFIX_EVEX_0F11,
    	PREFIX_EVEX_0F12, PREFIX_EVEX_0F13, PREFIX_EVEX_0F14,
    	PREFIX_EVEX_0F15, PREFIX_EVEX_0F16, PREFIX_EVEX_0F17,
    	PREFIX_EVEX_0F28, PREFIX_EVEX_0F29, PREFIX_EVEX_0F2A,
    	PREFIX_EVEX_0F2B, PREFIX_EVEX_0F2C, PREFIX_EVEX_0F2D,
    	PREFIX_EVEX_0F2E, PREFIX_EVEX_0F2F, PREFIX_EVEX_0F51,
    	PREFIX_EVEX_0F58, PREFIX_EVEX_0F59, PREFIX_EVEX_0F5A,
    	PREFIX_EVEX_0F5B, PREFIX_EVEX_0F5C, PREFIX_EVEX_0F5D,
    	PREFIX_EVEX_0F5E, PREFIX_EVEX_0F5F, PREFIX_EVEX_0F62,
    	PREFIX_EVEX_0F66, PREFIX_EVEX_0F6A, PREFIX_EVEX_0F6C,
    	PREFIX_EVEX_0F6D, PREFIX_EVEX_0F6E, PREFIX_EVEX_0F6F,
    	PREFIX_EVEX_0F70, PREFIX_EVEX_0F72_REG_0, PREFIX_EVEX_0F72_REG_1,
    	PREFIX_EVEX_0F72_REG_2, PREFIX_EVEX_0F72_REG_4,
    	PREFIX_EVEX_0F72_REG_6, PREFIX_EVEX_0F73_REG_2,
    	PREFIX_EVEX_0F73_REG_6, PREFIX_EVEX_0F76, PREFIX_EVEX_0F78,
    	PREFIX_EVEX_0F79, PREFIX_EVEX_0F7A, PREFIX_EVEX_0F7B,
    	PREFIX_EVEX_0F7E, PREFIX_EVEX_0F7F, PREFIX_EVEX_0FC2,
    	PREFIX_EVEX_0FC6, PREFIX_EVEX_0FD2, PREFIX_EVEX_0FD3,
    	PREFIX_EVEX_0FD4, PREFIX_EVEX_0FD6, PREFIX_EVEX_0FDB,
    	PREFIX_EVEX_0FDF, PREFIX_EVEX_0FE2, PREFIX_EVEX_0FE6 PREFIX_EVEX_0FE7,
    	PREFIX_EVEX_0FEB, PREFIX_EVEX_0FEF, PREFIX_EVEX_0FF2,
    	PREFIX_EVEX_0FF3, PREFIX_EVEX_0FF4, PREFIX_EVEX_0FFA, PREFIX_EVEX_0FFB,
    	PREFIX_EVEX_0FFE, PREFIX_EVEX_0F380C, PREFIX_EVEX_0F380D,
    	PREFIX_EVEX_0F3811, PREFIX_EVEX_0F3812, PREFIX_EVEX_0F3813,
    	PREFIX_EVEX_0F3814, PREFIX_EVEX_0F3815, PREFIX_EVEX_0F3816,
    	PREFIX_EVEX_0F3818, PREFIX_EVEX_0F3819, PREFIX_EVEX_0F381A,
    	PREFIX_EVEX_0F381B, PREFIX_EVEX_0F381E, PREFIX_EVEX_0F381F,
    	PREFIX_EVEX_0F3821, PREFIX_EVEX_0F3822, PREFIX_EVEX_0F3823,
    	PREFIX_EVEX_0F3824, PREFIX_EVEX_0F3825, PREFIX_EVEX_0F3827,
    	PREFIX_EVEX_0F3828, PREFIX_EVEX_0F3829, PREFIX_EVEX_0F382A,
    	PREFIX_EVEX_0F382C, PREFIX_EVEX_0F382D, PREFIX_EVEX_0F3831,
    	PREFIX_EVEX_0F3832, PREFIX_EVEX_0F3833, PREFIX_EVEX_0F3834,
    	PREFIX_EVEX_0F3835, PREFIX_EVEX_0F3836, PREFIX_EVEX_0F3837,
    	PREFIX_EVEX_0F3839, PREFIX_EVEX_0F383A, PREFIX_EVEX_0F383B,
    	PREFIX_EVEX_0F383D, PREFIX_EVEX_0F383F, PREFIX_EVEX_0F3840,
    	PREFIX_EVEX_0F3842, PREFIX_EVEX_0F3843, PREFIX_EVEX_0F3844,
    	PREFIX_EVEX_0F3845, PREFIX_EVEX_0F3846, PREFIX_EVEX_0F3847,
    	PREFIX_EVEX_0F384C, PREFIX_EVEX_0F384D, PREFIX_EVEX_0F384E,
    	PREFIX_EVEX_0F384F, PREFIX_EVEX_0F3858, PREFIX_EVEX_0F3859,
    	PREFIX_EVEX_0F385A, PREFIX_EVEX_0F385B, PREFIX_EVEX_0F3864,
    	PREFIX_EVEX_0F3865, PREFIX_EVEX_0F3876, PREFIX_EVEX_0F3877,
    	PREFIX_EVEX_0F387C, PREFIX_EVEX_0F387E, PREFIX_EVEX_0F387F,
    	PREFIX_EVEX_0F3888, PREFIX_EVEX_0F3889, PREFIX_EVEX_0F388A,
    	PREFIX_EVEX_0F388B, PREFIX_EVEX_0F3890, PREFIX_EVEX_0F3891,
    	PREFIX_EVEX_0F3892, PREFIX_EVEX_0F3893, PREFIX_EVEX_0F3896,
    	PREFIX_EVEX_0F3897, PREFIX_EVEX_0F3898, PREFIX_EVEX_0F3899,
    	PREFIX_EVEX_0F389A, PREFIX_EVEX_0F389B, PREFIX_EVEX_0F389C,
    	PREFIX_EVEX_0F389D, PREFIX_EVEX_0F389E, PREFIX_EVEX_0F389F,
    	PREFIX_EVEX_0F38A0, PREFIX_EVEX_0F38A1, PREFIX_EVEX_0F38A2,
    	PREFIX_EVEX_0F38A3, PREFIX_EVEX_0F38A6, PREFIX_EVEX_0F38A7,
    	PREFIX_EVEX_0F38A8, PREFIX_EVEX_0F38A9, PREFIX_EVEX_0F38AA,
    	PREFIX_EVEX_0F38AB, PREFIX_EVEX_0F38AC, PREFIX_EVEX_0F38AD,
    	PREFIX_EVEX_0F38AE, PREFIX_EVEX_0F38AF, PREFIX_EVEX_0F38B6,
    	PREFIX_EVEX_0F38B7, PREFIX_EVEX_0F38B8, PREFIX_EVEX_0F38B9,
    	PREFIX_EVEX_0F38BA, PREFIX_EVEX_0F38BB, PREFIX_EVEX_0F38BC,
    	PREFIX_EVEX_0F38BD, PREFIX_EVEX_0F38BE, PREFIX_EVEX_0F38BF,
    	PREFIX_EVEX_0F38C4, PREFIX_EVEX_0F38C6_REG_1,
    	PREFIX_EVEX_0F38C6_REG_2, PREFIX_EVEX_0F38C6_REG_5,
    	PREFIX_EVEX_0F38C6_REG_6, PREFIX_EVEX_0F38C7_REG_1,
    	PREFIX_EVEX_0F38C7_REG_2, PREFIX_EVEX_0F38C7_REG_5,
    	PREFIX_EVEX_0F38C7_REG_6, PREFIX_EVEX_0F38C8, PREFIX_EVEX_0F38CA,
    	PREFIX_EVEX_0F38CB, PREFIX_EVEX_0F38CC, PREFIX_EVEX_0F38CD,
    	PREFIX_EVEX_0F3A00,  PREFIX_EVEX_0F3A01, PREFIX_EVEX_0F3A03,
    	PREFIX_EVEX_0F3A04, PREFIX_EVEX_0F3A05, PREFIX_EVEX_0F3A08,
    	PREFIX_EVEX_0F3A09, PREFIX_EVEX_0F3A0A, PREFIX_EVEX_0F3A0B,
    	PREFIX_EVEX_0F3A17, PREFIX_EVEX_0F3A18, PREFIX_EVEX_0F3A19,
    	PREFIX_EVEX_0F3A1A, PREFIX_EVEX_0F3A1B, PREFIX_EVEX_0F3A1D,
    	PREFIX_EVEX_0F3A1E, PREFIX_EVEX_0F3A1F, PREFIX_EVEX_0F3A21,
    	PREFIX_EVEX_0F3A23, PREFIX_EVEX_0F3A25, PREFIX_EVEX_0F3A26,
    	PREFIX_EVEX_0F3A27, PREFIX_EVEX_0F3A38, PREFIX_EVEX_0F3A39,
    	PREFIX_EVEX_0F3A3A, PREFIX_EVEX_0F3A3B, PREFIX_EVEX_0F3A3E,
    	PREFIX_EVEX_0F3A3F, PREFIX_EVEX_0F3A43, PREFIX_EVEX_0F3A54,
    	PREFIX_EVEX_0F3A55.
    	(VEX_LEN enum): Add VEX_LEN_0F41_P_0, VEX_LEN_0F42_P_0, VEX_LEN_0F44_P_0,
    	VEX_LEN_0F45_P_0, VEX_LEN_0F46_P_0, VEX_LEN_0F47_P_0,
    	VEX_LEN_0F4B_P_2, VEX_LEN_0F90_P_0, VEX_LEN_0F91_P_0,
    	VEX_LEN_0F92_P_0, VEX_LEN_0F93_P_0, VEX_LEN_0F98_P_0,
    	VEX_LEN_0F3A30_P_2, VEX_LEN_0F3A32_P_2, VEX_W_0F41_P_0_LEN_1,
    	VEX_W_0F42_P_0_LEN_1, VEX_W_0F44_P_0_LEN_0, VEX_W_0F45_P_0_LEN_1,
    	VEX_W_0F46_P_0_LEN_1, VEX_W_0F47_P_0_LEN_1, VEX_W_0F4B_P_2_LEN_1,
    	VEX_W_0F90_P_0_LEN_0, VEX_W_0F91_P_0_LEN_0, VEX_W_0F92_P_0_LEN_0,
    	VEX_W_0F93_P_0_LEN_0, VEX_W_0F98_P_0_LEN_0, VEX_W_0F3A30_P_2_LEN_0,
    	VEX_W_0F3A32_P_2_LEN_0.
    	(VEX_W enum): Add EVEX_W_0F10_P_0, EVEX_W_0F10_P_1_M_0,
    	EVEX_W_0F10_P_1_M_1, EVEX_W_0F10_P_2, EVEX_W_0F10_P_3_M_0,
    	EVEX_W_0F10_P_3_M_1, EVEX_W_0F11_P_0, EVEX_W_0F11_P_1_M_0,
    	EVEX_W_0F11_P_1_M_1, EVEX_W_0F11_P_2, EVEX_W_0F11_P_3_M_0,
    	EVEX_W_0F11_P_3_M_1, EVEX_W_0F12_P_0_M_0, EVEX_W_0F12_P_0_M_1,
    	EVEX_W_0F12_P_1, EVEX_W_0F12_P_2, EVEX_W_0F12_P_3, EVEX_W_0F13_P_0,
    	EVEX_W_0F13_P_2, EVEX_W_0F14_P_0, EVEX_W_0F14_P_2, EVEX_W_0F15_P_0,
    	EVEX_W_0F15_P_2, EVEX_W_0F16_P_0_M_0, EVEX_W_0F16_P_0_M_1,
    	EVEX_W_0F16_P_1, EVEX_W_0F16_P_2, EVEX_W_0F17_P_0, EVEX_W_0F17_P_2,
    	EVEX_W_0F28_P_0, EVEX_W_0F28_P_2, EVEX_W_0F29_P_0, EVEX_W_0F29_P_2,
    	EVEX_W_0F2A_P_1, EVEX_W_0F2A_P_3, EVEX_W_0F2B_P_0, EVEX_W_0F2B_P_2,
    	EVEX_W_0F2E_P_0, EVEX_W_0F2E_P_2, EVEX_W_0F2F_P_0, EVEX_W_0F2F_P_2,
    	EVEX_W_0F51_P_0, EVEX_W_0F51_P_1, EVEX_W_0F51_P_2, EVEX_W_0F51_P_3,
    	EVEX_W_0F58_P_0, EVEX_W_0F58_P_1, EVEX_W_0F58_P_2, EVEX_W_0F58_P_3,
    	EVEX_W_0F59_P_0, EVEX_W_0F59_P_1, EVEX_W_0F59_P_2, EVEX_W_0F59_P_3,
    	EVEX_W_0F5A_P_0, EVEX_W_0F5A_P_1, EVEX_W_0F5A_P_2, EVEX_W_0F5A_P_3,
    	EVEX_W_0F5B_P_0, EVEX_W_0F5B_P_1, EVEX_W_0F5B_P_2, EVEX_W_0F5C_P_0,
    	EVEX_W_0F5C_P_1, EVEX_W_0F5C_P_2, EVEX_W_0F5C_P_3, EVEX_W_0F5D_P_0,
    	EVEX_W_0F5D_P_1, EVEX_W_0F5D_P_2, EVEX_W_0F5D_P_3, EVEX_W_0F5E_P_0,
    	EVEX_W_0F5E_P_1, EVEX_W_0F5E_P_2, EVEX_W_0F5E_P_3, EVEX_W_0F5F_P_0,
    	EVEX_W_0F5F_P_1, EVEX_W_0F5F_P_2, EVEX_W_0F5F_P_3, EVEX_W_0F62_P_2,
    	EVEX_W_0F66_P_2, EVEX_W_0F6A_P_2, EVEX_W_0F6C_P_2, EVEX_W_0F6D_P_2,
    	EVEX_W_0F6E_P_2, EVEX_W_0F6F_P_1, EVEX_W_0F6F_P_2, EVEX_W_0F70_P_2,
    	EVEX_W_0F72_R_2_P_2, EVEX_W_0F72_R_6_P_2, EVEX_W_0F73_R_2_P_2,
    	EVEX_W_0F73_R_6_P_2, EVEX_W_0F76_P_2, EVEX_W_0F78_P_0,
    	EVEX_W_0F79_P_0, EVEX_W_0F7A_P_1, EVEX_W_0F7A_P_3, EVEX_W_0F7B_P_1,
    	EVEX_W_0F7B_P_3, EVEX_W_0F7E_P_1, EVEX_W_0F7E_P_2, EVEX_W_0F7F_P_1,
    	EVEX_W_0F7F_P_2, EVEX_W_0FC2_P_0, EVEX_W_0FC2_P_1, EVEX_W_0FC2_P_2,
    	EVEX_W_0FC2_P_3, EVEX_W_0FC6_P_0, EVEX_W_0FC6_P_2, EVEX_W_0FD2_P_2,
    	EVEX_W_0FD3_P_2, EVEX_W_0FD4_P_2, EVEX_W_0FD6_P_2, EVEX_W_0FE6_P_1,
    	EVEX_W_0FE6_P_2, EVEX_W_0FE6_P_3, EVEX_W_0FE7_P_2, EVEX_W_0FF2_P_2,
    	EVEX_W_0FF3_P_2, EVEX_W_0FF4_P_2, EVEX_W_0FFA_P_2, EVEX_W_0FFB_P_2,
    	EVEX_W_0FFE_P_2, EVEX_W_0F380C_P_2, EVEX_W_0F380D_P_2,
    	EVEX_W_0F3811_P_1, EVEX_W_0F3812_P_1, EVEX_W_0F3813_P_1,
    	EVEX_W_0F3813_P_2, EVEX_W_0F3814_P_1, EVEX_W_0F3815_P_1,
    	EVEX_W_0F3818_P_2, EVEX_W_0F3819_P_2, EVEX_W_0F381A_P_2,
    	EVEX_W_0F381B_P_2, EVEX_W_0F381E_P_2, EVEX_W_0F381F_P_2,
    	EVEX_W_0F3821_P_1, EVEX_W_0F3822_P_1, EVEX_W_0F3823_P_1,
    	EVEX_W_0F3824_P_1, EVEX_W_0F3825_P_1, EVEX_W_0F3825_P_2,
    	EVEX_W_0F3828_P_2, EVEX_W_0F3829_P_2, EVEX_W_0F382A_P_1,
    	EVEX_W_0F382A_P_2, EVEX_W_0F3831_P_1, EVEX_W_0F3832_P_1,
    	EVEX_W_0F3833_P_1, EVEX_W_0F3834_P_1, EVEX_W_0F3835_P_1,
    	EVEX_W_0F3835_P_2, EVEX_W_0F3837_P_2, EVEX_W_0F383A_P_1,
    	EVEX_W_0F3840_P_2, EVEX_W_0F3858_P_2, EVEX_W_0F3859_P_2,
    	EVEX_W_0F385A_P_2, EVEX_W_0F385B_P_2, EVEX_W_0F3891_P_2,
    	EVEX_W_0F3893_P_2, EVEX_W_0F38A1_P_2, EVEX_W_0F38A3_P_2,
    	EVEX_W_0F38C7_R_1_P_2, EVEX_W_0F38C7_R_2_P_2, EVEX_W_0F38C7_R_5_P_2,
    	EVEX_W_0F38C7_R_6_P_2, EVEX_W_0F3A00_P_2, EVEX_W_0F3A01_P_2,
    	EVEX_W_0F3A04_P_2, EVEX_W_0F3A05_P_2, EVEX_W_0F3A08_P_2,
    	EVEX_W_0F3A09_P_2, EVEX_W_0F3A0A_P_2, EVEX_W_0F3A0B_P_2,
    	EVEX_W_0F3A18_P_2, EVEX_W_0F3A19_P_2, EVEX_W_0F3A1A_P_2,
    	EVEX_W_0F3A1B_P_2, EVEX_W_0F3A1D_P_2, EVEX_W_0F3A21_P_2,
    	EVEX_W_0F3A23_P_2, EVEX_W_0F3A38_P_2, EVEX_W_0F3A39_P_2,
    	EVEX_W_0F3A3A_P_2, EVEX_W_0F3A3B_P_2, EVEX_W_0F3A43_P_2.
    	(struct vex): Add fields evex, r, v, mask_register_specifier,
    	zeroing, ll, b.
    	(intel_names_xmm): Add upper 16 registers.
    	(att_names_xmm): Ditto.
    	(intel_names_ymm): Ditto.
    	(att_names_ymm): Ditto.
    	(names_zmm): New.
    	(intel_names_zmm): Ditto.
    	(att_names_zmm): Ditto.
    	(names_mask): Ditto.
    	(intel_names_mask): Ditto.
    	(att_names_mask): Ditto.
    	(names_rounding): Ditto.
    	(names_broadcast): Ditto.
    	(x86_64_table): Add escape to evex-table.
    	(reg_table): Include reg_table evex-entries from
    	i386-dis-evex.h.  Fix prefetchwt1 instruction.
    	(prefix_table): Add entries for new instructions.
    	(vex_table): Ditto.
    	(vex_len_table): Ditto.
    	(vex_w_table): Ditto.
    	(mod_table): Ditto.
    	(get_valid_dis386): Properly handle new instructions.
    	(print_insn): Handle zmm and mask registers, print mask operand.
    	(intel_operand_size): Support EVEX, new modes and sizes.
    	(OP_E_register): Handle new modes.
    	(OP_E_memory): Ditto.
    	(OP_G): Ditto.
    	(OP_XMM): Ditto.
    	(OP_EX): Ditto.
    	(OP_VEX): Ditto.
    	* i386-gen.c (cpu_flag_init): Update CPU_ANY_SSE_FLAGS and
    	CPU_ANY_AVX_FLAGS.  Add CPU_AVX512F_FLAGS, CPU_AVX512CD_FLAGS,
    	CPU_AVX512ER_FLAGS and CPU_AVX512PF_FLAGS.
    	(cpu_flags): Add CpuAVX512F, CpuAVX512CD, CpuAVX512ER,
    	CpuAVX512PF and CpuVREX.
    	(operand_type_init): Add OPERAND_TYPE_REGZMM,
    	OPERAND_TYPE_REGMASK and OPERAND_TYPE_VEC_DISP8.
    	(opcode_modifiers): Add EVex, Masking, VecESize, Broadcast,
    	StaticRounding, SAE, Disp8MemShift, NoDefMask.
    	(operand_types): Add RegZMM, RegMask, Vec_Disp8, Zmmword.
    	* i386-init.h: Regenerate.
    	* i386-opc.h (CpuAVX512F): New.
    	(CpuAVX512CD): New.
    	(CpuAVX512ER): New.
    	(CpuAVX512PF): New.
    	(CpuVREX): New.
    	(i386_cpu_flags): Add cpuavx512f, cpuavx512cd, cpuavx512er,
    	cpuavx512pf and cpuvrex fields.
    	(VecSIB): Add VecSIB512.
    	(EVex): New.
    	(Masking): New.
    	(VecESize): New.
    	(Broadcast): New.
    	(StaticRounding): New.
    	(SAE): New.
    	(Disp8MemShift): New.
    	(NoDefMask): New.
    	(i386_opcode_modifier): Add evex, masking, vecesize, broadcast,
    	staticrounding, sae, disp8memshift and nodefmask.
    	(RegZMM): New.
    	(Zmmword): Ditto.
    	(Vec_Disp8): Ditto.
    	(i386_operand_type): Add regzmm, regmask, zmmword and vec_disp8
    	fields.
    	(RegVRex): New.
    	* i386-opc.tbl: Add AVX512 instructions.
    	* i386-reg.tbl: Add 16 upper XMM and YMM registers, 32 new ZMM
    	registers, mask registers.
    	* i386-tbl.h: Regenerate.

commit 422c9c79548cf14cc9f8ab83c40834be811e14b5
Author: Pedro Alves <palves@redhat.com>
Date:   Fri Jul 26 11:15:44 2013 +0000

    GDB kills itself instead of interrupting inferior
    
    When GDB is run with IO redirected to a pipe, the 'interrupt' command
    causes it to kill its own process group instead of the inferior's.
    The problem manifests itself in async mode, native debugging:
    
        $ cat | gdb <file>
        (gdb) set target-async on
        (gdb) run &
        (gdb) interrupt
        A debugging session is active.
        Inferior 1 [process 20584] will be killed.
        Quit anyway? (y or n) [answered Y; input not from terminal]
    
    In this case, GDB tells that its stdin isn't a tty and doesn't save
    the inferior's process group in
    inflow.c:terminal_init_inferior_with_pgrp.  The 'interrupt' command
    tries to 'kill' the inferior's process group in
    `inf-ptrace.c:inf_ptrace_stop`, but since that wasn't saved in the
    first place, GDB kills process group 0, meaning, its own process
    group.
    
    When GDB is used from a frontend, that means killing its own process
    group including the frontend and possibly the X session.  This was
    originally seen with SublimeGDB:
      https://github.com/quarnster/SublimeGDB/issues/29.
    
    The patch makes GDB save the inferior pgid regardless of having a
    terminal, as pgid is used not only to reset foreground process group,
    but also to interrupt the inferior process.  It also adds a regression
    test.  Luckily, we can emulate not having a terminal with "set
    interactive-mode off", avoiding the need of special magic to spawn gdb
    with a pipe.
    
    Tested on x86_64 Fedora 17.
    
    gdb/
    2013-07-26  Cyril Nikolaev  <cyril@nichtverstehen.de>
    
    	* inflow.c (terminal_init_inferior_with_pgrp): Save inferior
    	process group regardless of having tty on stdin.
    
    gdb/testsuite/
    2013-07-26  Pedro Alves  <palves@redhat.com>
    
    	* gdb.base/interrupt-noterm.c, gdb.base/interrupt-noterm.exp: New
    	files.

commit c999e86c92ac6cc861e84682509f1919066f59a3
Author: Alan Modra <amodra@bigpond.net.au>
Date:   Fri Jul 26 00:00:04 2013 +0000

    daily update

commit 090ff55a4c23c66a56a58dc5cdc2133254926364
Author: Doug Evans <dje@google.com>
Date:   Thu Jul 25 20:53:06 2013 +0000

    	* linux-fork.h (detach_fork): Delete.

commit 573f1691574fc5fb11cf8cef95364a44049051f2
Author: Richard Sandiford <rsandifo@nildram.co.uk>
Date:   Thu Jul 25 19:11:39 2013 +0000

    opcodes/
    2013-07-25  Aaro Koskinen  <aaro.koskinen@iki.fi>
    
    	PR gas/15220
    	* mips-opc.c (mips_builtin_opcodes): Fix wrong opcodes for
    	Loongson 2F madd.ps, msub.ps, nmadd.ps and nmsub.ps.
    
    gas/testsuite/
    	* gas/mips/loongson-2f.d: Fix expected output for madd.ps,
    	msub.ps, nmadd.ps and nmsub.ps.

commit e5d17b96714b2848b3e1b251f368788dba9bd319
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Jul 25 16:16:35 2013 +0000

    Support Intel SHA
    
    gas/
    
    2013-07-25  Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
    
    	* config/tc-i386.c (cpu_arch): Add .sha.
    	* doc/c-i386.texi: Document sha/.sha.
    
    gas/testsuite/
    
    2013-07-25  Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
    
    	* gas/i386/sha.d: New.
    	* gas/i386/sha.s: New.
    	* gas/i386/x86-64-sha.d: New.
    	* gas/i386/x86-64-sha.s: New.
    	* gas/i386/i386.exp: Run new SHA tests.
    
    opcodes/
    
    2013-07-25  Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
    
    	* i386-dis.c (PREFIX enum): Add PREFIX_0F38C8, PREFIX_0F38C9,
    	PREFIX_0F38CA, PREFIX_0F38CB, PREFIX_0F38CC, PREFIX_0F38CD,
    	PREFIX_0F3ACC.
    	(prefix_table): Updated.
    	(three_byte_table): Likewise.
    	* i386-gen.c (cpu_flag_init): Add CPU_SHA_FLAGS.
    	(cpu_flags): Add CpuSHA.
    	(i386_cpu_flags): Add cpusha.
    	* i386-init.h: Regenerate.
    	* i386-opc.h (CpuSHA): New.
    	(CpuUnused): Restored.
    	(i386_cpu_flags): Add cpusha.
    	* i386-opc.tbl: Add SHA instructions.
    	* i386-tbl.h: Regenerate.

commit f1830d914a63cd2dc4bbd65e2a9a4c07077a62ad
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Jul 25 16:09:09 2013 +0000

    Correct MPX ChangeLog entries

commit 7a8caec96a43bb17be1650668f43f4cc1edc5bfa
Author: Alan Modra <amodra@bigpond.net.au>
Date:   Thu Jul 25 15:18:26 2013 +0000

    	* elf64-ppc.c (struct ppc64_elf_obj_tdata): Replace opd_relocs
    	with a union.
    	(opd_entry_value): Cache .opd section contents.
    	(ppc64_elf_relocate_section): Adjust.

commit 2fe42e82135c2d1cea50ee7126283fa5cc723d52
Author: Tom Tromey <tromey@redhat.com>
Date:   Thu Jul 25 14:34:50 2013 +0000

    remove pop_target
    
    This patch fixes the target double-close problem (PR remote/15266),
    and in the process removes pop_target entire (PR remote/15256).
    
    The first issue is that pop_target calls target_close.  However, it
    then calls unpush_target, which also calls target_close.  This means
    targets must be able to be closed twice.  Not only is this strange,
    but it also directly contradicts the contract of to_xclose targets.
    (We currently have just a single such target, and it is never pushed;
    but I plan to add more, and so this latent bug is triggered.)
    
    The second issue is that it seems to me that calling pop_target is
    often unsafe.  This is what cropped up in 15256, where the remote
    target assumed that it could pop_target -- but there was another
    target higher on the stack, leading to confusion.
    
    But, it is always just as easy to call unpush_target as it is to call
    pop_target; and it is also safer.  So, removing pop_target seemed like
    an improvement.
    
    Finally, this adds an assertion to target_close to ensure that no
    currently-pushed target can be closed.
    
    Built and regtested on x86-64 Fedora 18; both natively and using the
    native-gdbserver board file.
    
    	PR remote/15256, PR remote/15266:
    	* bfd-target.c (target_bfd_reopen): Initialize to_magic.
    	* monitor.c (monitor_detach): Use unpush_target.
    	* remote-m32r-sdi.c (m32r_detach): Use unpush_target.
    	* remote-mips.c (mips_detach): Use unpush_target.  Don't
    	call mips_close.
    	* remote-sim.c (gdbsim_detach): Use unpush_target.
    	* target.c (pop_target): Remove.
    	(pop_all_targets_above): Don't call target_close.
    	(target_close): Assert that the target is unpushed.
    	* target.h (pop_target): Don't declare.
    	* tracepoint.c (tfile_open): Use unpush_target.

commit 56f4fed4c8ec7ea80656cecac20f5077f08a5854
Author: Tom Tromey <tromey@redhat.com>
Date:   Thu Jul 25 14:28:14 2013 +0000

    don't call add_target for thread_db_ops
    
    Right now, "help target" will include this line:
    
        target multi-thread -- Threads and pthreads support
    
    However, it doesn't make sense to invoke "target multi-thread".
    
    This patch fixes the problem by not registering the multi-thread
    target.  add_target does some needed initialization of the target_ops,
    so I broke this out into a new function.
    
    It isn't clear to me whether this patch requires a test case or not.
    I'm not sure whether there are other unregistered targets; but if
    there are, it seems unlikely that we test for their absence from the
    help.
    
    Built and regtested on x86-64 Fedora 18.
    
    	* linux-thread-db.c (init_thread_db_ops): Call
    	complete_target_initialization.
    	(_initialize_thread_db): Don't call add_target.
    	* target.c (complete_target_initialization): New function.
    	(add_target_with_completer): Call it.
    	* target.h (complete_target_initialization): Declare.

commit e73fd3d4b8b7c697660398b913e3898044e1fe5f
Author: Mark Kettenis <kettenis@gnu.org>
Date:   Thu Jul 25 12:10:43 2013 +0000

    2013-07-25  Mark Kettenis  <kettenis@gnu.org>
    
            * hppa-tdep.h (enum hppa_regnum): Add members for all space registers.
            * hppaobsd-tdep.c (HPPAOBSD_SIZEOF_GREGS): Add comment.
            (HPPANBSD_SIZEOF_GREGS): New define.
            (hppaobsd_supply_gregset): Handle additional registers.
            * hppabsd-nat.c (hppabsd_gregset_supplies_p): Adjust to indicate
            we provide more registers now.
            (hppabsd_supply_gregset): Supply additional registers.
            (hppabsd_collect_gregset): Collect additional registers.

commit cf1756e7bf9078ebe313bc80f38e980d0bd5f006
Author: Mark Kettenis <kettenis@gnu.org>
Date:   Thu Jul 25 12:05:01 2013 +0000

    2013-07-25  Mark Kettenis  <kettenis@gnu.org>
    
            * hppabsd-tdep.c: Include "dwarf2-frame.h".
            (hppabsd_dwarf2_frame_init_reg): New function.
            (hppabsd_init_abi): Hook in the DWARF CFI frame unwinder.

commit ee74adaa47e1e74228bc751bedac2fb1016feaf1
Author: aburgess <aburgess>
Date:   Thu Jul 25 10:39:38 2013 +0000

    Resue 'z' formatter from mi register display code.
    
      http://sourceware.org/ml/gdb-patches/2013-07/msg00236.html
    
    gdb/ChangeLog
    
            * mi/mi-main.c (output_register): Make MI 'r' format use standard
            'z' format code.  Remove error for optimized out values, standard
            code will handle these fine.
    
    gdb/testsuite/ChangeLog
    
            * gdb.mi/mi-reg-undefined.exp: New file.
            * gdb.mi/mi-reg-undefined.c: Likewise.
            * gdb.mi/mi-reg-undefined.S: Likewise.

commit 7dd06bddcb8b628be4e3c6443a7e419fd59c5a0e
Author: aburgess <aburgess>
Date:   Thu Jul 25 10:16:07 2013 +0000

    Add new 'z' format for print command.
    
      http://sourceware.org/ml/gdb-patches/2013-07/msg00235.html
    
    gdb/ChangeLog
    
            * NEWS: Mention new 'z' formatter.
            * printcmd.c (print_scalar_formatted): Add new 'z' formatter.
            (_initialize_printcmd): Mention 'z' formatter in help text of the
            'x' command.
    
    gdb/doc/ChangeLog
    
            * gdb.texinfo (Output Formats): Mention the new 'z' formatter.
    
    gdb/testsuite/ChangeLog
    
            * gdb.base/printcmds.exp (test_print_int_arrays): Add tests for x,
            z, o, and t output formats.
            * gdb.base/display.exp: Use 'k' as an undefined format now that
            'z' is defined.

commit 1d9a1fa39f1efe77c9399b8c596e5b572d325bd8
Author: Alan Modra <amodra@bigpond.net.au>
Date:   Thu Jul 25 00:14:11 2013 +0000

    	PR ld/15762
    	PR ld/12761
    	* elflink.c (elf_link_add_object_symbols): Correct test in
    	last patch.  Remove unnecessary code.

commit 8da18fc40f26ba6a26e0e8fc2c76408155d5991b
Author: Alan Modra <amodra@bigpond.net.au>
Date:   Thu Jul 25 00:00:04 2013 +0000

    daily update

commit 86bc4461f808a26927de34f7b7161270ae2b2395
Author: Maciej W. Rozycki <macro@linux-mips.org>
Date:   Wed Jul 24 22:23:12 2013 +0000

    	* mips-tdep.c (micromips_deal_with_atomic_sequence): Correct
    	formatting.

commit 13e5055cac399d8a97c6f1a80836061fd58e7393
Author: Doug Evans <dje@google.com>
Date:   Wed Jul 24 21:59:30 2013 +0000

    	* boards/native-stdio-gdbserver.exp (${board}_build_remote_cmd): Pass
    	"--" to switch.

commit 99f4358f8203da67f08fbcdd84f984709a50c68b
Author: sergiodj <sergiodj>
Date:   Wed Jul 24 19:50:31 2013 +0000

    2013-07-24  Sergio Durigan Junior  <sergiodj@redhat.com>
    
    	* breakpoint.c (create_longjmp_master_breakpoint): Check if probe
    	interface can evaluate arguments.  Fallback to the old mode if it
    	cannot.
    	(create_exception_master_breakpoint): Likewise.
    	* elfread.c (elf_can_evaluate_probe_arguments): New function.
    	(struct sym_probe_fns elf_probe_fns): Export function above to the
    	probe interface.
    	* probe.c (can_evaluate_probe_arguments): New function.
    	* probe.h (struct probe_ops) <can_evaluate_probe_arguments>: New
    	function pointer.
    	(can_evaluate_probe_arguments): New function prototype.
    	* solib-svr4.c (svr4_create_solib_event_breakpoints): Check if
    	probe interface can evaluate arguments.  Fallback to the old mode
    	if it cannot.
    	* stap-probe.c (stap_get_probe_argument_count): Check if probe
    	interface can evaluate arguments.  Warning the user if it cannot.
    	(stap_can_evaluate_probe_arguments): New function.
    	(struct probe_ops stap_probe_ops): Export function above to the
    	probe interface.
    	* symfile.h (struct sym_probe_fns) <can_evaluate_probe_arguments>:
    	New function pointer.

commit 0387eeea5b1bd190f27e85448b9a8a93e2bd438a
Author: Luis Machado <luisgpm@br.ibm.com>
Date:   Wed Jul 24 16:20:11 2013 +0000

    	gdb/
    	* Makefile.in (SFILES): Add common/target-common.c.
    	Add common/target-common.h to headers.
    	(COMMON_OBS): Add target-common.o.
    	(target-common.o): New target.
    	* linux-nat.h (resume_kind): Move to common/target-common.h.
    	* target.c (target_waitstatus_to_string): Move to
    	common/target-common.c.
    	* target.h: Include target-common.h.
    	(target_waitkind): Move to common/target-common.h.
    	(target_waitstatus): Likewise.
    	(TARGET_WNOHANG): Likewise.
    	* common/target-common.c: New file.
    	* common/target-common.h: New file.
    
    	gdb/gdbserver/
    	* Makefile.in (SFILES): /common/target-common.c.
    	(OBS): Add target-common.o.
    	(server_h): Add $(srcdir)/../common/target-common.h.
    	(target-common.o): New target.
    	* server.c (queue_stop_reply_callback): Free
    	status string after use.
    	* target.c (target_waitstatus_to_string): Remove.
    	* target.h: Include target-common.h.
    	(resume_kind): Likewise.
    	(target_waitkind): Likewise.
    	(target_waitstatus): Likewise.
    	(TARGET_WNOHANG): Likewise.

commit aaff6f779cacd457a586a620f36999b8c5de937f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 24 15:47:25 2013 +0000

    Support Intel MPX
    
    gas/
    
    2013-07-24  Anna Tikhonova  <anna.tikhonova@intel.com>
    	    Kirill Yukhin  <kirill.yukhin@intel.com>
    	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
    
    	* config/tc-i386.c (BND_PREFIX): New.
    	(struct _i386_insn): Add new field bnd_prefix.
    	(add_bnd_prefix): New.
    	(cpu_arch): Add MPX.
    	(i386_operand_type): Add regbnd.
    	(md_assemble): Handle BND prefixes.
    	(parse_insn): Likewise.
    	(output_branch): Likewise.
    	(output_jump): Likewise.
    	(build_modrm_byte): Handle regbnd.
    	(OPTION_MADD_BND_PREFIX): New.
    	(md_longopts): Add entry for 'madd-bnd-prefix'.
    	(md_parse_option): Handle madd-bnd-prefix option.
    	(md_show_usage): Add description for madd-bnd-prefix
    	option.
    	* doc/c-i386.texi: Document mpx/.mpx and -madd-bnd-prefix.
    
    gas/testsuite/
    
    2013-07-24  Anna Tikhonova  <anna.tikhonova@intel.com>
    	    Kirill Yukhin  <kirill.yukhin@intel.com>
    	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
    
    	* gas/i386/mpx-add-bnd-prefix.s: New.
    	* gas/i386/mpx-add-bnd-prefix.d: New.
    	* gas/i386/mpx-inval-1.l: New.
    	* gas/i386/mpx-inval-1.s: New.
    	* gas/i386/mpx.d: New.
    	* gas/i386/mpx.s: New.
    	* gas/i386/x86-64-mpx-add-bnd-prefix.d: New.
    	* gas/i386/x86-64-mpx-add-bnd-prefix.s: New.
    	* gas/i386/x86-64-mpx-addr32.d: New.
    	* gas/i386/x86-64-mpx-addr32.s: New.
    	* gas/i386/x86-64-mpx-inval-1.l: New.
    	* gas/i386/x86-64-mpx-inval-1.s: New.
    	* gas/i386/x86-64-mpx-inval-2.l: New.
    	* gas/i386/x86-64-mpx-inval-2.s: New.
    	* gas/i386/x86-64-mpx.d: New.
    	* gas/i386/x86-64-mpx.s: New.
    	* gas/i386/nops.d: Adjust to MPX changes.
    	* gas/i386/nops.s: Likewise.
    	* gas/i386/x86-64-nops.d: Likewise.
    	* gas/i386/x86-64-nops.s: Likewise.
    	* gas/i386/ilp32/x86-64-nops.d: Likewise.
    	* gas/i386/i386.exp: Run new MPX tests.
    
    include/opcode/
    
    2013-07-24  Anna Tikhonova  <anna.tikhonova@intel.com>
    	    Kirill Yukhin  <kirill.yukhin@intel.com>
    	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
    
    	* i386.h (BND_PREFIX_OPCODE): New.
    
    opcodes/
    
    2013-07-24  Anna Tikhonova  <anna.tikhonova@intel.com>
    	    Kirill Yukhin  <kirill.yukhin@intel.com>
    	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
    
    	* i386-dis.c (BND_Fixup): New.
    	(Ebnd): New.
    	(Ev_bnd): New.
    	(Gbnd): New.
    	(BND): New.
    	(v_bnd_mode): New.
    	(bnd_mode): New.
    	(MOD enum): Add new entries.
    	(PREFIX enum): Likewise.
    	(dis tables): Replace XX with BND for near branch and call
    	instructions.
    	(prefix_table): Add new entries.
    	(mod_table): Likewise.
    	(names_bnd): New.
    	(intel_names_bnd): New.
    	(att_names_bnd): New.
    	(BND_PREFIX): New.
    	(prefix_name): Handle BND_PREFIX.
    	(print_insn): Initialize names_bnd.
    	(intel_operand_size): Handle new modes.
    	(OP_E_register): Likewise.
    	(OP_E_memory): Likewise.
    	(OP_G): Likewise.
    	* i386-gen.c (cpu_flag_init): Add CpuMPX.
    	(cpu_flags): Add CpuMPX.
    	(operand_type_init): Add RegBND.
    	(opcode_modifiers): Add BNDPrefixOk.
    	(operand_types): Add RegBND.
    	* i386-init.h: Regenerate.
    	* i386-opc.h (CpuMPX): New.
    	(CpuUnused): Comment out.
    	(i386_cpu_flags): Add cpumpx.
    	(BNDPrefixOk): New.
    	(i386_opcode_modifier): Add bndprefixok.
    	(RegBND): New.
    	(i386_operand_type): Add regbnd.
    	* i386-opc.tbl: Add BNDPrefixOk to near jumps, calls and rets.
    	Add MPX instructions and bnd prefix.
    	* i386-reg.tbl: Add bnd0-bnd3 registers.
    	* i386-tbl.h: Regenerate.

commit e7a0f8a1bd81978f27d910a9900e9b77d899b822
Author: Doug Evans <dje@google.com>
Date:   Wed Jul 24 15:45:32 2013 +0000

    	* dwarf2read.c (lookup_dwo_cutu): Change missing DWO complaint to
    	a warning.

commit f2a6f5a569675c00c27c49626df5040238e59ed0
Author: Tristan Gingold <gingold@adacore.com>
Date:   Wed Jul 24 14:12:40 2013 +0000

    bfd/
    2013-07-24  Tristan Gingold  <gingold@adacore.com>
    
            * coff-rs6000.c (xcoff_howto_table): Fix masks and pc_relative for
            R_RBR.  Add numbers in comments.
            (_bfd_xcoff_reloc_type_lookup): Handle BFD_RELOC_PPC_B16.
            * coff64-rs6000.c: Likewise.
    
    gas/
    2013-07-24  Tristan Gingold  <gingold@adacore.com>
    
            * config/tc-ppc.c (md_apply_fix): Adjust BFD_RELOC_PPC_B16 on
            xcoff targets.
    
    gas/testsuite/
    2013-07-24  Tristan Gingold  <gingold@adacore.com>
    
            * gas/ppc/test2xcoff32.s, gas/ppc/test2xcoff32.d: New files
            * gas/ppc/ppc.exp: Add new test.
            * gas/ppc/xcoff-br16-1.s, gas/ppc/xcoff-br16-1.d,
            gas/ppc/xcoff-br16-2.s, gas/ppc/xcoff-br16-2.d: New files
            * gas/ppc/aix.exp: Add new tests.

commit e6b1de9c41ca1eb6acf208c5b6cf07020286b02d
Author: qiyao <qiyao>
Date:   Wed Jul 24 09:17:14 2013 +0000

    gdb/testsuite/
    
    	* gdb.mi/mi-var-cmd.exp: If host is remote, use ${testfile} on
    	host.
    	* gdb.mi/mi-basics.exp (test_exec_and_symbol_mi_operatons):
    	Likewise.  If host is remote, copy ${binfile} to host.

commit 21ba3ea8a2c5067ac7e848d763fe8ad9a62b8e7e
Author: Alan Modra <amodra@bigpond.net.au>
Date:   Wed Jul 24 00:00:04 2013 +0000

    daily update

commit 85c131c8bd8ca90a7eb8b1a1ae6f6189984dd627
Author: qiyao <qiyao>
Date:   Tue Jul 23 07:02:03 2013 +0000

    gdb/
    
    	* i386-tdep.c (i386_in_stack_tramp_p): Remove unused
    	parameter 'gdbarch'.
    	(i386_stack_tramp_frame_sniffer): Caller update.
    	* i386-linux-tdep.c (i386_linux_core_read_xcr0): Remove
    	parameter 'gdbarch' and 'target'.
    	(i386_linux_core_read_description): Caller update.
    	* amd64-linux-tdep.c (amd64_linux_core_read_description):
    	Likewise.
    	* i386-linux-tdep.h (i386_linux_core_read_xcr0): Update
    	declaration.

commit b711faca056f6729967aad30054cc993a6b3a475
Author: Tom Tromey <tromey@redhat.com>
Date:   Tue Jul 23 06:56:52 2013 +0000

    	* dwarf2read.c (init_cutu_and_read_dies): Revert patch from
    	2013-07-22.

commit 3e1cf1b5d796066d4082b10a5d4675f12b176959
Author: qiyao <qiyao>
Date:   Tue Jul 23 06:54:47 2013 +0000

    gdb/testsuite/
    
    	* gdb.mi/mi-var-cmd.exp: Adjust pattern to match current error
    	message.

commit 7203fcadb4d73cfc06a619433d64a976f593210c
Author: Alan Modra <amodra@bigpond.net.au>
Date:   Tue Jul 23 00:00:04 2013 +0000

    daily update

commit 50bedac67a153fec697e48af559af166c5fe4fd8
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Mon Jul 22 20:52:23 2013 +0000

    Fix the following ChangeLog entry:
    
    2013-07-22  Doug Evans  <dje@google.com>
    
    gdb/
    	* exec.h (remove_target_sections): Delete arg abfd.
    	* exec.c (exec_close): Update call to remove_target_sections.
    	(remove_target_sections): Delete arg abfd.
    	* solib.c (update_solib_list): Ditto.
    	(reload_shared_libraries_1): Ditto.
    	(clear_solib): Ditto, and unconditionally call remove_target_sections.
    	* target.h (struct target_section): Rename key to owner.
    	All uses updated.

commit cdf3101ddfebd0ed897ed47369507871ffd6f79a
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Mon Jul 22 20:51:10 2013 +0000

    2013-07-22  Doug Evans  <dje@google.com>
    
    gdb/
    	* exec.h (remove_target_sections): Delete arg abfd.
    	* exec.c (remove_target_sections): Delete arg abfd.
    	(exec_close): Update call to remove_target_sections.
    	* solib.c (update_solib_list): Ditto.
    	(reload_shared_libraries_1): Ditto.
    	(clear_solib): Ditto, and unconditionally call remove_target_sections.

-----------------------------------------------------------------------

Summary of changes:
 README.archer                                      |    2 -
 bfd/ChangeLog                                      |   75 +
 bfd/coff-rs6000.c                                  |   58 +-
 bfd/coff64-rs6000.c                                |   59 +-
 bfd/elf32-vax.c                                    |  197 +-
 bfd/elf64-hppa.c                                   |    2 +
 bfd/elf64-ppc.c                                    |   27 +-
 bfd/elflink.c                                      |  109 +-
 bfd/elfnn-aarch64.c                                |    5 +-
 bfd/version.h                                      |    2 +-
 gdb/ChangeLog                                      |  232 +
 gdb/Makefile.in                                    |   17 +-
 gdb/NEWS                                           |    6 +
 gdb/aarch64-linux-nat.c                            |    4 +-
 gdb/amd64-linux-tdep.c                             |    2 +-
 gdb/arm-linux-nat.c                                |    4 +-
 gdb/bfd-target.c                                   |    1 +
 gdb/breakpoint.c                                   |   39 +-
 gdb/breakpoint.h                                   |   10 +-
 gdb/{linux-fork.h => common/break-common.h}        |   30 +-
 gdb/common/mips-linux-watch.c                      |  349 +
 gdb/common/mips-linux-watch.h                      |  126 +
 gdb/common/target-common.c                         |   78 +
 gdb/common/target-common.h                         |  149 +
 gdb/config/mips/linux.mh                           |    2 +-
 gdb/corelow.c                                      |    3 +-
 gdb/doc/ChangeLog                                  |    4 +
 gdb/doc/gdb.texinfo                                |    5 +
 gdb/dwarf2read.c                                   |   46 +-
 gdb/elfread.c                                      |   20 +-
 gdb/exec.c                                         |   20 +-
 gdb/exec.h                                         |    6 +-
 gdb/gdbserver/ChangeLog                            |   41 +
 gdb/gdbserver/Makefile.in                          |   24 +-
 gdb/gdbserver/configure.srv                        |    1 +
 gdb/gdbserver/i386-low.c                           |    9 +-
 gdb/gdbserver/linux-mips-low.c                     |  365 +
 gdb/gdbserver/server.c                             |   15 +-
 gdb/gdbserver/target.c                             |   42 -
 gdb/gdbserver/target.h                             |   69 +-
 gdb/hppa-tdep.h                                    |    7 +
 gdb/hppabsd-nat.c                                  |   82 +-
 gdb/hppabsd-tdep.c                                 |   16 +
 gdb/hppaobsd-tdep.c                                |   56 +-
 gdb/i386-linux-tdep.c                              |    5 +-
 gdb/i386-linux-tdep.h                              |    3 +-
 gdb/i386-nat.c                                     |    4 +-
 gdb/i386-tdep.c                                    |    5 +-
 gdb/ia64-linux-nat.c                               |    4 +-
 gdb/inf-ttrace.c                                   |    2 +-
 gdb/inflow.c                                       |   17 +-
 gdb/linux-fork.h                                   |    3 -
 gdb/linux-nat.c                                    |   22 +-
 gdb/linux-nat.h                                    |   14 -
 gdb/linux-thread-db.c                              |    3 +-
 gdb/mem-break.c                                    |    6 +-
 gdb/mi/mi-main.c                                   |   56 +-
 gdb/mi/mi-main.h                                   |    1 +
 gdb/mips-linux-nat.c                               |  442 +-
 gdb/mips-tdep.c                                    |    2 +-
 gdb/monitor.c                                      |    8 +-
 gdb/nto-procfs.c                                   |   10 +-
 gdb/ppc-linux-nat.c                                |    4 +-
 gdb/printcmd.c                                     |    7 +-
 gdb/probe.c                                        |   17 +
 gdb/probe.h                                        |   12 +
 gdb/procfs.c                                       |    2 +-
 gdb/record-full.c                                  |  221 +-
 gdb/record.c                                       |    8 +-
 gdb/record.h                                       |    2 +-
 gdb/remote-m32r-sdi.c                              |   10 +-
 gdb/remote-mips.c                                  |   16 +-
 gdb/remote-sim.c                                   |    2 +-
 gdb/remote.c                                       |   34 +-
 gdb/s390-nat.c                                     |    2 +-
 gdb/solib-svr4.c                                   |   14 +
 gdb/solib.c                                        |    7 +-
 gdb/stap-probe.c                                   |   37 +-
 gdb/symfile.h                                      |    8 +
 gdb/target.c                                       |  337 +-
 gdb/target.h                                       |  222 +-
 gdb/testsuite/ChangeLog                            |   44 +
 gdb/testsuite/boards/native-stdio-gdbserver.exp    |    2 +-
 gdb/testsuite/gdb.base/display.exp                 |    2 +-
 .../gdb.base/interrupt-noterm.c}                   |   23 +-
 gdb/testsuite/gdb.base/interrupt-noterm.exp        |   76 +
 gdb/testsuite/gdb.base/printcmds.exp               |   10 +
 gdb/testsuite/gdb.mi/mi-basics.exp                 |   15 +-
 gdb/testsuite/gdb.mi/mi-reg-undefined.S            |  521 +
 .../gdb.mi/mi-reg-undefined.c}                     |   37 +-
 gdb/testsuite/gdb.mi/mi-reg-undefined.exp          |   71 +
 gdb/testsuite/gdb.mi/mi-var-child-f.exp            |   22 +-
 gdb/testsuite/gdb.mi/mi-var-cmd.exp                |   14 +-
 gdb/tracepoint.c                                   |    4 +-
 include/opcode/ChangeLog                           |    6 +
 include/opcode/i386.h                              |    1 +
 opcodes/ChangeLog                                  |  326 +
 opcodes/i386-dis-evex.h                            | 3115 ++
 opcodes/i386-dis.c                                 | 1566 +-
 opcodes/i386-gen.c                                 |   45 +-
 opcodes/i386-init.h                                |  508 +-
 opcodes/i386-opc.h                                 |  104 +
 opcodes/i386-opc.tbl                               | 1314 +-
 opcodes/i386-reg.tbl                               |   79 +
 opcodes/i386-tbl.h                                 |53431 ++++++++++++++------
 opcodes/mips-opc.c                                 |    8 +-
 106 files changed, 48052 insertions(+), 17277 deletions(-)
 copy gdb/{linux-fork.h => common/break-common.h} (59%)
 create mode 100644 gdb/common/mips-linux-watch.c
 create mode 100644 gdb/common/mips-linux-watch.h
 create mode 100644 gdb/common/target-common.c
 create mode 100644 gdb/common/target-common.h
 copy gdb/{linux-fork.h => testsuite/gdb.base/interrupt-noterm.c} (56%)
 create mode 100644 gdb/testsuite/gdb.base/interrupt-noterm.exp
 create mode 100644 gdb/testsuite/gdb.mi/mi-reg-undefined.S
 copy gdb/{linux-fork.h => testsuite/gdb.mi/mi-reg-undefined.c} (56%)
 create mode 100644 gdb/testsuite/gdb.mi/mi-reg-undefined.exp
 create mode 100644 opcodes/i386-dis-evex.h

First 500 lines of diff:
diff --git a/README.archer b/README.archer
index 85120ec..f57a203 100644
--- a/README.archer
+++ b/README.archer
@@ -1,6 +1,4 @@
 This branch enables target-async by default.
 
-Currently there is still a regression.
-
 This branch includes the changes from the palves/async-mi-solib.exp
 branch, with some minor updates.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 319e610..62cb270 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,78 @@
+2013-07-28  Maciej W. Rozycki  <macro@linux-mips.org>
+
+	* elf64-hppa.c (elf64_hppa_finish_dynamic_sections)
+	<DT_HP_LOAD_MAP>: Return unsuccessfully if there's no `.data'
+	section.
+
+2013-07-27  Andrew Pinski  <apinski@cavium.com>
+
+	* elfnn-aarch64.c (elfNN_aarch64_check_relocs):
+	Use the correct alignment for
+	_bfd_elf_make_dynamic_reloc_section for ILP32.
+
+2013-07-27  Andrew Pinski  <apinski@cavium.com>
+
+	* elfnn-aarch64.c (elfNN_aarch64_howto_from_bfd_reloc): Handle
+	BFD_RELOC_AARCH64_NONE explicitly.
+
+2013-07-27  Maciej W. Rozycki  <macro@linux-mips.org>
+
+	* elf32-vax.c (elf_vax_finish_dynamic_sections): Don't set GOT's
+	entry size if there is no ELF section data.
+
+2013-07-27  Maciej W. Rozycki  <macro@linux-mips.org>
+
+	* elf32-vax.c (elf_vax_check_relocs) <R_VAX_GOT32, R_VAX_PLT32>:
+	Don't check symbol visibility here.  Remove a check already
+	asserted for.
+	(elf_vax_instantiate_got_entries): Use SYMBOL_REFERENCES_LOCAL
+	instead of individual checks.
+	(elf_vax_relocate_section) <R_VAX_GOT32, R_VAX_PLT32>: Only
+	check the offset to decide if produce a GOT or PLT entry.
+	Remove redundant assertions.  Remove code to produce GOT entries
+	for local symbols.  Remove a duplicate comment and add a comment
+	on GOT relocations.
+	(elf_vax_finish_dynamic_symbol): Remove code to produce RELATIVE
+	dynamic relocs.
+
+2013-07-27  Maciej W. Rozycki  <macro@linux-mips.org>
+
+	* elf32-vax.c (elf_vax_always_size_sections): Correct a comment
+	typo.
+
+2013-07-27  Maciej W. Rozycki  <macro@linux-mips.org>
+
+	* elf32-vax.c (elf_vax_discard_got_entries): New function.
+	(elf_vax_always_size_sections): Likewise.
+	(elf_vax_size_dynamic_sections): Remove code moved to
+	elf_vax_always_size_sections.  Make comment on
+	elf_vax_instantiate_got_entries match reality.
+	(elf_vax_instantiate_got_entries): Assert that rather than check
+	if dynobj is null.  Don't check for dynamic_sections_created.
+	Make function description match reality.
+	(elf_backend_always_size_sections): New macro.
+
+2013-07-25  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c (struct ppc64_elf_obj_tdata): Replace opd_relocs
+	with a union.
+	(opd_entry_value): Cache .opd section contents.
+	(ppc64_elf_relocate_section): Adjust.
+
+2013-07-25  Alan Modra  <amodra@gmail.com>
+
+	PR ld/15762
+	PR ld/12761
+	* elflink.c (elf_link_add_object_symbols): Correct test in
+	last patch.  Remove unnecessary code.
+
+2013-07-24  Tristan Gingold  <gingold@adacore.com>
+
+	* coff-rs6000.c (xcoff_howto_table): Fix masks and pc_relative for
+	R_RBR.  Add numbers in comments.
+	(_bfd_xcoff_reloc_type_lookup): Handle BFD_RELOC_PPC_B16.
+	* coff64-rs6000.c: Likewise.
+
 2013-07-20  Alan Modra  <amodra@gmail.com>
 
 	PR ld/15762
diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c
index 9abe04d..309ea77 100644
--- a/bfd/coff-rs6000.c
+++ b/bfd/coff-rs6000.c
@@ -731,7 +731,7 @@ end:
 
 reloc_howto_type xcoff_howto_table[] =
 {
-  /* Standard 32 bit relocation.  */
+  /* 0x00: Standard 32 bit relocation.  */
   HOWTO (R_POS,			/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -746,7 +746,7 @@ reloc_howto_type xcoff_howto_table[] =
 	 0xffffffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  /* 32 bit relocation, but store negative value.  */
+  /* 0x01: 32 bit relocation, but store negative value.  */
   HOWTO (R_NEG,			/* type */
 	 0,			/* rightshift */
 	 -2,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -761,7 +761,7 @@ reloc_howto_type xcoff_howto_table[] =
 	 0xffffffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  /* 32 bit PC relative relocation.  */
+  /* 0x02: 32 bit PC relative relocation.  */
   HOWTO (R_REL,			/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -776,7 +776,7 @@ reloc_howto_type xcoff_howto_table[] =
 	 0xffffffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  /* 16 bit TOC relative relocation.  */
+  /* 0x03: 16 bit TOC relative relocation.  */
   HOWTO (R_TOC,			/* type */
 	 0,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -791,7 +791,7 @@ reloc_howto_type xcoff_howto_table[] =
 	 0xffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  /* I don't really know what this is.  */
+  /* 0x04: I don't really know what this is.  */
   HOWTO (R_RTB,			/* type */
 	 1,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -806,7 +806,7 @@ reloc_howto_type xcoff_howto_table[] =
 	 0xffffffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  /* External TOC relative symbol.  */
+  /* 0x05: External TOC relative symbol.  */
   HOWTO (R_GL,			/* type */
 	 0,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -821,7 +821,7 @@ reloc_howto_type xcoff_howto_table[] =
 	 0xffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  /* Local TOC relative symbol.	 */
+  /* 0x06: Local TOC relative symbol.	 */
   HOWTO (R_TCL,			/* type */
 	 0,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -838,7 +838,7 @@ reloc_howto_type xcoff_howto_table[] =
 
   EMPTY_HOWTO (7),
 
-  /* Non modifiable absolute branch.  */
+  /* 0x08: Non modifiable absolute branch.  */
   HOWTO (R_BA,			/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -855,7 +855,7 @@ reloc_howto_type xcoff_howto_table[] =
 
   EMPTY_HOWTO (9),
 
-  /* Non modifiable relative branch.  */
+  /* 0x0a: Non modifiable relative branch.  */
   HOWTO (R_BR,			/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -872,7 +872,7 @@ reloc_howto_type xcoff_howto_table[] =
 
   EMPTY_HOWTO (0xb),
 
-  /* Indirect load.  */
+  /* 0x0c: Indirect load.  */
   HOWTO (R_RL,			/* type */
 	 0,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -887,7 +887,7 @@ reloc_howto_type xcoff_howto_table[] =
 	 0xffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  /* Load address.  */
+  /* 0x0d: Load address.  */
   HOWTO (R_RLA,			/* type */
 	 0,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -904,7 +904,7 @@ reloc_howto_type xcoff_howto_table[] =
 
   EMPTY_HOWTO (0xe),
 
-  /* Non-relocating reference.  Bitsize is 1 so that r_rsize is 0.  */
+  /* 0x0f: Non-relocating reference.  Bitsize is 1 so that r_rsize is 0.  */
   HOWTO (R_REF,			/* type */
 	 0,			/* rightshift */
 	 0,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -922,7 +922,7 @@ reloc_howto_type xcoff_howto_table[] =
   EMPTY_HOWTO (0x10),
   EMPTY_HOWTO (0x11),
 
-  /* TOC relative indirect load.  */
+  /* 0x12: TOC relative indirect load.  */
   HOWTO (R_TRL,			/* type */
 	 0,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -937,7 +937,7 @@ reloc_howto_type xcoff_howto_table[] =
 	 0xffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  /* TOC relative load address.  */
+  /* 0x13: TOC relative load address.  */
   HOWTO (R_TRLA,		/* type */
 	 0,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -952,7 +952,7 @@ reloc_howto_type xcoff_howto_table[] =
 	 0xffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  /* Modifiable relative branch.  */
+  /* 0x14: Modifiable relative branch.  */
   HOWTO (R_RRTBI,		 /* type */
 	 1,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -967,7 +967,7 @@ reloc_howto_type xcoff_howto_table[] =
 	 0xffffffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  /* Modifiable absolute branch.  */
+  /* 0x15: Modifiable absolute branch.  */
   HOWTO (R_RRTBA,		 /* type */
 	 1,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -982,7 +982,7 @@ reloc_howto_type xcoff_howto_table[] =
 	 0xffffffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  /* Modifiable call absolute indirect.  */
+  /* 0x16: Modifiable call absolute indirect.  */
   HOWTO (R_CAI,			/* type */
 	 0,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -997,7 +997,7 @@ reloc_howto_type xcoff_howto_table[] =
 	 0xffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  /* Modifiable call relative.  */
+  /* 0x17: Modifiable call relative.  */
   HOWTO (R_CREL,		/* type */
 	 0,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -1012,7 +1012,7 @@ reloc_howto_type xcoff_howto_table[] =
 	 0xffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  /* Modifiable branch absolute.  */
+  /* 0x18: Modifiable branch absolute.  */
   HOWTO (R_RBA,			/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -1027,7 +1027,7 @@ reloc_howto_type xcoff_howto_table[] =
 	 0x03fffffc,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  /* Modifiable branch absolute.  */
+  /* 0x19: Modifiable branch absolute.  */
   HOWTO (R_RBAC,		/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -1042,7 +1042,7 @@ reloc_howto_type xcoff_howto_table[] =
 	 0xffffffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  /* Modifiable branch relative.  */
+  /* 0x1a: Modifiable branch relative.  */
   HOWTO (R_RBR,			/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -1057,7 +1057,7 @@ reloc_howto_type xcoff_howto_table[] =
 	 0x03fffffc,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  /* Modifiable branch absolute.  */
+  /* 0x1b: Modifiable branch absolute.  */
   HOWTO (R_RBRC,		/* type */
 	 0,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -1072,7 +1072,7 @@ reloc_howto_type xcoff_howto_table[] =
 	 0xffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  /* 16 bit Non modifiable absolute branch.  */
+  /* 0x1c: 16 bit Non modifiable absolute branch.  */
   HOWTO (R_BA,			/* type */
 	 0,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -1087,22 +1087,22 @@ reloc_howto_type xcoff_howto_table[] =
 	 0xfffc,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  /* Modifiable branch relative.  */
+  /* 0x1d: Modifiable branch relative.  */
   HOWTO (R_RBR,			/* type */
 	 0,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
-	 FALSE,			/* pc_relative */
+	 TRUE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_signed, /* complain_on_overflow */
 	 0,			/* special_function */
 	 "R_RBR_16",		/* name */
 	 TRUE,			/* partial_inplace */
-	 0xffff,		/* src_mask */
-	 0xffff,		/* dst_mask */
+	 0xfffc,		/* src_mask */
+	 0xfffc,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  /* Modifiable branch relative.  */
+  /* 0x1e: Modifiable branch relative.  */
   HOWTO (R_RBA,			/* type */
 	 0,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -1166,6 +1166,8 @@ _bfd_xcoff_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
     case BFD_RELOC_16:
       /* Note that this relocation is only internally used by gas.  */
       return &xcoff_howto_table[0xc];
+    case BFD_RELOC_PPC_B16:
+      return &xcoff_howto_table[0x1d];
     case BFD_RELOC_32:
     case BFD_RELOC_CTOR:
       return &xcoff_howto_table[0];
diff --git a/bfd/coff64-rs6000.c b/bfd/coff64-rs6000.c
index 56a0d25..6c92e26 100644
--- a/bfd/coff64-rs6000.c
+++ b/bfd/coff64-rs6000.c
@@ -1373,7 +1373,7 @@ xcoff64_ppc_relocate_section (bfd *output_bfd,
 
 reloc_howto_type xcoff64_howto_table[] =
 {
-  /* Standard 64 bit relocation.  */
+  /* 0x00: Standard 64 bit relocation.  */
   HOWTO (R_POS,			/* type */
 	 0,			/* rightshift */
 	 4,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -1388,7 +1388,7 @@ reloc_howto_type xcoff64_howto_table[] =
 	 MINUS_ONE,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  /* 64 bit relocation, but store negative value.  */
+  /* 0x01: 64 bit relocation, but store negative value.  */
   HOWTO (R_NEG,			/* type */
 	 0,			/* rightshift */
 	 -4,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -1403,7 +1403,7 @@ reloc_howto_type xcoff64_howto_table[] =
 	 MINUS_ONE,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  /* 32 bit PC relative relocation.  */
+  /* 0x02: 32 bit PC relative relocation.  */
   HOWTO (R_REL,			/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -1418,7 +1418,7 @@ reloc_howto_type xcoff64_howto_table[] =
 	 0xffffffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  /* 16 bit TOC relative relocation.  */
+  /* 0x03: 16 bit TOC relative relocation.  */
   HOWTO (R_TOC,			/* type */
 	 0,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -1433,7 +1433,7 @@ reloc_howto_type xcoff64_howto_table[] =
 	 0xffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  /* I don't really know what this is.	*/
+  /* 0x04: I don't really know what this is.	*/
   HOWTO (R_RTB,			/* type */
 	 1,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -1448,7 +1448,7 @@ reloc_howto_type xcoff64_howto_table[] =
 	 0xffffffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  /* External TOC relative symbol.  */
+  /* 0x05: External TOC relative symbol.  */
   HOWTO (R_GL,			/* type */
 	 0,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -1463,7 +1463,7 @@ reloc_howto_type xcoff64_howto_table[] =
 	 0xffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  /* Local TOC relative symbol.	 */
+  /* 0x06: Local TOC relative symbol.	 */
   HOWTO (R_TCL,			/* type */
 	 0,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -1480,7 +1480,7 @@ reloc_howto_type xcoff64_howto_table[] =
 
   EMPTY_HOWTO (7),
 
-  /* Non modifiable absolute branch.  */
+  /* 0x08: Non modifiable absolute branch.  */
   HOWTO (R_BA,			/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -1497,7 +1497,7 @@ reloc_howto_type xcoff64_howto_table[] =
 
   EMPTY_HOWTO (9),
 
-  /* Non modifiable relative branch.  */
+  /* 0x0a: Non modifiable relative branch.  */
   HOWTO (R_BR,			/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -1514,7 +1514,7 @@ reloc_howto_type xcoff64_howto_table[] =
 
   EMPTY_HOWTO (0xb),
 
-  /* Indirect load.  */
+  /* 0x0c: Indirect load.  */
   HOWTO (R_RL,			/* type */
 	 0,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -1529,7 +1529,7 @@ reloc_howto_type xcoff64_howto_table[] =
 	 0xffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  /* Load address.  */
+  /* 0x0d: Load address.  */
   HOWTO (R_RLA,			/* type */
 	 0,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -1546,7 +1546,7 @@ reloc_howto_type xcoff64_howto_table[] =
 
   EMPTY_HOWTO (0xe),
 
-  /* Non-relocating reference.  Bitsize is 1 so that r_rsize is 0.  */
+  /* 0x0f: Non-relocating reference.  Bitsize is 1 so that r_rsize is 0.  */
   HOWTO (R_REF,			/* type */
 	 0,			/* rightshift */
 	 0,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -1564,7 +1564,7 @@ reloc_howto_type xcoff64_howto_table[] =
   EMPTY_HOWTO (0x10),
   EMPTY_HOWTO (0x11),
 
-  /* TOC relative indirect load.  */
+  /* 0x12: TOC relative indirect load.  */
   HOWTO (R_TRL,			/* type */
 	 0,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -1579,7 +1579,7 @@ reloc_howto_type xcoff64_howto_table[] =
 	 0xffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  /* TOC relative load address.	 */
+  /* 0x13: TOC relative load address.	 */
   HOWTO (R_TRLA,		/* type */
 	 0,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -1594,7 +1594,7 @@ reloc_howto_type xcoff64_howto_table[] =
 	 0xffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  /* Modifiable relative branch.  */
+  /* 0x14: Modifiable relative branch.  */
   HOWTO (R_RRTBI,		/* type */
 	 1,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -1609,7 +1609,7 @@ reloc_howto_type xcoff64_howto_table[] =
 	 0xffffffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  /* Modifiable absolute branch.  */
+  /* 0x15: Modifiable absolute branch.  */
   HOWTO (R_RRTBA,		/* type */
 	 1,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -1624,7 +1624,7 @@ reloc_howto_type xcoff64_howto_table[] =
 	 0xffffffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  /* Modifiable call absolute indirect.	 */
+  /* 0x16: Modifiable call absolute indirect.	 */
   HOWTO (R_CAI,			/* type */
 	 0,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -1639,7 +1639,7 @@ reloc_howto_type xcoff64_howto_table[] =


hooks/post-receive
--
Repository for Project Archer.


^ permalink raw reply	[flat|nested] 2+ messages in thread

* [SCM]  tromey/always-async: enable target-async
@ 2013-08-02 18:34 tromey
  0 siblings, 0 replies; 2+ messages in thread
From: tromey @ 2013-08-02 18:34 UTC (permalink / raw)
  To: archer-commits

The branch, tromey/always-async has been updated
  discards  7888e8b09d4b4c1e746c1d82e00dcb555ac76d45 (commit)
  discards  d45b5606f6db5ab35f02ac977651d73823f8694a (commit)
  discards  262870ca15ddfeda3b65da97b9fdcd12357d30f3 (commit)
  discards  ff151c706279c3f1b637b52bb58ecef1cf94fbf2 (commit)
  discards  fcdad5ed9365533ddee3ef4dfb2cf4b8204512b7 (commit)
  discards  029969c02352d7be222bc799b7f6a597a9bd4dce (commit)
  discards  3f4e17be3ed3ef2eeb45cdd5feb01e749a138e66 (commit)
  discards  719746031c2cbb0a9f6c4d5118ff1297062540fa (commit)
  discards  e01dcfc09f68077efce58475486cf80a1ae4fff5 (commit)
  discards  0ba707dcf38b2602eb1b90d40e98498d47e3625a (commit)
       via  e661149db1db5d426ea9b9c257b694d9c54293a4 (commit)
       via  285ca28b05b09b50708a1d6a058d5517bac2bdca (commit)
       via  bbdff0bfa4d0e503cb996ab3ff316edc5c446045 (commit)
       via  2877f9998b7eb932033050a55d17f811ddf172e2 (commit)
       via  a2bbddf105ebdeab5044757de1ae40210d752539 (commit)
       via  13ea390d0768caa9777b96aa6059ab3234eb9b97 (commit)
       via  fd963a4bf4136df0648be597e86467871807f9d4 (commit)
       via  e5833629099527896ace6151e47cb8ba76195171 (commit)
       via  c4f717e32f7cfdad7472dc8ed2f47105875f23cc (commit)
       via  17182bb5487760d28ed38f35d438df86cea2a0de (commit)
       via  f481f474696ffbf874d1f9c97371e7bfcb6a47b3 (commit)
       via  cb81ffd4f1c415b1f7f6ebce3a11d2b6777a02f2 (commit)
       via  6ae209793c817f943940a4a0f0da1c4d4ba15003 (commit)
       via  9581d55eeddac9d2d965c62c345991e138f27ccb (commit)
       via  cbb25189b69e501ddca64917d810b54bb1466c93 (commit)
       via  7f350588e9fa12457cc33814ec32f79e33f193bb (commit)
       via  a82b41ab61a641afe650cdde1a70c8834fe6c8ff (commit)
       via  735c540f6b8b8a77af01e7c324c0fb267005ffb8 (commit)
       via  20906da825104f6638a8452eb79ff9be60162e32 (commit)
       via  c90923c3d3bb0c723e7060888c5034f24c8cd139 (commit)
       via  57cff626eb477c651122001df4f7f626e0c90568 (commit)
       via  93be37415c8e18dd27cfc6a601ebc8c2f9622586 (commit)
       via  c05949d07b2011170e72443c5b21ae43f35e99d4 (commit)
       via  9e845f3a1ecdb854b114bcf26ab64c24c10a9f2e (commit)
       via  679592fa11267d1e95e52ad0a4761b0bd8fa66dd (commit)
       via  d18d79ffd1a573842d30cf062ba1fc6ed544644e (commit)
       via  a1269d2a9a983622bbfcaa31206b78d165f18b18 (commit)
       via  5339a63aa3d9196b38789e8094dca5697967d81e (commit)
       via  edaf879a2211e21ffc722b29ae85d1bd7cf51711 (commit)
       via  6e5c95e6cf1e3c37bd3a822ca9e6721caab97a85 (commit)
       via  dd7ddfa96a2afe14e3144d3a869ef0d30c4311fb (commit)
       via  3e802ea78f3efbd04ef273ed75a4f24a9aeca23a (commit)
       via  b777aa6cb360fa6ea341954bd070e59be27f7357 (commit)
       via  71e62cdb4bd587906a4b949a14fd6c73c865c6cb (commit)
       via  cc734a965e0b979c2386dcb07b9c330e12dd168e (commit)
       via  a6eb4d5106bff31cfde208f0d2eb919038c6e0e4 (commit)
       via  23633161a39d81e9dc3249d393034b9cbd393acd (commit)
       via  45bee3e492b91db8ab00e333f7a00c12aabe0c50 (commit)
       via  aaef7abe463aa2f70b5a001d8a9753740c656e50 (commit)
       via  860f76d89149da5b24df88fb822be50824114885 (commit)
       via  fe870957318b688c9f8788863a3447a88262f3d5 (commit)
       via  19dbd794eaea44916da1de106ae42a5d1e4523e0 (commit)
       via  52f87c6e3e23b032c4c50f251e5347089164f438 (commit)
       via  292fb5e98d0f74e4bd9e7374155e27fe438080a1 (commit)
       via  27e287614ca92a26d3873f90d4b8296fb6448b47 (commit)
       via  75cec15187a953fc66ba491774dbb872fa3910d1 (commit)
       via  81011583e35c192b1aabbc66495dbba622910dfd (commit)
       via  0b2b5f7374a6cf5d113379ee91c418df18f15308 (commit)
       via  dad15ffb0ef559eb8b4368dec1cd232d2537ef75 (commit)
       via  abc98afe7bd6df63f0de02867a06669b21c93efb (commit)
       via  8c570d909765a5fdf9dd60b222ca962944e886e8 (commit)
      from  7888e8b09d4b4c1e746c1d82e00dcb555ac76d45 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email.

- Log -----------------------------------------------------------------
commit e661149db1db5d426ea9b9c257b694d9c54293a4
Author: Tom Tromey <tromey@redhat.com>
Date:   Wed Jul 3 10:11:58 2013 -0600

    enable target-async
    
    This enables target-async by default.
    
    Unlike the CLI, MI chose to treat target-async specially -- setting it
    changes the default behavior of commands.  So, we can't get rid of the
    option.  Instead we have to make it MI-only.
    
    The hardest part of this patch, to my surprise, was getting the MI
    prompt to work properly.  It was reasonably easy, and clean, to get
    close to what the test suite expects; but to fix the last remaining
    failure (mi-async.exp), I had to resort to a hack.
    
    It seems to me that the MI grammar was never updated to account for
    changes implied by async.
    
    Perhaps some future MI can dispense with the prompt entirely.
    
    Built and regtested on x86-64 Fedora 18.
    
    	* infrun.c (set_observer_mode): Don't set target_async_permitted.
    	* linux-nat.c (linux_nat_is_async_p): Always return 1.
    	(linux_nat_can_async_p): Likewise.
    	* mi/mi-interp.c (mi_interpreter_prompt_p): Maybe print the MI
    	prompt.
    	(mi_cmd_interpreter_exec): Set mi_last_was_cli.
    	(mi_execute_command_input_handler): Conditionally print prompt.
    	(mi_on_resume): Check sync_execution before printing prompt.
    	* mi/mi-main.h (mi_last_was_cli): Declare.
    	* mi/mi-main.c (mi_last_was_cli): New global.
    	(mi_target_can_async_p): New function.
    	(exec_continue): Maybe call async_disable_stdin.
    	(run_one_inferior, mi_cmd_exec_run, mi_cmd_list_target_features):
    	Use mi_target_can_async_p.
    	(captured_mi_execute_command): Clear mi_last_was_cli.
    	(mi_execute_async_cli_command): Use mi_target_can_async_p.
    	* remote.c (remote_open_1, remote_terminal_inferior)
    	(remote_terminal_ours, remote_can_async_p, remote_is_async_p):
    	Don't check target_async_permitted.
    
    	* gdb.texinfo (Non-Stop Mode): Remove "set target-async 1"
    	from example.
    	(Background Execution): Move target-async docs...
    	(Asynchronous and non-stop modes): ... here.  Rewrite to
    	MI form.
    
    	* gdb.mi/mi-cli.exp: Don't check "$async".

commit 285ca28b05b09b50708a1d6a058d5517bac2bdca
Author: Tom Tromey <tromey@redhat.com>
Date:   Mon Jul 8 10:23:33 2013 -0600

    fix py-finish-breakpoint.exp with always-async
    
    With target async enabled, py-finish-breakpoint.exp will trigger an
    assertion failure.
    
    The failure occurs because execute_command re-enters the event loop in
    some circumstances, and in this case resets the sync_execution flag.
    Then later gdb reaches this assertion in normal_stop:
    
          gdb_assert (sync_execution || !target_can_async_p ());
    
    execute_command has a comment explaining why it dispatches events:
    
          /* If the interpreter is in sync mode (we're running a user
    	 command's list, running command hooks or similars), and we
    	 just ran a synchronous command that started the target, wait
    	 for that command to end.  */
    
    However, the code did not follow this comment -- it didn't check to
    see if the command started the target, just whether the target was
    executing a sync command at this point.
    
    This patch fixes the problem by noting whether the target was
    executing in sync_execution mode before running the command, and then
    augmenting the condition to test this as well.
    
    Built and regtested on x86-64 Fedora 18.
    
    	* top.c (execute_command): Only dispatch events if command
    	started target.

commit bbdff0bfa4d0e503cb996ab3ff316edc5c446045
Author: Tom Tromey <tromey@redhat.com>
Date:   Mon Jul 8 09:41:57 2013 -0600

    make dprintf.exp pass in always-async mode
    
    When target-async is enabled, dprintf.exp fails.
    
    This happens because run_inferior_call causes gdb to forget that it is
    running in sync_execution mode, so something like a breakpoint
    condition that makes an inferior call causes gdb to enter fully async
    mode.
    
    This patch fixes the problem by noticing when gdb was in
    sync_execution mode in run_inferior_call, and taking care to restore
    this state afterward.
    
    Built and regtested on x86-64 Fedora 18.
    
    	PR cli/15718:
    	* infcall.c: Include event-top.h.
    	(run_inferior_call): Call async_disable_stdin if needed.

commit 2877f9998b7eb932033050a55d17f811ddf172e2
Author: Pedro Alves <palves@redhat.com>
Date:   Wed May 9 14:07:04 2012 +0100

    PR gdb/13860: don't lose '-interpreter-exec console EXECUTION_COMMAND''s output in async mode.
    
    The other part of PR gdb/13860 is about console execution commands
    in MI getting their output half lost.  E.g., take the finish command,
    executed on a frontend's GDB console:
    
    sync:
    
      finish
      &"finish\n"
      ~"Run till exit from #0  usleep (useconds=10) at ../sysdeps/unix/sysv/linux/usleep.c:27\n"
      ^running
      *running,thread-id="1"
      (gdb)
      ~"0x00000000004004d7 in foo () at stepinf.c:6\n"
      ~"6\t    usleep (10);\n"
      ~"Value returned is $1 = 0\n"
      *stopped,reason="function-finished",frame={addr="0x00000000004004d7",func="foo",args=[],file="stepinf.c",fullname="/home/pedro/gdb/tests/stepinf.c",line="6"},thread-id="1",stopped-threads="all",core="1"
    
    async:
    
      finish
      &"finish\n"
      ~"Run till exit from #0  usleep (useconds=10) at ../sysdeps/unix/sysv/linux/usleep.c:27\n"
      ^running
      *running,thread-id="1"
      (gdb)
      *stopped,reason="function-finished",frame={addr="0x00000000004004d7",func="foo",args=[],file="stepinf.c",fullname="/home/pedro/gdb/tests/stepinf.c",line="6"},gdb-result-var="$1",return-value="0",thread-id="1",stopped-threads="all",core="0"
    
    Note how all the "Value returned" etc. output is missing in async mode.
    
    The same happens with e.g., catchpoints:
    
      =breakpoint-modified,bkpt={number="1",type="catchpoint",disp="keep",enabled="y",what="22016",times="1"}
      ~"\nCatchpoint "
      ~"1 (forked process 22016), 0x0000003791cbd8a6 in __libc_fork () at ../nptl/sysdeps/unix/sysv/linux/fork.c:131\n"
      ~"131\t  pid = ARCH_FORK ();\n"
      *stopped,reason="fork",disp="keep",bkptno="1",newpid="22016",frame={addr="0x0000003791cbd8a6",func="__libc_fork",args=[],file="../nptl/sysdeps/unix/sysv/linux/fork.c",fullname="/usr/src/debug/glibc-2.14-394-g8f3b1ff/nptl/sysdeps/unix/sysv/linux/fork.c",line="131"},thread-id="1",stopped-threads="all",core="0"
    
    where all those ~ lines are missing in async mode, or just the "step"
    current line indication:
    
      s
      &"s\n"
      ^running
      *running,thread-id="all"
      (gdb)
      ~"13\t  foo ();\n"
      *stopped,frame={addr="0x00000000004004ef",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffdd78"}],file="stepinf.c",fullname="/home/pedro/gdb/tests/stepinf.c",line="13"},thread-id="1",stopped-threads="all",core="3"
      (gdb)
    
    Or in the case of the PRs example, the "Stopped due to shared library
    event" note:
    
      start
      &"start\n"
      ~"Temporary breakpoint 1 at 0x400608: file ../../../src/gdb/testsuite/gdb.mi/solib-main.c, line 21.\n"
      =breakpoint-created,bkpt={number="1",type="breakpoint",disp="del",enabled="y",addr="0x0000000000400608",func="main",file="../../../src/gdb/testsuite/gdb.mi/solib-main.c",fullname="/home/pedro/gdb/mygit/src/gdb/testsuite/gdb.mi/solib-main.c",line="21",times="0",original-location="main"}
      ~"Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main \n"
      =thread-group-started,id="i1",pid="21990"
      =thread-created,id="1",group-id="i1"
      ^running
      *running,thread-id="all"
      (gdb)
      =library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",thread-group="i1"
      ~"Stopped due to shared library event (no libraries added or removed)\n"
      *stopped,reason="solib-event",thread-id="1",stopped-threads="all",core="3"
      (gdb)
    
    IMO, if you're typing execution commands in a frontend's console, you
    expect to see their output.  Indeed it's what you get in sync mode.  I
    think async mode should do the same.
    
    That's what this patch does.
    
    Notes:
    
      - mi->out is the same as gdb_stdout when MI is the current
        interpreter.  I think that referring to that directly is cleaner.
        An earlier revision of this patch made the changes that are now
        done in mi_on_normal_stop directly in infrun.c:normal_stop, and so
        not having an obvious place to put the new uiout by then, and not
        wanting to abuse CLI's uiout, I made a temporary uiout when
        necessary.
    
      - Hopefuly the rest of the patch is more or less obvious given the
        comments I added.
    
    Tested on x86_64 Fedora 16, no regressions.
    
    2012-05-09  Pedro Alves  <palves@redhat.com>
    
    	PR gdb/13860
    
    	* gdbthread.h (struct thread_control_state): New field
    	`command_interp'.
    	* infrun.c (follow_fork): Copy the new thread control field to the
    	child fork thread.
    	(clear_proceed_status_thread): Clear the new thread control field.
    	(proceed): Set the new thread control field.
    	* interps.h (command_interp): Declare.
    	* interps.c (command_interpreter): New global.
    	(command_interp): New function.
    	(interp_exec): Set `command_interpreter' while here.
    
    	* cli-out.c (cli_uiout_dtor): New function.
    	(cli_ui_out_impl): Install it.
    
    	* mi/mi-interp.c: Include cli-out.h.
    	(mi_cmd_interpreter_exec): Add comment.
    	(restore_current_uiout_cleanup): New function.
    	(ui_out_free_cleanup): New function.
    	(mi_on_normal_stop): In async mode, if finishing an execution
    	command started by a CLI command, or any kind of breakpoint-like
    	event triggered, print the stop event to the output (CLI) stream.
    	* mi/mi-out.c (mi_ui_out_impl): Install NULL `dtor' handler.
    
    	gdb/testsuite/
    	* gdb.mi/mi-cli.exp: Also expect the new source line to be output
    	after a "next", in async mode.  Make it a pass/fail test.
    	* gdb.mi/mi-solib.exp: Test that the CLI solib event note is
    	output.

commit a2bbddf105ebdeab5044757de1ae40210d752539
Author: Pedro Alves <palves@redhat.com>
Date:   Wed May 9 14:10:30 2012 +0100

    PR gdb/13860: make "-exec-foo"'s MI output equal to "foo"'s MI output.
    
    Part of PR gdb/13860 is about the mi-solib.exp test's output being
    different in sync vs async modes.
    
    sync:
    
      >./gdb -nx -q ./testsuite/gdb.mi/solib-main -ex "set stop-on-solib-events 1" -ex "set target-async off" -i=mi
      =thread-group-added,id="i1"
      ~"Reading symbols from /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main..."
      ~"done.\n"
      (gdb)
      &"start\n"
      ~"Temporary breakpoint 1 at 0x400608: file ../../../src/gdb/testsuite/gdb.mi/solib-main.c, line 21.\n"
      =breakpoint-created,bkpt={number="1",type="breakpoint",disp="del",enabled="y",addr="0x0000000000400608",func="main",file="../../../src/gdb/testsuite/gdb.mi/solib-main.c",fullname="/home/pedro/gdb/mygit/src/gdb/testsuite/gdb.mi/solib-main.c",line="21",times="0",original-location="main"}
      ~"Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main \n"
      =thread-group-started,id="i1",pid="17724"
      =thread-created,id="1",group-id="i1"
      ^running
      *running,thread-id="all"
      (gdb)
      =library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",thread-group="i1"
      ~"Stopped due to shared library event (no libraries added or removed)\n"
      *stopped,reason="solib-event",frame={addr="0x000000379180f990",func="_dl_debug_state",args=[],from="/lib64/ld-linux-x86-64.so.2"},thread-id="1",stopped-threads="all",core="3"
      (gdb)
    
    async:
    
      >./gdb -nx -q ./testsuite/gdb.mi/solib-main -ex "set stop-on-solib-events 1" -ex "set target-async on" -i=mi
      =thread-group-added,id="i1"
      ~"Reading symbols from /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main..."
      ~"done.\n"
      (gdb)
      start
      &"start\n"
      ~"Temporary breakpoint 1 at 0x400608: file ../../../src/gdb/testsuite/gdb.mi/solib-main.c, line 21.\n"
      =breakpoint-created,bkpt={number="1",type="breakpoint",disp="del",enabled="y",addr="0x0000000000400608",func="main",file="../../../src/gdb/testsuite/gdb.mi/solib-main.c",fullname="/home/pedro/gdb/mygit/src/gdb/testsuite/gdb.mi/solib-main.c",line="21",times="0",original-location="main"}
      ~"Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main \n"
      =thread-group-started,id="i1",pid="17729"
      =thread-created,id="1",group-id="i1"
      ^running
      *running,thread-id="all"
      =library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",thread-group="i1"
      (gdb)
      *stopped,reason="solib-event",thread-id="1",stopped-threads="all",core="1"
    
    For now, let's focus only on the *stopped event.  We see that the
    async output is missing frame info.  And this causes a test failure in
    async mode, as "mi_expect_stop solib-event" wants to see the frame
    info.
    
    However, if we compare the event output when a real MI execution
    command is used, compared to a CLI command (e.g., run vs -exec-run,
    next vs -exec-next, etc.), we see:
    
      >./gdb -nx -q ./testsuite/gdb.mi/solib-main -ex "set stop-on-solib-events 1" -ex "set target-async off" -i=mi
      =thread-group-added,id="i1"
      ~"Reading symbols from /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main..."
      ~"done.\n"
      (gdb)
      r
      &"r\n"
      ~"Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/solib-main \n"
      =thread-group-started,id="i1",pid="17751"
      =thread-created,id="1",group-id="i1"
      ^running
      *running,thread-id="all"
      (gdb)
      =library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",thread-group="i1"
      ~"Stopped due to shared library event (no libraries added or removed)\n"
      *stopped,reason="solib-event",frame={addr="0x000000379180f990",func="_dl_debug_state",args=[],from="/lib64/ld-linux-x86-64.so.2"},thread-id="1",stopped-threads="all",core="3"
      (gdb)
      -exec-run
      =thread-exited,id="1",group-id="i1"
      =thread-group-exited,id="i1"
      =library-unloaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",thread-group="i1"
      =thread-group-started,id="i1",pid="17754"
      =thread-created,id="1",group-id="i1"
      ^running
      *running,thread-id="all"
      (gdb)
      =library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",thread-group="i1"
      *stopped,reason="solib-event",thread-id="1",stopped-threads="all",core="1"
      =thread-selected,id="1"
      (gdb)
    
    As seen above, with MI commands, the *stopped event _doesn't_ have
    frame info.  This is because normal_stop, as commanded by the result
    of bpstat_print, skips printing frame info in this case (it's an
    "event", not a "breakpoint"), and when the interpreter is MI,
    mi_on_normal_stop skips calling print_stack_frame, as the normal_stop
    call was already done with the MI uiout.  This explains why the async
    output is different even with a CLI command.  Its because in async
    mode, the mi_on_normal_stop path is always taken; it is always reached
    with the MI uiout, because the stop is handled from the event loop,
    instead of from within `proceed -> wait_for_inferior -> normal_stop'
    with the interpreter overridden, as in sync mode.
    
    This patch fixes the issue by making all cases output the same
    *stopped event, by factoring out the print code from normal_stop, and
    using it from mi_on_normal_stop as well.  I chose the *stopped output
    without a frame, mainly because that is what you already get if you
    use MI execution commands, the commands frontends are supposed to use
    (except when implementing a console).  This patch makes it simpler to
    tweak the MI output differently if desired, as we only have to change
    the centralized print_stop_event (taking into account whether the
    uiout is MI-like), and all different modes will change accordingly.
    
    Tested on x86_64 Fedora 16, no regressions.  The mi-solib.exp test no
    longer fails in async mode with this patch, so the patch removes the
    kfail.
    
    2012-05-09  Pedro Alves  <palves@redhat.com>
    
    	PR gdb/13860
    
    	gdb/
    	* inferior.h (print_stop_event): Declare.
    	* infrun.c (print_stop_event): New, factored out from ...
    	(normal_stop): ... this.
    	* mi/mi-interp.c (mi_on_normal_stop): Use print_stop_event instead
    	of bpstat_print/print_stack_frame.
    
    	gdb/testsuite/
    	* gdb.mi/mi-solib.exp: Remove gdb/13860 kfail.
    	* lib/mi-support.exp (mi_expect_stop): Add special handling for
    	solib-event.

commit 13ea390d0768caa9777b96aa6059ab3234eb9b97
Author: Pedro Alves <palves@redhat.com>
Date:   Wed May 9 17:28:12 2012 +0100

    PR gdb/13860: make -interpreter-exec console "list" behave more like "list".
    
    Patch 3 in this series made me notice that "list" behaves differently
    in CLI vs MI.  Particularly:
    
      >./gdb -nx -q ./testsuite/gdb.mi/mi-cli
      Reading symbols from /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/mi-cli...done.
      (gdb) start
      Temporary breakpoint 1 at 0x40054d: file ../../../src/gdb/testsuite/gdb.mi/basics.c, line 62.
      Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/mi-cli
    
      Temporary breakpoint 1, main () at ../../../src/gdb/testsuite/gdb.mi/basics.c:62
      62        callee1 (2, "A string argument.", 3.5);
      (gdb) list
      57      {
      58      }
      59
      60      main ()
      61      {
      62        callee1 (2, "A string argument.", 3.5);
      63        callee1 (2, "A string argument.", 3.5);
      64
      65        do_nothing (); /* Hello, World! */
      66
      (gdb)
    
    Note the list started at line 57.  IOW, the program stopped at line
    62, and GDB centered the list on that.
    
    compare with:
    
      >./gdb -nx -q ./testsuite/gdb.mi/mi-cli -i=mi
      =thread-group-added,id="i1"
      ~"Reading symbols from /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/mi-cli..."
      ~"done.\n"
      (gdb)
      start
      &"start\n"
      ~"Temporary breakpoint 1 at 0x40054d: file ../../../src/gdb/testsuite/gdb.mi/basics.c, line 62.\n"
      =breakpoint-created,bkpt={number="1",type="breakpoint",disp="del",enabled="y",addr="0x000000000040054d",func="main",file="../../../src/gdb/testsuite/gdb.mi/basics.c",fullname="/home/pedro/gdb/mygit/src/gdb/testsuite/gdb.mi/basics.c",line="62",times="0",original-location="main"}
      ~"Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.mi/mi-cli \n"
      =thread-group-started,id="i1",pid="14221"
      =thread-created,id="1",group-id="i1"
      ^running
      *running,thread-id="all"
      (gdb)
      =library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",thread-group="i1"
      =library-loaded,id="/lib64/libm.so.6",target-name="/lib64/libm.so.6",host-name="/lib64/libm.so.6",symbols-loaded="0",thread-group="i1"
      =library-loaded,id="/lib64/libc.so.6",target-name="/lib64/libc.so.6",host-name="/lib64/libc.so.6",symbols-loaded="0",thread-group="i1"
      =breakpoint-modified,bkpt={number="1",type="breakpoint",disp="del",enabled="y",addr="0x000000000040054d",func="main",file="../../../src/gdb/testsuite/gdb.mi/basics.c",fullname="/home/pedro/gdb/mygit/src/gdb/testsuite/gdb.mi/basics.c",line="62",times="1",original-location="main"}
      ~"\nTemporary breakpoint "
      ~"1, main () at ../../../src/gdb/testsuite/gdb.mi/basics.c:62\n"
      ~"62\t  callee1 (2, \"A string argument.\", 3.5);\n"
      *stopped,reason="breakpoint-hit",disp="del",bkptno="1",frame={addr="0x000000000040054d",func="main",args=[],file="../../../src/gdb/testsuite/gdb.mi/basics.c",fullname="/home/pedro/gdb/mygit/src/gdb/testsuite/gdb.mi/basics.c",line="62"},thread-id="1",stopped-threads="all",core="0"
      =breakpoint-deleted,id="1"
      (gdb)
      -interpreter-exec console list
      ~"62\t  callee1 (2, \"A string argument.\", 3.5);\n"
      ~"63\t  callee1 (2, \"A string argument.\", 3.5);\n"
      ~"64\t\n"
      ~"65\t  do_nothing (); /* Hello, World! */\n"
      ~"66\t\n"
      ~"67\t  callme (1);\n"
      ~"68\t  callme (2);\n"
      ~"69\t\n"
      ~"70\t  return 0;\n"
      ~"71\t}\n"
      ^done
      (gdb)
    
    Here the list starts at line 62, where the program was stopped.
    
    This happens because print_stack_frame, called from both normal_stop
    and mi_on_normal_stop, is the function responsible for setting the
    current sal from the selected frame, overrides the PRINT_WHAT
    argument, and only after that does it decide whether to center the
    current sal line or not, based on the overriden value, and it will
    always decide false.
    
    (The print_stack_frame call in mi_on_normal_stop is a little different
    from the call in normal_stop, in that it is an unconditional
    SRC_AND_LOC call.  The next patch will make those uniform.)
    
    Tested on x86_64 Fedora 16, no regressions.
    
    gdb/
    2012-05-09  Pedro Alves  <palves@redhat.com>
    
    	* stack.c (print_stack_frame): Compute CENTER before overriding
    	PRINT_WHAT.
    
    gdb/testsuite/
    2012-05-09  Pedro Alves  <palves@redhat.com>
    
    	* gdb.mi/mi-cli.exp: Adjust expected output of "list".

commit fd963a4bf4136df0648be597e86467871807f9d4
Author: Tom Tromey <tromey@redhat.com>
Date:   Tue Jul 30 10:36:07 2013 -0600

    add "this" pointers to more target APIs

commit e5833629099527896ace6151e47cb8ba76195171
Author: Tom Tromey <tromey@redhat.com>
Date:   Fri Jul 12 13:00:34 2013 -0600

    add target method delegation
    
    This patch replaces some code in the record targets with target method
    delegation.
    
    Right now there are two latent problems in the record target.
    
    First, record-full.c stores pointers to many target methods when the
    record target is pushed.  Then it later delegates some calls via
    these.  This is wrong because it violates the target stack contract.
    In particular it is ok to unpush a target at any stratum, but
    record-full does not keep track of this, so it could potentially call
    into an unpushed target.
    
    Second, RECORD_IS_USED and some other spots look at
    current_target.to_stratum to determine whether a record target is in
    use.  This is bad because arch_stratum is greater than record_stratum.
    
    To fix the first problem, this patch introduces a handful of
    target_delegate_* functions, which forward calls further down the
    target stack.
    
    To fix the second problem, this patch adds find_target_at to determine
    whether a target appears at a given stratum.  This may seem like
    overkill somehow, but I have a subsequent patch series (see archer.git
    tromey/multi-target) that uses it more heavily.
    
    	* record-full.c (record_full_beneath_to_resume_ops)
    	(record_full_beneath_to_resume, record_full_beneath_to_wait_ops)
    	(record_full_beneath_to_wait)
    	(record_full_beneath_to_store_registers_ops)
    	(record_full_beneath_to_store_registers)
    	(record_full_beneath_to_xfer_partial_ops)
    	(record_full_beneath_to_xfer_partial)
    	(record_full_beneath_to_insert_breakpoint)
    	(record_full_beneath_to_remove_breakpoint)
    	(record_full_beneath_to_stopped_by_watchpoint)
    	(record_full_beneath_to_stopped_data_address)
    	(record_full_beneath_to_async, tmp_to_resume_ops, tmp_to_resume)
    	(tmp_to_wait_ops, tmp_to_wait, tmp_to_store_registers_ops)
    	(tmp_to_store_registers, tmp_to_xfer_partial_ops)
    	(tmp_to_xfer_partial, tmp_to_insert_breakpoint)
    	(tmp_to_remove_breakpoint, tmp_to_stopped_by_watchpoint)
    	(tmp_to_stopped_data_address, tmp_to_async): Remove.
    	(record_full_open_1, record_full_open): Update.  Use RECORD_IS_USED.
    	(record_full_resume, record_full_wait_1)
    	(record_full_stopped_by_watchpoint, record_full_stopped_data_address)
    	(record_full_store_registers, record_full_xfer_partial)
    	(record_full_insert_breakpoint, record_full_remove_breakpoint)
    	(record_full_async, record_full_can_async_p, record_full_is_async_p)
    	(record_full_core_xfer_partial): Use target delegation.
    	* record.c (find_record_target): Use find_target_at.
    	* record.h (RECORD_IS_USED): Use find_target_at.
    	* target.c (update_current_target): Use target_delegate_xfer_partial.
    	(target_delegate_xfer_partial): Now public.  Renamed from...
    	(current_xfer_partial): ...this.  Remove.
    	(target_delegate_async, target_delegate_is_async_p)
    	(target_delegate_can_async_p, target_delegate_insert_breakpoint)
    	(target_delegate_remove_breakpoint, target_delegate_wait)
    	(target_delegate_resume, find_target_at)
    	(target_delegate_store_registers)
    	(target_delegate_stopped_by_watchpoint)
    	(target_delegate_stopped_data_address): New functions.
    	* target.h (target_delegate_async, target_delegate_is_async_p)
    	(target_delegate_can_async_p, target_delegate_insert_breakpoint)
    	(target_delegate_remove_breakpoint, target_delegate_wait)
    	(target_delegate_resume, find_target_at)
    	(target_delegate_store_registers)
    	(target_delegate_stopped_by_watchpoint)
    	(target_delegate_stopped_data_address)
    	(target_delegate_xfer_partial): Declare.

commit c4f717e32f7cfdad7472dc8ed2f47105875f23cc
Author: Tom Tromey <tromey@redhat.com>
Date:   Tue Jul 9 09:48:09 2013 -0600

    fix latent bugs in ui-out.c
    
    The destructor code in ui-out.c has a latent bug, which is hidden by
    the fact that nothing uses this right now.  This patch fixes the
    problem.  The bug is that we don't always clear a pointer in the
    ui-out object, leading to bad a free.
    
    	* ui-out.c (clear_table, ui_out_new): Clear uiout->table.id.

commit 17182bb5487760d28ed38f35d438df86cea2a0de
Author: Tom Tromey <tromey@redhat.com>
Date:   Tue Jul 30 09:22:07 2013 -0600

    add README.archer

commit f481f474696ffbf874d1f9c97371e7bfcb6a47b3
Author: Tom Tromey <tromey@redhat.com>
Date:   Fri Aug 2 16:41:07 2013 +0000

    fix PR symtab/15719
    
    This patch fixes PR symtab/15719.
    
    The bug is that "watch -location" crashes on a certain expression.
    
    The problem is that fetch_subexp_value is catching an exception.
    For ordinary watchpoints this is ok; but for location watchpoints,
    it is better for the exception to propagate.
    
    Built and regtested on x86-64 Fedora 18.
    New test case included.
    
    	PR symtab/15719:
    	* breakpoint.c (update_watchpoint, watchpoint_check)
    	(watch_command_1): Update.
    	* eval.c (fetch_subexp_value): Add "preserve_errors"
    	parameter.
    	* ppc-linux-nat.c (check_condition): Update.
    	* value.h (fetch_subexp_value): Update.
    
    	* gdb.base/watchpoint.c (struct foo5): New.
    	(nullptr): New global.
    	* gdb.base/watchpoint.exp (test_watch_location): Add test.

-----------------------------------------------------------------------

Summary of changes:
 bfd/ChangeLog                                     |    6 +
 bfd/elf32-arm.c                                   |   15 +-
 bfd/version.h                                     |    2 +-
 gdb/ChangeLog                                     |  163 +
 gdb/breakpoint.c                                  |    6 +-
 gdb/cli/cli-interp.c                              |    1 -
 gdb/cli/cli-script.c                              |    3 -
 gdb/dwarf2read.c                                  |  256 +-
 gdb/eval.c                                        |   18 +-
 gdb/exceptions.c                                  |   22 -
 gdb/exceptions.h                                  |    5 -
 gdb/linespec.c                                    |   61 +-
 gdb/main.c                                        |    6 +-
 gdb/mi/mi-cmd-stack.c                             |   79 +-
 gdb/mi/mi-interp.c                                |   18 +-
 gdb/mi/mi-main.c                                  |    2 +
 gdb/monitor.c                                     |    2 +-
 gdb/nto-procfs.c                                  |    2 +-
 gdb/ppc-linux-nat.c                               |    4 +-
 gdb/remote-fileio.c                               |    2 +-
 gdb/remote-mips.c                                 |   20 +-
 gdb/remote.c                                      |    4 +-
 gdb/symtab.c                                      |  196 +-
 gdb/symtab.h                                      |    8 +-
 gdb/target.c                                      |    2 +-
 gdb/testsuite/ChangeLog                           |   60 +
 gdb/testsuite/gdb.base/func-ptr.c                 |   30 +
 gdb/testsuite/gdb.base/func-ptr.exp               |   30 +
 gdb/testsuite/gdb.base/setshow.exp                |   31 +-
 gdb/testsuite/gdb.base/watchpoint.c               |    7 +
 gdb/testsuite/gdb.base/watchpoint.exp             |    3 +
 gdb/testsuite/gdb.dwarf2/fission-mix.c            |   33 +
 gdb/testsuite/gdb.dwarf2/fission-mix.exp          |   46 +
 gdb/testsuite/gdb.dwarf2/fission-mix.h            |   23 +
 gdb/testsuite/gdb.dwarf2/fission-mix2.c           |   27 +
 gdb/testsuite/gdb.dwarf2/pieces-optimized-out.S   |  548 ++++
 gdb/testsuite/gdb.dwarf2/pieces-optimized-out.c   |   47 +
 gdb/testsuite/gdb.dwarf2/pieces-optimized-out.exp |   50 +
 gdb/testsuite/gdb.python/py-sync-interp.c         |   46 +
 gdb/testsuite/gdb.python/py-sync-interp.exp       |   59 +
 gdb/testsuite/gdb.trace/backtrace.exp             |   92 +-
 gdb/top.c                                         |   19 +-
 gdb/tracepoint.c                                  |    6 +
 gdb/utils.c                                       |   10 +-
 gdb/utils.h                                       |    8 -
 gdb/valops.c                                      |    4 +-
 gdb/value.c                                       |   10 +-
 gdb/value.h                                       |    3 +-
 include/opcode/ChangeLog                          |   32 +
 include/opcode/mips.h                             |  193 +-
 opcodes/ChangeLog                                 |   73 +
 opcodes/micromips-opc.c                           | 1455 +++++-----
 opcodes/mips-dis.c                                |   16 +-
 opcodes/mips-opc.c                                | 3408 ++++++++++-----------
 opcodes/mips16-opc.c                              |  381 ++--
 opcodes/ppc-dis.c                                 |   39 +-
 56 files changed, 4515 insertions(+), 3177 deletions(-)
 create mode 100644 gdb/testsuite/gdb.base/func-ptr.c
 create mode 100644 gdb/testsuite/gdb.base/func-ptr.exp
 create mode 100644 gdb/testsuite/gdb.dwarf2/fission-mix.c
 create mode 100644 gdb/testsuite/gdb.dwarf2/fission-mix.exp
 create mode 100644 gdb/testsuite/gdb.dwarf2/fission-mix.h
 create mode 100644 gdb/testsuite/gdb.dwarf2/fission-mix2.c
 create mode 100644 gdb/testsuite/gdb.dwarf2/pieces-optimized-out.S
 create mode 100644 gdb/testsuite/gdb.dwarf2/pieces-optimized-out.c
 create mode 100644 gdb/testsuite/gdb.dwarf2/pieces-optimized-out.exp
 create mode 100644 gdb/testsuite/gdb.python/py-sync-interp.c
 create mode 100644 gdb/testsuite/gdb.python/py-sync-interp.exp

First 500 lines of diff:
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 62cb270..3df9e8e 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2013-07-31  John Tytgat  <john@bass-software.com>
+
+	PR ld/15787
+	* elf32-arm.c (elf32_arm_final_link_relocate): Base SB on the
+	output section VMA.
+
 2013-07-28  Maciej W. Rozycki  <macro@linux-mips.org>
 
 	* elf64-hppa.c (elf64_hppa_finish_dynamic_sections)
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index 8f88839..4616ae9 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -9852,10 +9852,8 @@ elf32_arm_final_link_relocate (reloc_howto_type *           howto,
 	bfd_vma insn = bfd_get_32 (input_bfd, hit_data);
 	bfd_vma pc = input_section->output_section->vma
 		     + input_section->output_offset + rel->r_offset;
-	/* sb should be the origin of the *segment* containing the symbol.
-	   It is not clear how to obtain this OS-dependent value, so we
-	   make an arbitrary choice of zero.  */
-	bfd_vma sb = 0;
+	/* sb is the origin of the *segment* containing the symbol.  */
+	bfd_vma sb = sym_sec->output_section->vma;
 	bfd_vma residual;
 	bfd_vma g_n;
 	bfd_signed_vma signed_value;
@@ -9988,7 +9986,8 @@ elf32_arm_final_link_relocate (reloc_howto_type *           howto,
 	bfd_vma insn = bfd_get_32 (input_bfd, hit_data);
 	bfd_vma pc = input_section->output_section->vma
 		     + input_section->output_offset + rel->r_offset;
-	bfd_vma sb = 0; /* See note above.  */
+	/* sb is the origin of the *segment* containing the symbol.  */
+	bfd_vma sb = sym_sec->output_section->vma;
 	bfd_vma residual;
 	bfd_signed_vma signed_value;
 	int group = 0;
@@ -10071,7 +10070,8 @@ elf32_arm_final_link_relocate (reloc_howto_type *           howto,
 	bfd_vma insn = bfd_get_32 (input_bfd, hit_data);
 	bfd_vma pc = input_section->output_section->vma
 		     + input_section->output_offset + rel->r_offset;
-	bfd_vma sb = 0; /* See note above.  */
+	/* sb is the origin of the *segment* containing the symbol.  */
+	bfd_vma sb = sym_sec->output_section->vma;
 	bfd_vma residual;
 	bfd_signed_vma signed_value;
 	int group = 0;
@@ -10154,7 +10154,8 @@ elf32_arm_final_link_relocate (reloc_howto_type *           howto,
 	bfd_vma insn = bfd_get_32 (input_bfd, hit_data);
 	bfd_vma pc = input_section->output_section->vma
 		     + input_section->output_offset + rel->r_offset;
-	bfd_vma sb = 0; /* See note above.  */
+	/* sb is the origin of the *segment* containing the symbol.  */
+	bfd_vma sb = sym_sec->output_section->vma;
 	bfd_vma residual;
 	bfd_signed_vma signed_value;
 	int group = 0;
diff --git a/bfd/version.h b/bfd/version.h
index 3740357..2cabd26 100644
--- a/bfd/version.h
+++ b/bfd/version.h
@@ -1,4 +1,4 @@
-#define BFD_VERSION_DATE 20130729
+#define BFD_VERSION_DATE 20130802
 #define BFD_VERSION @bfd_version@
 #define BFD_VERSION_STRING  @bfd_version_package@ @bfd_version_string@
 #define REPORT_BUGS_TO @report_bugs_to@
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 519e488..af34dec 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,166 @@
+2013-08-02  Tom Tromey  <tromey@redhat.com>
+
+	PR symtab/15719:
+	* breakpoint.c (update_watchpoint, watchpoint_check)
+	(watch_command_1): Update.
+	* eval.c (fetch_subexp_value): Add "preserve_errors"
+	parameter.
+	* ppc-linux-nat.c (check_condition): Update.
+	* value.h (fetch_subexp_value): Update.
+
+2013-08-02  Andrew Burgess  <aburgess@broadcom.com>
+
+	* mi/mi-interp.c (mi_interpreter_resume): Remove call to
+	add_file_handler.
+
+2013-08-01  Doug Evans  <dje@google.com>
+
+	PR symtab/15691
+	* dwarf2read.c (struct dwarf2_per_cu_data): New member tu_read.
+	(fill_in_sig_entry_from_dwo_entry): Reorganize asserts.
+	Add assert of sig_entry->dwo_unit == NULL.
+	(lookup_dwo_signatured_type): Don't assign TU to a DWO if the TU
+	had already been read.
+	(read_signatured_type): Set per_cu.tu_read.
+
+	PR symtab/15695
+	* valops.c (value_struct_elt): Add missing call to check_typedef.
+	(value_find_oload_method_list): Ditto.
+
+	* symtab.c (do_free_search_symbols_cleanup): Change arg to,
+	effectively, struct symbol_search **.
+	(make_cleanup_free_search_symbols): Change arg to struct
+	symbol_search **.  All callers updated.
+	(compare_search_syms): Compare symtab file name and block as well.
+	(search_symbols_equal): New function.
+	(sort_search_symbols_remove_dups): Renamed from sort_search_symbols.
+	New args new_head, new_tail.  Result is now void.  Remove dups after
+	sorting the symbols.
+	(search_symbols): Sort all found symbols once, after all have been
+	found, and remove duplicates.  Simplify cleanup tracking of result.
+	* symtab.h (make_cleanup_free_search_symbols): Update prototype.
+
+	Further workarounds for binutils/15021.
+	* dwarf2read.c (recursively_compute_inclusions): Change type of result
+	parameter to VEC (symtab_ptr) **.  New parameter all_type_symtabs.
+	Watch for duplicate symtabs coming from type units.
+	(compute_symtab_includes): Update call to
+	recursively_compute_inclusions. Build vector of included symtabs
+	instead of per_cus.
+	* symtab.h (symtab_ptr): New typedef.
+	(DEF_VEC_P (symtab_ptr)): New VEC type.
+	* linespec.c (symtab_p): Delete.  All uses updated to use symtab_ptr
+	instead.
+
+2013-08-01  Andrew Burgess  <aburgess@broadcom.com>
+
+	* cli/cli-script.c (script_from_file): Remove use of
+	error_pre_print.
+	* main.c (captured_main): Remove use of error_pre_print and
+	quit_pre_print.
+	* utils.c (error_pre_print, quit_pre_print): Remove.
+	* utils.h (error_pre_print, quit_pre_print): Likewise.
+
+2013-08-01  Yao Qi  <yao@codesourcery.com>
+
+	* mi/mi-cmd-stack.c (mi_cmd_stack_list_locals): Parse argv
+	with mi_getopt.
+	(mi_cmd_stack_list_variables): Likewise.
+
+2013-07-31  Andrew Burgess  <aburgess@broadcom.com>
+
+	* exceptions.c (deprecated_throw_reason): Remove.
+	* exceptions.h (deprecated_throw_reason): Remove.
+
+2013-07-31  Andrew Burgess  <aburgess@broadcom.com>
+
+	* remote-mips.c (mips_error): Replace use of
+	deprecated_throw_reason with throw_verror.  Use the error message
+	passed to mips_error as the error message for throw_verror.
+
+2013-07-31  Andrew Burgess  <aburgess@broadcom.com>
+
+	* monitor.c (monitor_interrupt_query): Replace use of
+	deprecated_throw_reason with quit.
+	* nto-procfs.c (interrupt_query): Likewise.
+	* remote-fileio.c (remote_fileio_sig_exit): Likewise.
+	* remote-mips.c (mips_kill): Likewise.
+	* remote.c (interrupt_query): Likewise.
+
+2013-07-31  Andrew Burgess  <aburgess@broadcom.com>
+
+	* utils.c (internal_verror): Replace use of deprecated_throw_reason
+	with call to fatal.
+
+2013-07-31  Pedro Alves  <pedro@codesourcery.com>
+	    Yao Qi  <yao@codesourcery.com>
+
+	* tracepoint.c (trace_dump_command): Select the current frame.
+
+2013-07-30  Doug Evans  <dje@google.com>
+
+	* dwarf2read.c (process_queue): Add type signature to debug output.
+
+2013-07-30  Andrew Burgess  <aburgess@broadcom.com>
+
+	* value.c (value_fetch_lazy): Mark optimized out values as such
+	rather than raising an error.
+
+2013-07-30  Andrew Burgess  <aburgess@broadcom.com>
+
+	* value.c (value_fetch_lazy): Ensure parent value is not lazy
+	before checking which bits of the parent, not the child, value are
+	valid.
+
+2013-07-30  Muhammad Bilal  <mbilal@codesorcery.com>
+
+	PR gdb/15715
+	* top.c: Include "filenames.h".
+	(set_history_filename): New function.
+	(init_main): Install it as set hook of the "set history filename"
+	command.
+
+2013-07-30  Sanimir Agovic  <sanimir.agovic@intel.com>
+
+	* dwarf2read.c (dwarf2_get_ref_die_offset): Constify struct
+	attribute parameter.
+	(dwarf2_const_value_data): Constify struct attribute parameter.
+	(dwarf2_const_value): Constify struct attribute parameter.
+	(dwarf2_const_value_attr): Constify struct attribute parameter.
+	(lookup_die_type): Constify struct attribute parameter.
+	(dwarf2_get_attr_constant_value): Constify struct attribute parameter.
+	(follow_die_ref_or_sig): Constify struct attribute parameter.
+	(follow_die_ref): Constify struct attribute parameter.
+	(follow_die_sig): Constify struct attribute parameter.
+	(get_DW_AT_signature_type): Constify struct attribute parameter.
+	(get_type_unit_group): Constify struct attribute parameter.
+	(fill_in_loclist_baton): Constify struct attribute parameter.
+	(dwarf2_symbol_mark_computed): Constify struct attribute parameter.
+	(type_unit_group): Constify struct attribute parameter.
+
+2013-07-30  Sanimir Agovic  <sanimir.agovic@intel.com>
+
+	* dwarf2read.c (attr_form_is_block): Make argument const.
+	(attr_form_is_section_offset): Make argument const.
+	(attr_form_is_constant): Make argument const.
+	(attr_form_is_ref): Make argument const.
+
+2013-07-30  Sanimir Agovic  <sanimir.agovic@intel.com>
+
+	* dwarf2read.c (attr_is_ref): Rename to attr_form_is_ref.
+	All uses updated.
+	(attr_form_is_ref): Moved below attr_form_is_constant.
+
+2013-07-29  Doug Evans  <dje@google.com>
+
+	* main.c (captured_command_loop): Tweak comment.
+
+	* target.c (target_async_permitted_1): Fix comment.
+
+	* symtab.c (iterate_over_some_symtabs): Add comment.
+
+	* symtab.c (iterate_over_some_symtabs): Fix indentation.
+
 2013-07-27  Yao Qi  <yao@codesourcery.com>
 
 	* NEWS: Mention that GDBserver now supports hardware
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index 1e89407..eec7b7c 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -1807,7 +1807,7 @@ update_watchpoint (struct watchpoint *b, int reparse)
       struct value *val_chain, *v, *result, *next;
       struct program_space *frame_pspace;
 
-      fetch_subexp_value (b->exp, &pc, &v, &result, &val_chain);
+      fetch_subexp_value (b->exp, &pc, &v, &result, &val_chain, 0);
 
       /* Avoid setting b->val if it's already set.  The meaning of
 	 b->val is 'the last value' user saw, and we should update
@@ -4822,7 +4822,7 @@ watchpoint_check (void *p)
 	return WP_VALUE_CHANGED;
 
       mark = value_mark ();
-      fetch_subexp_value (b->exp, &pc, &new_val, NULL, NULL);
+      fetch_subexp_value (b->exp, &pc, &new_val, NULL, NULL, 0);
 
       /* We use value_equal_contents instead of value_equal because
 	 the latter coerces an array to a pointer, thus comparing just
@@ -11010,7 +11010,7 @@ watch_command_1 (const char *arg, int accessflag, int from_tty,
 
   exp_valid_block = innermost_block;
   mark = value_mark ();
-  fetch_subexp_value (exp, &pc, &val, &result, NULL);
+  fetch_subexp_value (exp, &pc, &val, &result, NULL, just_location);
 
   if (just_location)
     {
diff --git a/gdb/cli/cli-interp.c b/gdb/cli/cli-interp.c
index ef1e65b..1003cc7 100644
--- a/gdb/cli/cli-interp.c
+++ b/gdb/cli/cli-interp.c
@@ -25,7 +25,6 @@
 #include "top.h"		/* for "execute_command" */
 #include "gdb_string.h"
 #include "exceptions.h"
-#include "target.h"
 
 struct ui_out *cli_uiout;
 
diff --git a/gdb/cli/cli-script.c b/gdb/cli/cli-script.c
index d35f42f..6ea3243 100644
--- a/gdb/cli/cli-script.c
+++ b/gdb/cli/cli-script.c
@@ -1636,9 +1636,6 @@ script_from_file (FILE *stream, const char *file)
   old_cleanups = make_cleanup (source_cleanup_lines, &old_lines);
   source_line_number = 0;
   source_file_name = file;
-  /* This will get set every time we read a line.  So it won't stay ""
-     for long.  */
-  error_pre_print = "";
 
   {
     volatile struct gdb_exception e;
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 04993c2..cb77386 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -558,6 +558,16 @@ struct dwarf2_per_cu_data
      attributes in the stub.  */
   unsigned int reading_dwo_directly : 1;
 
+  /* Non-zero if the TU has been read.
+     This is used to assist the "Stay in DWO Optimization" for Fission:
+     When reading a DWO, it's faster to read TUs from the DWO instead of
+     fetching them from random other DWOs (due to comdat folding).
+     If the TU has already been read, the optimization is unnecessary
+     (and unwise - we don't want to change where gdb thinks the TU lives
+     "midflight").
+     This flag is only valid if is_debug_types is true.  */
+  unsigned int tu_read : 1;
+
   /* The section this CU/TU lives in.
      If the DIE refers to a DWO file, this is always the original die,
      not the DWO file.  */
@@ -1452,10 +1462,10 @@ static struct symbol *new_symbol (struct die_info *, struct type *,
 static struct symbol *new_symbol_full (struct die_info *, struct type *,
 				       struct dwarf2_cu *, struct symbol *);
 
-static void dwarf2_const_value (struct attribute *, struct symbol *,
+static void dwarf2_const_value (const struct attribute *, struct symbol *,
 				struct dwarf2_cu *);
 
-static void dwarf2_const_value_attr (struct attribute *attr,
+static void dwarf2_const_value_attr (const struct attribute *attr,
 				     struct type *type,
 				     const char *name,
 				     struct obstack *obstack,
@@ -1476,7 +1486,7 @@ static void set_descriptive_type (struct type *, struct die_info *,
 static struct type *die_containing_type (struct die_info *,
 					 struct dwarf2_cu *);
 
-static struct type *lookup_die_type (struct die_info *, struct attribute *,
+static struct type *lookup_die_type (struct die_info *, const struct attribute *,
 				     struct dwarf2_cu *);
 
 static struct type *read_type_die (struct die_info *, struct dwarf2_cu *);
@@ -1608,29 +1618,27 @@ static void dump_die_1 (struct ui_file *, int level, int max_level,
 static void store_in_ref_table (struct die_info *,
 				struct dwarf2_cu *);
 
-static int is_ref_attr (struct attribute *);
-
-static sect_offset dwarf2_get_ref_die_offset (struct attribute *);
+static sect_offset dwarf2_get_ref_die_offset (const struct attribute *);
 
-static LONGEST dwarf2_get_attr_constant_value (struct attribute *, int);
+static LONGEST dwarf2_get_attr_constant_value (const struct attribute *, int);
 
 static struct die_info *follow_die_ref_or_sig (struct die_info *,
-					       struct attribute *,
+					       const struct attribute *,
 					       struct dwarf2_cu **);
 
 static struct die_info *follow_die_ref (struct die_info *,
-					struct attribute *,
+					const struct attribute *,
 					struct dwarf2_cu **);
 
 static struct die_info *follow_die_sig (struct die_info *,
-					struct attribute *,
+					const struct attribute *,
 					struct dwarf2_cu **);
 
 static struct type *get_signatured_type (struct die_info *, ULONGEST,
 					 struct dwarf2_cu *);
 
 static struct type *get_DW_AT_signature_type (struct die_info *,
-					      struct attribute *,
+					      const struct attribute *,
 					      struct dwarf2_cu *);
 
 static void load_full_type_unit (struct dwarf2_per_cu_data *per_cu);
@@ -1638,7 +1646,7 @@ static void load_full_type_unit (struct dwarf2_per_cu_data *per_cu);
 static void read_signatured_type (struct signatured_type *);
 
 static struct type_unit_group *get_type_unit_group
-    (struct dwarf2_cu *, struct attribute *);
+    (struct dwarf2_cu *, const struct attribute *);
 
 static void build_type_unit_groups (die_reader_func_ftype *, void *);
 
@@ -1651,17 +1659,19 @@ static struct die_info *dwarf_alloc_die (struct dwarf2_cu *, int);
 static void dwarf_decode_macros (struct dwarf2_cu *, unsigned int,
 				 const char *, int);
 
-static int attr_form_is_block (struct attribute *);
+static int attr_form_is_block (const struct attribute *);
+
+static int attr_form_is_section_offset (const struct attribute *);
 
-static int attr_form_is_section_offset (struct attribute *);
+static int attr_form_is_constant (const struct attribute *);
 
-static int attr_form_is_constant (struct attribute *);
+static int attr_form_is_ref (const struct attribute *);
 
 static void fill_in_loclist_baton (struct dwarf2_cu *cu,
 				   struct dwarf2_loclist_baton *baton,
-				   struct attribute *attr);
+				   const struct attribute *attr);
 
-static void dwarf2_symbol_mark_computed (struct attribute *attr,
+static void dwarf2_symbol_mark_computed (const struct attribute *attr,
 					 struct symbol *sym,
 					 struct dwarf2_cu *cu,
 					 int is_block);
@@ -4443,11 +4453,7 @@ fill_in_sig_entry_from_dwo_entry (struct objfile *objfile,
 				  struct signatured_type *sig_entry,
 				  struct dwo_unit *dwo_entry)
 {
-  sig_entry->per_cu.section = dwo_entry->section;
-  sig_entry->per_cu.offset = dwo_entry->offset;
-  sig_entry->per_cu.length = dwo_entry->length;
-  sig_entry->per_cu.reading_dwo_directly = 1;
-  sig_entry->per_cu.objfile = objfile;
+  /* Make sure we're not clobbering something we don't expect to.  */
   gdb_assert (! sig_entry->per_cu.queued);
   gdb_assert (sig_entry->per_cu.cu == NULL);
   gdb_assert (sig_entry->per_cu.v.quick != NULL);
@@ -4455,19 +4461,26 @@ fill_in_sig_entry_from_dwo_entry (struct objfile *objfile,
   gdb_assert (sig_entry->signature == dwo_entry->signature);
   gdb_assert (sig_entry->type_offset_in_section.sect_off == 0);
   gdb_assert (sig_entry->type_unit_group == NULL);
+  gdb_assert (sig_entry->dwo_unit == NULL);
+
+  sig_entry->per_cu.section = dwo_entry->section;
+  sig_entry->per_cu.offset = dwo_entry->offset;
+  sig_entry->per_cu.length = dwo_entry->length;
+  sig_entry->per_cu.reading_dwo_directly = 1;
+  sig_entry->per_cu.objfile = objfile;
   sig_entry->type_offset_in_tu = dwo_entry->type_offset_in_tu;
   sig_entry->dwo_unit = dwo_entry;
 }
 
 /* Subroutine of lookup_signatured_type.
-   Create the signatured_type data structure for a TU to be read in
-   directly from a DWO file, bypassing the stub.
-   We do this for the case where there is no DWP file and we're using
-   .gdb_index: When reading a CU we want to stay in the DWO file containing
-   that CU.  Otherwise we could end up reading several other DWO files (due
-   to comdat folding) to process the transitive closure of all the mentioned
-   TUs, and that can be slow.  The current DWO file will have every type
-   signature that it needs.
+   If we haven't read the TU yet, create the signatured_type data structure
+   for a TU to be read in directly from a DWO file, bypassing the stub.
+   This is the "Stay in DWO Optimization": When there is no DWP file and we're
+   using .gdb_index, then when reading a CU we want to stay in the DWO file
+   containing that CU.  Otherwise we could end up reading several other DWO
+   files (due to comdat folding) to process the transitive closure of all the
+   mentioned TUs, and that can be slow.  The current DWO file will have every
+   type signature that it needs.
    We only do this for .gdb_index because in the psymtab case we already have
    to read all the DWOs to build the type unit groups.  */
 
@@ -4496,8 +4509,13 @@ lookup_dwo_signatured_type (struct dwarf2_cu *cu, ULONGEST sig)
   sig_entry = htab_find (dwarf2_per_objfile->signatured_types, &find_sig_entry);
   if (sig_entry == NULL)
     return NULL;
+
+  /* We can get here with the TU already read, *or* in the process of being
+     read.  Don't reassign it if that's the case.  Also note that if the TU is
+     already being read, it may not have come from a DWO, the program may be
+     a mix of Fission-compiled code and non-Fission-compiled code.  */
   /* Have we already tried to read this TU?  */
-  if (sig_entry->dwo_unit != NULL)
+  if (sig_entry->per_cu.tu_read)
     return sig_entry;
 
   /* Ok, this is the first time we're reading this TU.  */
@@ -5414,7 +5432,7 @@ create_type_unit_group (struct dwarf2_cu *cu, sect_offset line_offset_struct)
    STMT_LIST is a DW_AT_stmt_list attribute.  */
 
 static struct type_unit_group *
-get_type_unit_group (struct dwarf2_cu *cu, struct attribute *stmt_list)
+get_type_unit_group (struct dwarf2_cu *cu, const struct attribute *stmt_list)
 {
   struct tu_stats *tu_stats = &dwarf2_per_objfile->tu_stats;
   struct type_unit_group *tu_group;
@@ -7028,14 +7046,21 @@ process_queue (void)
 	  : (item->per_cu->v.psymtab && !item->per_cu->v.psymtab->readin))
 	{
 	  struct dwarf2_per_cu_data *per_cu = item->per_cu;
+	  char buf[100];
 
-	  if (dwarf2_read_debug)
+	  if (per_cu->is_debug_types)
 	    {
-	      fprintf_unfiltered (gdb_stdlog,
-				  "Expanding symtab of %s at offset 0x%x\n",
-				  per_cu->is_debug_types ? "TU" : "CU",
-				  per_cu->offset.sect_off);
+	      struct signatured_type *sig_type =
+		(struct signatured_type *) per_cu;
+


hooks/post-receive
--
Repository for Project Archer.


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2013-08-02 18:34 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-07-30 17:12 [SCM] tromey/always-async: enable target-async tromey
2013-08-02 18:34 tromey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).