This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH] ia64: Work around incorrect type of IA64 uc_sigmask
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Florian Weimer <fweimer at redhat dot com>
- Cc: GNU C Library <libc-alpha at sourceware dot org>, "Carlos O'Donell" <carlos at redhat dot com>
- Date: Wed, 25 Jul 2018 10:00:18 -0700
- Subject: [PATCH] ia64: Work around incorrect type of IA64 uc_sigmask
On Wed, Jul 25, 2018 at 9:31 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Wed, Jul 25, 2018 at 9:21 AM, Florian Weimer <fweimer@redhat.com> wrote:
>> On 07/21/2018 04:20 PM, H.J. Lu wrote:
>>>
>>> + /* check sigmask in old context of swapcontext-call */
>>> + if (sigismember (&oldctx.uc_sigmask, SIGUSR2) != 1)
>>> + {
>>> + puts ("FAIL: SIGUSR2 is not blocked in oldctx.uc_sigmask.");
>>> + exit (1);
>>> + }
>>
>>
>> This breaks on ia64 because uc_sigmask does not have the correct type there:
>>
>> tst-setcontext4.c: In function ‘do_test’:
>> tst-setcontext4.c:202:20: error: passing argument 1 of ‘sigismember’ from
>> incompatible pointer type [-Werror=incompatible-pointer-types]
>> if (sigismember (&oldctx.uc_sigmask, SIGUSR2) != 1)
>> In file included from ../include/signal.h:2,
>> from tst-setcontext4.c:23:
>> ../signal/signal.h:208:41: note: expected ‘const sigset_t *’ {aka ‘const
>> struct <anonymous> *’} but argument is of type ‘long unsigned int *’
>> extern int sigismember (const sigset_t *__set, int __signo)
>> ~~~~~~~~~~~~~~~~^~~~~
>>
>> I don't have a quick solution for this. How important is this part of the
>> test?
>>
>
> I am testing this patch.
It worked:
https://sourceware.org/ml/libc-alpha/2018-07/msg00829.html
OK for master?
--
H.J.