From patchwork Wed Jul 25 16:31:46 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "H.J. Lu" X-Patchwork-Id: 28612 Received: (qmail 33837 invoked by alias); 25 Jul 2018 16:31:51 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 33827 invoked by uid 89); 25 Jul 2018 16:31:51 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-25.4 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.2 spammy=H*RU:209.85.218.67, Hx-spam-relays-external:209.85.218.67 X-HELO: mail-oi0-f67.google.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=B2Zg+QXYDX01jZGeyn5Bn+dbMKcCFQsMZRH/ehjfd4M=; b=VqAQX8SNLcWfVpbJKdj24C/424Rwmh/ZW8OKWCOIddcRaSV21FiG/qRuaaUgPZX7zz AOLP6GX/WqYrD1khSTTmfVu6sv5t/n0fFp9Gw2OF4BnMLF1vohWI7ZUzBW2R6jZRrArp rrwJ3SPbUrMNWA03PgYSpK0gBUJ6iPAOcMLwF3hmOUKGpTL2ghoWFReHgoHdegNRbV1B bYBEmsAbWqPp2Gf7ivdNMboPQ/caJ/UO2yLpmPJm3fb1ssQh7h0RWMhUX6KM1osd2p1L vJCnlr4uyjD30T3ye10kKflRhf/wYyHbGGH4UzuO4VdOhZ3IkOqwaix8kcNkTrTGrMMG TXbg== MIME-Version: 1.0 In-Reply-To: References: <20180721142035.21059-1-hjl.tools@gmail.com> <20180721142035.21059-11-hjl.tools@gmail.com> From: "H.J. Lu" Date: Wed, 25 Jul 2018 09:31:46 -0700 Message-ID: Subject: Re: [PATCH 10/12] Add another test for setcontext To: Florian Weimer Cc: GNU C Library , "Carlos O'Donell" On Wed, Jul 25, 2018 at 9:21 AM, Florian Weimer 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 *’} 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. Reviewed-by: Carlos O'Donell From 70951c51d03623c10485380fcccd3a384dff20d6 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Wed, 25 Jul 2018 09:30:50 -0700 Subject: [PATCH] ia64: Work around incorrect type of IA64 uc_sigmask * sysdeps/unix/sysv/linux/ia64/tst-setcontext4.c: New file. --- .../unix/sysv/linux/ia64/tst-setcontext4.c | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 sysdeps/unix/sysv/linux/ia64/tst-setcontext4.c diff --git a/sysdeps/unix/sysv/linux/ia64/tst-setcontext4.c b/sysdeps/unix/sysv/linux/ia64/tst-setcontext4.c new file mode 100644 index 0000000000..58807e78cb --- /dev/null +++ b/sysdeps/unix/sysv/linux/ia64/tst-setcontext4.c @@ -0,0 +1,24 @@ +/* Work around incorrect type of IA64 uc_sigmask. + Copyright (C) 2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include + +#undef sigismember +#define sigismember(set, signo) sigismember ((const sigset_t *) (set), (signo)) + +#include -- 2.17.1