This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] powerpc: Add missing insn in swapcontext [BZ #20004]
- From: "Paul E. Murphy" <murphyp at linux dot vnet dot ibm dot com>
- To: "Carlos O'Donell" <carlos at redhat dot com>, "libc-alpha at sourceware dot org" <libc-alpha at sourceware dot org>, Tulio Magno Quites Machado Filho <tuliom at linux dot vnet dot ibm dot com>
- Date: Thu, 28 Apr 2016 11:39:09 -0500
- Subject: Re: [PATCH] powerpc: Add missing insn in swapcontext [BZ #20004]
- Authentication-results: sourceware.org; auth=none
- References: <57221FF1 dot 7030902 at linux dot vnet dot ibm dot com> <57222E1F dot 1050506 at redhat dot com>
On 04/28/2016 10:37 AM, Carlos O'Donell wrote:
> On 04/28/2016 10:36 AM, Paul E. Murphy wrote:
>> A missing instruction was discovered in the compat version of
>> swapcontext while running the GCC test suite.
>>
>> 2016-04-28 Paul E. Murphy <murphyp@linux.vnet.ibm.com>
>> Segher Boessenkool <segher@gcc.gnu.org>
>>
>> [BZ #20004]
>> * sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S:
>> (__novec_swapcontext): Add missing load.
>> ---
>> sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
>> index a166dcc..a05a9cc 100644
>> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
>> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
>> @@ -163,6 +163,7 @@ ENTRY(__novec_swapcontext)
>> cmpdi r0,0
>> bne L(nv_do_sigret)
>>
>> + ld r8,.LC__dl_hwcap@toc(r2)
>> # ifdef SHARED
>> /* Load _rtld-global._dl_hwcap. */
>> ld r8,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET(r8)
>>
>
> How did you test this?
A slightly hacked up, debate-ably correct, example provided by the
makecontext man page, which is modified to explicitly call the old
version. I directly linked the generated object files.
Without this patch it segfaults. With it, seemingly expected output.