[PING] Fix amd64->i386 linux syscall restart problem
Commit Message
On 08-07-19 19:00, Kevin Buettner wrote:
>
> On Fri, 21 Jun 2019 08:34:46 +0200
> Tom de Vries <tdevries@suse.de> wrote:
>
>> On 21-05-19 14:59, Tom de Vries wrote:
>>> On 11-04-19 02:16, Kevin Buettner wrote:
>>>> On Wed, 10 Apr 2019 12:42:30 +0100
>>>> Pedro Alves <palves@redhat.com> wrote:
>>>>
>>>>>> Below is a diff showing the new comments. It also includes the
>>>>>> changes which wrap the multi-line expressions in parens.
>>>>>
>>>>> Thanks, that new version of the comment looks great.
>>>>
>>>> It's in now. Thanks for the review.
>>>
>>> Hi,
>>>
>>> the tests fixed by this commit fail on the 8.3 branch (filed as PR24592).
>>>
>>> The commit applies cleanly on the 8.3 branch, and make the tests pass.
>>>
>>> OK to backport?
>>
>> Hi,
>>
>> [ Ping. ]
>>
>> I'm probably missing some context here. It seems sofar there are no
>> commits to the 8.3 branch. AFAIU, a respin release 8.3.1 is targeted for
>> 3 months after 8.3, so around 11th of August.
>>
>> What kind of fixes are acceptable for the respin? Do they have to be
>> regression fixes? Or are functionality fixes like this one also allowed?
>> Who's responsibility is it to backport fixes?
>>
>> Thanks,
>> - Tom
>
> I'm okay with it going into the next point release for 8.3.
Hi Kevin,
I noticed the follow-up commit e90a813d96 "Fix regression caused by
recently added syscall restart code". I reproduced the regression with
the 8.3 branch + commit 3f52fdbcb5, and confirmed that the follow-up
commit fixes it, so I suppose this one is necessary as well.
Since this is the first time I'm pushing something to a gdb release
branch, I'm posting here the two pre-commit-formatted patches for review.
Thanks,
- Tom
Comments
Hi Tom,
Yes, that's right, those two commits are needed. I've looked it over. It
looks good to me.
Kevin
On Fri, 12 Jul 2019 13:42:51 +0200
Tom de Vries <tdevries@suse.de> wrote:
> On 08-07-19 19:00, Kevin Buettner wrote:
> >
> > On Fri, 21 Jun 2019 08:34:46 +0200
> > Tom de Vries <tdevries@suse.de> wrote:
> >
> >> On 21-05-19 14:59, Tom de Vries wrote:
> >>> On 11-04-19 02:16, Kevin Buettner wrote:
> >>>> On Wed, 10 Apr 2019 12:42:30 +0100
> >>>> Pedro Alves <palves@redhat.com> wrote:
> >>>>
> >>>>>> Below is a diff showing the new comments. It also includes the
> >>>>>> changes which wrap the multi-line expressions in parens.
> >>>>>
> >>>>> Thanks, that new version of the comment looks great.
> >>>>
> >>>> It's in now. Thanks for the review.
> >>>
> >>> Hi,
> >>>
> >>> the tests fixed by this commit fail on the 8.3 branch (filed as PR24592).
> >>>
> >>> The commit applies cleanly on the 8.3 branch, and make the tests pass.
> >>>
> >>> OK to backport?
> >>
> >> Hi,
> >>
> >> [ Ping. ]
> >>
> >> I'm probably missing some context here. It seems sofar there are no
> >> commits to the 8.3 branch. AFAIU, a respin release 8.3.1 is targeted for
> >> 3 months after 8.3, so around 11th of August.
> >>
> >> What kind of fixes are acceptable for the respin? Do they have to be
> >> regression fixes? Or are functionality fixes like this one also allowed?
> >> Who's responsibility is it to backport fixes?
> >>
> >> Thanks,
> >> - Tom
> >
> > I'm okay with it going into the next point release for 8.3.
>
> Hi Kevin,
>
> I noticed the follow-up commit e90a813d96 "Fix regression caused by
> recently added syscall restart code". I reproduced the regression with
> the 8.3 branch + commit 3f52fdbcb5, and confirmed that the follow-up
> commit fixes it, so I suppose this one is necessary as well.
>
> Since this is the first time I'm pushing something to a gdb release
> branch, I'm posting here the two pre-commit-formatted patches for review.
>
> Thanks,
> - Tom
>
>
Fix regression caused by recently added syscall restart code
[ Backport of master commit e90a813d96. ]
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:
PR gdb/24592
* linux-x86-low.c (x86_fill_gregset): Don't compile 64-bit
sign extension code on 32-bit builds.
---
gdb/gdbserver/ChangeLog | 6 ++++++
gdb/gdbserver/linux-x86-low.c | 2 ++
2 files changed, 8 insertions(+)
@@ -1,3 +1,9 @@
+2019-05-06 Kevin Buettner <kevinb@redhat.com>
+
+ PR gdb/24592
+ * linux-x86-low.c (x86_fill_gregset): Don't compile 64-bit
+ sign extension code on 32-bit builds.
+
2019-04-10 Kevin Buettner <kevinb@redhat.com>
PR gdb/24592
@@ -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