From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.1 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 20486 invoked from network); 19 May 2021 05:01:33 -0000 Received: from mother.openwall.net (195.42.179.200) by inbox.vuxu.org with ESMTPUTF8; 19 May 2021 05:01:33 -0000 Received: (qmail 1469 invoked by uid 550); 19 May 2021 05:01:30 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Reply-To: musl@lists.openwall.com Received: (qmail 1439 invoked from network); 19 May 2021 05:01:30 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:subject:to:cc:references:in-reply-to:mime-version :message-id:content-transfer-encoding; bh=esnhAa6zxT8tZsaixbuTSr+w0I6APKP+rmmO7EtAWv8=; b=Nwmr/n+uZ+qIVnNcGfFrwhhAiHAr4FxT9EBnK3cxa7KO+Ne3CBxUItj4lbX/egY6In XnT8HOLih6Z0kqPzx6lbFw3AihXuE3g1UUuSEKFoNJucJrfbmVX/QyFJgZU5sVUdUx9f GEZ9NV76PX4k+eZpjBlEaZsKCOFK4taOBuCeqQQ8L0q/ey3abVbuWJHFH4I5SKDM9zTP ENzgzoSNsmgM+qKso3YNJWneeO8bPLO9AXUno7lxcbEZh06+pel3sxPYwhE+0Es5NUrX XnHin1HPVJOv1AKHB0IQFhU5yOuVIwj7Rqok6QD93uCURq2OXAILT22bTLkmb4HJri3P hT2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:subject:to:cc:references:in-reply-to :mime-version:message-id:content-transfer-encoding; bh=esnhAa6zxT8tZsaixbuTSr+w0I6APKP+rmmO7EtAWv8=; b=hYHlpmrpkdKV6gDlk2oXowNtliPOh4ppwfg23iNBl7/v6XmiMJu1fgUZ9VRxfIxaBQ S8fjQf9zpzcMRP1Ptgmgoh2UFpCFvnRzykcXShfm1gIt/GdRfIcGryBnHK212MPAZepH G7AbPKN85M5GXEC6PPQa6kB+qy+p5IoTHc5r+wiFmDWijbpiT675vT92UixFGpYfsjw8 95RFIiuJqkqXSvRtPd59UP7tTcIJ9j2pxlrPy1uOmWxEvwHY5j8NXXkrqP+6Wl3hGD+s eofE8dtBa8A/DRTYQN6253XYXFpxjQlPi7xjIzg5NrfBslNnmk5o3O3NeZivrzuu5z2Y rz0w== X-Gm-Message-State: AOAM531CJpy/KfPgNuihs+9LWLN2HGPPJ7LNtMjx7LacTkpUarpOIJ36 xUytoBSAIgafF+AtnKpAosg= X-Google-Smtp-Source: ABdhPJyxD/YfxWVyE3DDoF4YolxhuSLaZtlKUGtlNvp/sulWv5s9PfeXY/SVs3u/C7ewBdu/bBIG1g== X-Received: by 2002:a63:5641:: with SMTP id g1mr6412836pgm.351.1621400477693; Tue, 18 May 2021 22:01:17 -0700 (PDT) Date: Wed, 19 May 2021 15:01:12 +1000 From: Nicholas Piggin To: "Dmitry V. Levin" , Michael Ellerman Cc: libc-alpha@sourceware.org, libc-dev@lists.llvm.org, linux-api@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, Matheus Castanho , musl@lists.openwall.com References: <20200611081203.995112-1-npiggin@gmail.com> <20210518231331.GA8464@altlinux.org> <1621385544.nttlk5qugb.astroid@bobo.none> In-Reply-To: <1621385544.nttlk5qugb.astroid@bobo.none> MIME-Version: 1.0 Message-Id: <1621400263.gf0mbqhkrf.astroid@bobo.none> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [musl] Re: Linux powerpc new system call instruction and ABI Excerpts from Nicholas Piggin's message of May 19, 2021 12:50 pm: > Excerpts from Dmitry V. Levin's message of May 19, 2021 9:13 am: >> Hi, >>=20 >> On Thu, Jun 11, 2020 at 06:12:01PM +1000, Nicholas Piggin wrote: >> [...] >>> - Error handling: The consensus among kernel, glibc, and musl is to mov= e to >>> using negative return values in r3 rather than CR0[SO]=3D1 to indicat= e error, >>> which matches most other architectures, and is closer to a function c= all. >>=20 >> Apparently, the patchset merged by commit v5.9-rc1~100^2~164 was >> incomplete: all functions defined in arch/powerpc/include/asm/ptrace.h a= nd >> arch/powerpc/include/asm/syscall.h that use ccr are broken when scv is u= sed. >> This includes syscall_get_error() and all its users including >> PTRACE_GET_SYSCALL_INFO API, which in turn makes strace unusable >> when scv is used. >>=20 >> See also https://bugzilla.redhat.com/1929836 >=20 > I see, thanks. Using latest strace from github.com, the attached kernel > patch makes strace -k check results a lot greener. >=20 > Some of the remaining failing tests look like this (I didn't look at all > of them yet): >=20 > signal(SIGUSR1, 0xfacefeeddeadbeef) =3D 0 (SIG_DFL) > write(1, "signal(SIGUSR1, 0xfacefeeddeadbe"..., 50signal(SIGUSR1, 0xfacef= eeddeadbeef) =3D 0 (SIG_DFL) > ) =3D 50 > signal(SIGUSR1, SIG_IGN) =3D 0xfacefeeddeadbeef > write(2, "errno2name.c:461: unknown errno "..., 41errno2name.c:461: unkno= wn errno 559038737) =3D 41 > write(2, ": Unknown error 559038737\n", 26: Unknown error 559038737 > ) =3D 26 > exit_group(1) =3D ? >=20 > I think the problem is glibc testing for -ve, but it should be comparing > against -4095 (+cc Matheus) >=20 > #define RET_SCV \ > cmpdi r3,0; \ > bgelr+; \ > neg r3,r3; This glibc patch at least gets that signal test working. Haven't run the=20 full suite yet because of trouble making it work with a local glibc install... Thanks, Nick --- diff --git a/sysdeps/powerpc/powerpc64/sysdep.h b/sysdeps/powerpc/powerpc64= /sysdep.h index c57bb1c05d..1ea4c3b917 100644 --- a/sysdeps/powerpc/powerpc64/sysdep.h +++ b/sysdeps/powerpc/powerpc64/sysdep.h @@ -398,8 +398,9 @@ LT_LABELSUFFIX(name,_name_end): ; \ #endif =20 #define RET_SCV \ - cmpdi r3,0; \ - bgelr+; \ + li r9,-4095; \ + cmpld r3,r9; \ + bltlr+; \ neg r3,r3; =20 #define RET_SC \