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 + * 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 + * NEWS: Update. 2013-06-04 Gary Benson --- 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) \