Blob Blame History Raw
http://sourceware.org/ml/gdb-cvs/2013-06/msg00017.html

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