gdbserver: Check r_version < 1 for Linux debugger interface
authorH.J. Lu <hjl.tools@gmail.com>
Mon, 16 Aug 2021 15:18:18 +0000 (08:18 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 17 Aug 2021 13:19:49 +0000 (06:19 -0700)
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.

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

gdbserver/linux-low.cc

index 5c6191d941c3261d829198fc1ac451b050e7bc75..fc7a995351d85a7c75d273d042d8e47bb32ee65a 100644 (file)
@@ -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)
            {
              warning ("unexpected r_debug version %d", r_version);
            }