From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qk1-x742.google.com (mail-qk1-x742.google.com [IPv6:2607:f8b0:4864:20::742]) by sourceware.org (Postfix) with ESMTPS id 51CB23850435 for ; Tue, 13 Oct 2020 18:14:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 51CB23850435 Received: by mail-qk1-x742.google.com with SMTP id c2so591010qkf.10 for ; Tue, 13 Oct 2020 11:14:13 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:references:autocrypt:subject :message-id:date:user-agent:mime-version:in-reply-to; bh=U0/oVstDzPZzx/KA7tmi4RBIVz6Q19DkM4zRvRUsSfA=; b=qpOeyNya8UdelEScP20nRHVTkmLnx8fFxBg0LM4pOmVb3x0Z0ka8nATLIjlunGA3R9 SG9AIklLBvJ3uJDWL24VxCy0K7vLV749zBJyYXqXn8gD6zvxQWxoNo+4jyzDVvX4AzUo fwuc5XC/uRqWhKoW7nNgL7wpKGVgypEAOPYkwPWCqb6OQtNj90vANuBi3l1jO90md/AP X7EJOMNk7JO8qdYBcQwGMj6SGfTBPkf6jjZdKYClfRnk3kPjNnDNGXhDJCt5/Cl8yJF4 nOQD5q7hTKCAoUOjHAmWdVfq7BOpvd3sZ3KtJo1N+Qj6/GU1VUdtIH2of8SiAGacrEOh 2kEQ== X-Gm-Message-State: AOAM532RQaqfGBG0ej3id4epfBCG5695MBYqClRbjl/lcx6VqHHi1W7u DQ/WIRsayg9PYfSZB4aEgaQgtAKv+gHzEA== X-Google-Smtp-Source: ABdhPJyBbQiISB3XCd28jKAoVyoe3mavvZO1e0BjJtrqA1gLJdIbRCTunMph8zBgFmQdkrAXDODutA== X-Received: by 2002:a37:ad01:: with SMTP id f1mr1305825qkm.5.1602612852637; Tue, 13 Oct 2020 11:14:12 -0700 (PDT) Received: from [192.168.1.4] ([177.194.48.209]) by smtp.googlemail.com with ESMTPSA id r8sm249157qkm.115.2020.10.13.11.14.10 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 13 Oct 2020 11:14:11 -0700 (PDT) From: Adhemerval Zanella To: Lukasz Majewski Cc: libc-alpha@sourceware.org, Alistair Francis References: <20200723194641.1949404-1-adhemerval.zanella@linaro.org> <20200723194641.1949404-16-adhemerval.zanella@linaro.org> <20201006114802.1450d29b@jawa> <99a35800-d0ed-5561-b36b-4416f041ab5d@linaro.org> <331ab260-ef82-8e94-7148-5522fdb6e195@linaro.org> <20201013155838.0e61252b@jawa> <250a2b16-f06a-7215-bb8a-445511a4976f@linaro.org> Autocrypt: addr=adhemerval.zanella@linaro.org; prefer-encrypt=mutual; keydata= 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 Subject: Re: [PATCH 15/16] linux: Add {f}stat{at} y2038 support Message-ID: Date: Tue, 13 Oct 2020 15:14:08 -0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <250a2b16-f06a-7215-bb8a-445511a4976f@linaro.org> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="DFVoYtM6ZRdINkT02BlhFq01klSOkOUov" X-Spam-Status: No, score=-14.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, NICE_REPLY_A, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Oct 2020 18:14:15 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --DFVoYtM6ZRdINkT02BlhFq01klSOkOUov Content-Type: multipart/mixed; boundary="IM14L2FAQtAA3KHwojnB920lbIqweKijc"; protected-headers="v1" From: Adhemerval Zanella To: Lukasz Majewski Cc: libc-alpha@sourceware.org, Alistair Francis Message-ID: Subject: Re: [PATCH 15/16] linux: Add {f}stat{at} y2038 support References: <20200723194641.1949404-1-adhemerval.zanella@linaro.org> <20200723194641.1949404-16-adhemerval.zanella@linaro.org> <20201006114802.1450d29b@jawa> <99a35800-d0ed-5561-b36b-4416f041ab5d@linaro.org> <331ab260-ef82-8e94-7148-5522fdb6e195@linaro.org> <20201013155838.0e61252b@jawa> <250a2b16-f06a-7215-bb8a-445511a4976f@linaro.org> In-Reply-To: <250a2b16-f06a-7215-bb8a-445511a4976f@linaro.org> --IM14L2FAQtAA3KHwojnB920lbIqweKijc Content-Type: text/plain; charset=windows-1252 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 13/10/2020 11:18, Adhemerval Zanella wrote: >=20 >=20 > On 13/10/2020 10:58, Lukasz Majewski wrote: >> Hi Adhemerval, >> >>> On 07/10/2020 09:52, Adhemerval Zanella wrote: >>>> >>>> >>>> On 06/10/2020 06:48, Lukasz Majewski wrote: =20 >>>>> Hi Adhemerval, >>>>> =20 >>>>>> A new struct __stat{64}_t64 type is added with the required >>>>>> __timespec64 time definition. Both non-LFS and LFS support were >>>>>> done with an extra __NR_statx call plus a conversion to the new >>>>>> __stat{64}_t64 type. The statx call is done only for >>>>>> architectures with support for 32-bit time_t ABI. >>>>>> >>>>>> Internally some extra routines to copy from/to struct stat{64} >>>>>> to struct __stat{64} used on multiple implementations (stat, >>>>>> fstat, lstat, and fstatat) are added on a extra file >>>>>> (stat_t64_cp.c). Aslo some extra routines to copy from statx to >>>>>> __stat{64} is added on statx_cp.c. >>>>>> >>>>>> Checked with a build for all affected ABIs. I also checked on >>>>>> x86_64, i686, powerpc, powerpc64le, sparcv9, sparc64, s390, and >>>>>> s390x. =20 >>>>> >>>>> When do you plan to pull this patch set to -master? >>>>> Those patches have been available for review on the mailing list >>>>> for more than two months now. =20 >>>> >>>> Hi Lukasz, thanks to remind me. I will rebase against master and run= >>>> some regressions tests against some platforms and push it. >>>> =20 >>> >>> One required change with the rebase is adapt the riscv32 ABI to >>> exclude the __{f,l}xstat{at} symbol and replace with proper {f,l}stat= >>> ones. It is possible because the new ABI was added on current >>> development branch, however one minor inconvenient is the toolchain >>> need to be rebuild with a updated glibc branch to avoid linking >>> failures with libstd++ (which uses __{f,l}xstat{at}). >>> >> >> I'm not sure if this is related, but on my ARMv7 (32 bit) sandbox ther= e >> is an issue with fstat accesses to files. >> >> When I try to run a program build against newest glibc (installed in >> /opt/lib) I do see issues with {f}stat on other libraries (e.g. >> /opt/lib/librt.so). To be more specific I do experience the EOVERFLOW >> error: >> >> error while loading shared libraries: librt.so.1: cannot stat shared >> object: Error 75 >> >> The "base" glibc is 2.28 (installed in /lib). The glibc under test is >> the newest master installed in /opt/lib. >> >> I'm now investigating this issue. >=20 > I am not sure what it might be based on these information, could you > provide a strace so we can pinpoint what might the issue? =20 >=20 > The arm-linux-gnueabihf testing I did was on a aarch64 kernel (4.12.13)= =2E > Besides the make check without regression, I could run system binaries = > with ./testrun.sh. >=20 > I will check on a different kernel/system with a 32-bit kernel. Ok, this change in fact triggered a very subtle issue at dl-load.c that I saw in both arm-linux-gnueabihf system with a 32-bit kernel and on mips-linux-gnu. The issue is at: elf/dl-load.c 1982 if (here_any && (err =3D errno) !=3D ENOENT && err !=3D EACCES= ) 1983 /* The file exists and is readable, but something went wrong= =2E */ 1984 return -1; And it is just triggered on system where {f,l}stat{at}{64} issues __NR_statx and it fails with ENOSYS but later success with the system stat* syscall. This code here checks the errno value without checking whether the previous function call that might change err actually has failed (in this specific case the stat64 at line 1931). And this due how we=20 currently implement the y2038 support with INLINE_SYSCALL_CALL=20 (a function that succeeds is allowed to change errno and it simplifies=20 the resulting y2038 support a bit). In fact this check does not really make sense, since either 'fd' will be different than '0' (meaning it has being opened) or the 'stat64' at line 1931 failed and 'here_any' won't be set (the stat64 at line 1951 already explicit sets errno in failure case). =20 Also, git history does not give much information on why it was added at fist place. So I think we just need to remove this extra check, you can check if the following patch helps (I am running some regression tests before sensing it upstream): diff --git a/elf/dl-load.c b/elf/dl-load.c index f3201e7c14..39ae43c6ce 100644 --- a/elf/dl-load.c +++ b/elf/dl-load.c @@ -1878,7 +1878,6 @@ open_path (const char *name, size_t namelen, int mo= de, size_t cnt; char *edp; int here_any =3D 0; - int err; =20 /* If we are debugging the search for libraries print the path now if it hasn't happened now. */ @@ -1979,9 +1978,6 @@ open_path (const char *name, size_t namelen, int mo= de, return -1; } } - if (here_any && (err =3D errno) !=3D ENOENT && err !=3D EACCES) - /* The file exists and is readable, but something went wrong. */= - return -1; =20 /* Remember whether we found anything. */ any |=3D here_any; --IM14L2FAQtAA3KHwojnB920lbIqweKijc-- --DFVoYtM6ZRdINkT02BlhFq01klSOkOUov Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEUMEGt8/rO2QSpplaqrHsFKeUiO8FAl+F7nAACgkQqrHsFKeU iO9LVRAArV/TdDnTfUzY/JPA3RsulpWJcYzBI9+27hitxbRCzYww8snRCecDL+Ep fqCwco8wcDwYAtDEfiQmDwy4nbZufGLuiidXRSO6RPfrOJBjc3Eu7JzlvKdlBaa+ YpgdemstM6W4x6/0tm3jqrYiOz/y41iPbCeWx0WvGtoBnCNSdvLS2dbxVUlwvuZS jiZNhI1jTDh4YbyJ2nSGdBVdfSe0ukLhWjQ2ENuZIwesGAXqlJaEG35Q44iM+jAL zmoTSJeqYr43+EhBalw0mRgk5bGNUcx1MUn9hmI5Vi54qoU72XDA5R7Oqlg/od5B KqHnAWquz7giurILJJVfomTDEn9XgkeEcAx3XgqZM39ohx1Qhlz9a0fEIVhGzX/B ZzmSteL1BuyQS7vWaM0OtHYw+HNW1oXD6YngxU5nzlwdB8YMYFaSStv52vqZoHQ8 Ei4b9uOnzitrF/6V3p7Rm+WLq9HpbBk0kxhTTt4C6YQfzlFwtW1vJklb0uaK6jdE cQPsVSkFB5b/krsAvBszRKCd/C8cIz09+q8sjigo8mEX8FR5h/ApG1QQYrmptaWo 588CaJg+sQYej9b+x6AJJTSeget2dg4BzcfTjiEQgNPM7hlIpLY69p2HX2Uwl0hz 8d5D9DJFLYh/o0tAZ0AzdrDdw5m9yqypQKhc9JTNatWnPxx70OI= =nyfJ -----END PGP SIGNATURE----- --DFVoYtM6ZRdINkT02BlhFq01klSOkOUov--