[PATCH v2] gdbserver: Check r_version < 1 for Linux debugger interface

Simon Marchi simon.marchi@polymtl.ca
Tue Aug 17 13:13:35 GMT 2021


On 2021-08-16 4:30 p.m., H.J. Lu wrote:
> Update gdbserver to check r_version < 1 instead of r_version != 1 so
> that r_version can be bumped for a new field in the glibc debugger
> interface to support multiple namespaces.  Since so far, the gdbserver
> only reads fields defined for r_version == 1, it is compatible with
> r_version >= 1.
> 
> All future glibc debugger interface changes will be backward compatible.
> If there is ever the need for backward incompatible change to the glibc
> debugger interface, a new DT_XXX element will be provided to access the
> new incompatible interface.
> 
> 	PR gdb/11839
> 	* linux-low.cc (linux_process_target::qxfer_libraries_svr4):
> 	Check r_version < 1 instead of r_version != 1.

Note that GDB doesn't use ChangeLogs.  You can use

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=11839

To link to the Bugzilla entry.

> ---
>  gdbserver/linux-low.cc | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/gdbserver/linux-low.cc b/gdbserver/linux-low.cc
> index 5c6191d941c..fc7a995351d 100644
> --- a/gdbserver/linux-low.cc
> +++ b/gdbserver/linux-low.cc
> @@ -6845,7 +6845,7 @@ linux_process_target::qxfer_libraries_svr4 (const char *annex,
>  	  if (linux_read_memory (priv->r_debug + lmo->r_version_offset,
>  				 (unsigned char *) &r_version,
>  				 sizeof (r_version)) != 0
> -	      || r_version != 1)
> +	      || r_version < 1)

This patch LGTM.  As you noted, things break when bumping r_version to 2
because of r_ldsomap, but since there isn't a glibc out there using
r_version == 2, I think that this patch can safely go in right now.

Simon


More information about the Gdb-patches mailing list