public inbox for gdb-cvs@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb] Fix regression caused by recently added syscall restart code
@ 2019-05-06 18:01 Kevin Buettner
  0 siblings, 0 replies; only message in thread
From: Kevin Buettner @ 2019-05-06 18:01 UTC (permalink / raw)
  To: gdb-cvs

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=e90a813d9660bb9d951963fd7ae03ce004a52ad6

commit e90a813d9660bb9d951963fd7ae03ce004a52ad6
Author: Kevin Buettner <kevinb@redhat.com>
Date:   Mon May 6 10:28:44 2019 -0700

    Fix regression caused by recently added syscall restart code
    
    This line of code...
    
           *(int64_t *) ptr = *(int32_t *) ptr;
    
    ...in linux-x86-low.c is not needed (and does not work correctly)
    within a 32-bit executable.  I added an __x86_64__ ifdef (which is
    used extensively elsewhere in the file for like purposes) to prevent
    this code from being included in 32-bit builds.
    
    It fixes the following regressions when running on native
    i686-pc-linux-gnu:
    
    FAIL: gdb.server/abspath.exp: continue to main
    FAIL: gdb.server/connect-without-multi-process.exp: multiprocess=auto: continue to main
    FAIL: gdb.server/connect-without-multi-process.exp: multiprocess=off: continue to main
    FAIL: gdb.server/ext-restart.exp: restart: run to main
    FAIL: gdb.server/ext-restart.exp: run to main
    FAIL: gdb.server/ext-run.exp: continue to main
    FAIL: gdb.server/ext-wrapper.exp: print d
    FAIL: gdb.server/ext-wrapper.exp: restart: print d
    FAIL: gdb.server/ext-wrapper.exp: restart: run to marker
    FAIL: gdb.server/ext-wrapper.exp: run to marker
    FAIL: gdb.server/no-thread-db.exp: continue to breakpoint: after tls assignment
    FAIL: gdb.server/reconnect-ctrl-c.exp: first: stop with control-c
    FAIL: gdb.server/reconnect-ctrl-c.exp: second: stop with control-c
    FAIL: gdb.server/run-without-local-binary.exp: run test program until the end
    FAIL: gdb.server/server-kill.exp: continue to breakpoint: after server_pid assignment
    FAIL: gdb.server/server-kill.exp: tstatus
    FAIL: gdb.server/server-run.exp: continue to main
    
    gdb/gdbserver/ChangeLog:
    
    	* linux-x86-low.c (x86_fill_gregset): Don't compile 64-bit
    	sign extension code on 32-bit builds.

Diff:
---
 gdb/gdbserver/ChangeLog       | 5 +++++
 gdb/gdbserver/linux-x86-low.c | 2 ++
 2 files changed, 7 insertions(+)

diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index 82278e7..2e98158 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,3 +1,8 @@
+2019-05-06  Kevin Buettner  <kevinb@redhat.com>
+
+	* linux-x86-low.c (x86_fill_gregset): Don't compile 64-bit
+	sign extension code on 32-bit builds.
+
 2019-05-03  Eli Zaretskii  <eliz@gnu.org>
 
 	* remote-utils.c:
diff --git a/gdb/gdbserver/linux-x86-low.c b/gdb/gdbserver/linux-x86-low.c
index dd76731..adddfe7 100644
--- a/gdb/gdbserver/linux-x86-low.c
+++ b/gdb/gdbserver/linux-x86-low.c
@@ -339,6 +339,7 @@ x86_fill_gregset (struct regcache *regcache, void *buf)
   collect_register_by_name (regcache, "orig_eax",
 			    ((char *) buf) + ORIG_EAX * REGSIZE);
 
+#ifdef __x86_64__
   /* Sign extend EAX value to avoid potential syscall restart
      problems. 
 
@@ -351,6 +352,7 @@ x86_fill_gregset (struct regcache *regcache, void *buf)
 
       *(int64_t *) ptr = *(int32_t *) ptr;
     }
+#endif
 }
 
 static void


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2019-05-06 18:01 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-06 18:01 [binutils-gdb] Fix regression caused by recently added syscall restart code Kevin Buettner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).