01917d
http://sourceware.org/ml/gdb-cvs/2013-06/msg00017.html
01917d
01917d
### src/gdb/ChangeLog	2013/06/04 13:02:15	1.15683
01917d
### src/gdb/ChangeLog	2013/06/04 13:10:53	1.15684
01917d
## -1,5 +1,21 @@
01917d
 2013-06-04  Gary Benson  <gbenson@redhat.com>
01917d
 
01917d
+	* target.h (target_ops): New field
01917d
+	"to_augmented_libraries_svr4_read".
01917d
+	(target_augmented_libraries_svr4_read): New macro.
01917d
+	* target.c (update_current_target): Handle
01917d
+	to_augmented_libraries_svr4_read.
01917d
+	* remote.c (remote_state): New field
01917d
+	"augmented_libraries_svr4_read".
01917d
+	(remote_augmented_libraries_svr4_read_feature): New function.
01917d
+	(remote_protocol_features): Add entry for
01917d
+	"augmented-libraries-svr4-read".
01917d
+	(remote_augmented_libraries_svr4_read): New function.
01917d
+	(init_remote_ops): Initialize
01917d
+	remote_ops.to_augmented_libraries_svr4_read.
01917d
+
01917d
+2013-06-04  Gary Benson  <gbenson@redhat.com>
01917d
+
01917d
 	* NEWS: Update.
01917d
 
01917d
 2013-06-04  Gary Benson  <gbenson@redhat.com>
01917d
--- src/gdb/remote.c	2013/05/30 09:29:18	1.552
01917d
+++ src/gdb/remote.c	2013/06/04 13:10:53	1.553
01917d
@@ -361,6 +361,10 @@
01917d
   /* True if the stub can collect strings using tracenz bytecode.  */
01917d
   int string_tracing;
01917d
 
01917d
+  /* True if the stub supports qXfer:libraries-svr4:read with a
01917d
+     non-empty annex.  */
01917d
+  int augmented_libraries_svr4_read;
01917d
+
01917d
   /* Nonzero if the user has pressed Ctrl-C, but the target hasn't
01917d
      responded to that.  */
01917d
   int ctrlc_pending_p;
01917d
@@ -3949,6 +3953,16 @@
01917d
   rs->string_tracing = (support == PACKET_ENABLE);
01917d
 }
01917d
 
01917d
+static void
01917d
+remote_augmented_libraries_svr4_read_feature
01917d
+  (const struct protocol_feature *feature,
01917d
+   enum packet_support support, const char *value)
01917d
+{
01917d
+  struct remote_state *rs = get_remote_state ();
01917d
+
01917d
+  rs->augmented_libraries_svr4_read = (support == PACKET_ENABLE);
01917d
+}
01917d
+
01917d
 static struct protocol_feature remote_protocol_features[] = {
01917d
   { "PacketSize", PACKET_DISABLE, remote_packet_size, -1 },
01917d
   { "qXfer:auxv:read", PACKET_DISABLE, remote_supported_packet,
01917d
@@ -3959,6 +3973,8 @@
01917d
     PACKET_qXfer_libraries },
01917d
   { "qXfer:libraries-svr4:read", PACKET_DISABLE, remote_supported_packet,
01917d
     PACKET_qXfer_libraries_svr4 },
01917d
+  { "augmented-libraries-svr4-read", PACKET_DISABLE,
01917d
+    remote_augmented_libraries_svr4_read_feature, -1 },
01917d
   { "qXfer:memory-map:read", PACKET_DISABLE, remote_supported_packet,
01917d
     PACKET_qXfer_memory_map },
01917d
   { "qXfer:spu:read", PACKET_DISABLE, remote_supported_packet,
01917d
@@ -11439,6 +11455,14 @@
01917d
   return btrace;
01917d
 }
01917d
 
01917d
+static int
01917d
+remote_augmented_libraries_svr4_read (void)
01917d
+{
01917d
+  struct remote_state *rs = get_remote_state ();
01917d
+
01917d
+  return rs->augmented_libraries_svr4_read;
01917d
+}
01917d
+
01917d
 static void
01917d
 init_remote_ops (void)
01917d
 {
01917d
@@ -11561,6 +11585,8 @@
01917d
   remote_ops.to_disable_btrace = remote_disable_btrace;
01917d
   remote_ops.to_teardown_btrace = remote_teardown_btrace;
01917d
   remote_ops.to_read_btrace = remote_read_btrace;
01917d
+  remote_ops.to_augmented_libraries_svr4_read =
01917d
+    remote_augmented_libraries_svr4_read;
01917d
 }
01917d
 
01917d
 /* Set up the extended remote vector by making a copy of the standard
01917d
--- src/gdb/target.c	2013/05/14 20:33:36	1.335
01917d
+++ src/gdb/target.c	2013/06/04 13:10:53	1.336
01917d
@@ -731,6 +731,7 @@
01917d
       INHERIT (to_traceframe_info, t);
01917d
       INHERIT (to_use_agent, t);
01917d
       INHERIT (to_can_use_agent, t);
01917d
+      INHERIT (to_augmented_libraries_svr4_read, t);
01917d
       INHERIT (to_magic, t);
01917d
       INHERIT (to_supports_evaluation_of_breakpoint_conditions, t);
01917d
       INHERIT (to_can_run_breakpoint_commands, t);
01917d
@@ -975,6 +976,9 @@
01917d
   de_fault (to_can_use_agent,
01917d
 	    (int (*) (void))
01917d
 	    return_zero);
01917d
+  de_fault (to_augmented_libraries_svr4_read,
01917d
+	    (int (*) (void))
01917d
+	    return_zero);
01917d
   de_fault (to_execution_direction, default_execution_direction);
01917d
 
01917d
 #undef de_fault
01917d
--- src/gdb/target.h	2013/05/14 20:33:36	1.262
01917d
+++ src/gdb/target.h	2013/06/04 13:10:53	1.263
01917d
@@ -941,6 +941,10 @@
01917d
        (inclusive) to function END (exclusive).  */
01917d
     void (*to_call_history_range) (ULONGEST begin, ULONGEST end, int flags);
01917d
 
01917d
+    /* Nonzero if TARGET_OBJECT_LIBRARIES_SVR4 may be read with a
01917d
+       non-empty annex.  */
01917d
+    int (*to_augmented_libraries_svr4_read) (void);
01917d
+
01917d
     int to_magic;
01917d
     /* Need sub-structure for target machine related rather than comm related?
01917d
      */
01917d
@@ -1809,6 +1813,9 @@
01917d
 #define target_can_use_agent() \
01917d
   (*current_target.to_can_use_agent) ()
01917d
 
01917d
+#define target_augmented_libraries_svr4_read() \
01917d
+  (*current_target.to_augmented_libraries_svr4_read) ()
01917d
+
01917d
 /* Command logging facility.  */
01917d
 
01917d
 #define target_log_command(p)						\