From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qv1-xf43.google.com (mail-qv1-xf43.google.com [IPv6:2607:f8b0:4864:20::f43]) by sourceware.org (Postfix) with ESMTPS id 19DB2385DC32 for ; Mon, 4 May 2020 16:37:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 19DB2385DC32 Received: by mail-qv1-xf43.google.com with SMTP id v10so8659599qvr.2 for ; Mon, 04 May 2020 09:37:42 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:autocrypt :message-id:date:user-agent:mime-version:in-reply-to; bh=QpwJZUbp94vo5VC0WfsOTJlxn3/saN+cIrshfHLzlT4=; b=m4VrFMxBSCxh6MWocaWZEBqzUinm6XQBl1yV4LfSQHRofl8+Pq/RMI0hHzdLKuDc0E 5LQ38FyKmDSa/tyqLHAH/uS9w8odSKo5pYxVrK2nO078ntpjQHQfIy7+rcu7heVEtnDo eYuTuACBYtP1J1E+m1V23q2TnhDbnV3oxOAPC/V/plJhpTBkOgHfQF49Ml0Y47/TjnXG TFnPB7Zvoq31FL4Lfxs4r9/NY/3UC0T4kzlvTrJ32cwR6dt1f1+v5kZNG8c0GqzJaHw6 YSg/QU0gXgXFSTFeJVYR8RCzmi6QiAIx3vEbhAlfhpXtI3PJLvb0b8cyHKvj2w+x2cuw JkCw== X-Gm-Message-State: AGi0PuajjLHcltOkCRu+AR1CfSUBuVqzw++B7E2zY2ih0SBVZIx7UA7E clFFfoHQytmDVb4vVobbyix8TQ== X-Google-Smtp-Source: APiQypLf4lMma3WJoG3JmKFh79z5ousU4UZZ1KHfP4htO+e8OglqjL8CLK65siUQRVEUfgZLjbyTYw== X-Received: by 2002:a0c:fcc5:: with SMTP id i5mr17308283qvq.14.1588610261343; Mon, 04 May 2020 09:37:41 -0700 (PDT) Received: from [192.168.1.4] ([177.194.48.209]) by smtp.googlemail.com with ESMTPSA id 190sm6911757qke.104.2020.05.04.09.37.38 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 04 May 2020 09:37:40 -0700 (PDT) Subject: Re: [PATCH v2 5/5] y2038: Replace __clock_gettime with __clock_gettime64 To: Lukasz Majewski Cc: Joseph Myers , Alistair Francis , Alistair Francis , GNU C Library , Florian Weimer , Andreas Schwab References: <20200326080641.10193-1-lukma@denx.de> <20200326080641.10193-6-lukma@denx.de> <20200501135635.5178fd29@jawa> <5c01ae5f-bdb3-f683-8074-f3186ba1553a@linaro.org> <20200504173226.6f64396d@jawa> From: Adhemerval Zanella Autocrypt: addr=adhemerval.zanella@linaro.org; prefer-encrypt=mutual; keydata= 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 Message-ID: <2f51c6b9-c371-cc30-8bc1-0caab5f71a82@linaro.org> Date: Mon, 4 May 2020 13:37:36 -0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: <20200504173226.6f64396d@jawa> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="VtkpniVDDF0yNoNQhnf2leeio1cTmh3qV" X-Spam-Status: No, score=-17.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_NUMSUBJECT, 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: Mon, 04 May 2020 16:37:44 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --VtkpniVDDF0yNoNQhnf2leeio1cTmh3qV Content-Type: multipart/mixed; boundary="2sVAXnw2mz1znoFGua3FcG90TRZzVmwx4"; protected-headers="v1" From: Adhemerval Zanella To: Lukasz Majewski Cc: Joseph Myers , Alistair Francis , Alistair Francis , GNU C Library , Florian Weimer , Andreas Schwab Message-ID: <2f51c6b9-c371-cc30-8bc1-0caab5f71a82@linaro.org> Subject: Re: [PATCH v2 5/5] y2038: Replace __clock_gettime with __clock_gettime64 References: <20200326080641.10193-1-lukma@denx.de> <20200326080641.10193-6-lukma@denx.de> <20200501135635.5178fd29@jawa> <5c01ae5f-bdb3-f683-8074-f3186ba1553a@linaro.org> <20200504173226.6f64396d@jawa> In-Reply-To: <20200504173226.6f64396d@jawa> --2sVAXnw2mz1znoFGua3FcG90TRZzVmwx4 Content-Type: text/plain; charset=windows-1252 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 04/05/2020 12:32, Lukasz Majewski wrote: > Hi Adhemerval, >=20 >> On 01/05/2020 08:56, Lukasz Majewski wrote: >>> Hi Adhemerval, >>> =20 >>>> On 26/03/2020 05:06, Lukasz Majewski wrote: =20 >>>>> diff --git a/nis/nis_call.c b/nis/nis_call.c >>>>> index 92c70e97aa..9c6f62a753 100644 >>>>> --- a/nis/nis_call.c >>>>> +++ b/nis/nis_call.c >>>>> @@ -709,7 +709,7 @@ __nisfind_server (const_nis_name name, int >>>>> search_parent, nis_error status; >>>>> directory_obj *obj; >>>>> struct timeval now; >>>>> - struct timespec ts; >>>>> + struct __timespec64 ts; >>>>> unsigned int server_used =3D ~0; >>>>> unsigned int current_ep =3D ~0; >>>>> =20 >>>>> @@ -719,8 +719,8 @@ __nisfind_server (const_nis_name name, int >>>>> search_parent, if (*dir !=3D NULL) >>>>> return NIS_SUCCESS; >>>>> =20 >>>>> - __clock_gettime (CLOCK_REALTIME, &ts); >>>>> - TIMESPEC_TO_TIMEVAL (&now, &ts); >>>>> + __clock_gettime64 (CLOCK_REALTIME, &ts); >>>>> + now =3D valid_timespec64_to_timeval (ts); >>>>> =20 >>>>> if ((flags & NO_CACHE) =3D=3D 0) >>>>> *dir =3D nis_server_cache_search (name, search_parent, >>>>> &server_used, =20 >>>> >>>> I think it would be simpler to just remove the timeval argument on >>>> nis_server_cache_search and move the __clock_gettime64 call on the >>>> function start. =20 >>> >>> Have I understood you correctly that you recommend removing the >>> "now" struct timeval argument and then call explicitly >>> __clock_gettime64 on the beginning of nis_server_cache_search >>> function? =20 >> >> Yes, the nis_server_cache_search is a static function used only once >> at __nisfind_server. >=20 > Ok. >=20 >> >>> =20 >>>> >>>> Also, it would require to change nis_server_cache to use a >>>> __time64_t for 'expires', otherwise this change won't help in >>>> case of a time_t overflow. >>>> =20 >>> >>> Ok. I will update this. Thanks for pointing this out. >>> =20 >>>> =20 >>>>> diff --git a/sysdeps/generic/hp-timing.h >>>>> b/sysdeps/generic/hp-timing.h index e2d7447212..af9d92f7f7 100644 >>>>> --- a/sysdeps/generic/hp-timing.h >>>>> +++ b/sysdeps/generic/hp-timing.h >>>>> @@ -34,8 +34,8 @@ typedef uint64_t hp_timing_t; >>>>> vDSO symbol. */ >>>>> #define HP_TIMING_NOW(var) \ >>>>> ({ >>>>> \ >>>>> - struct timespec tv; >>>>> \ >>>>> - __clock_gettime (CLOCK_MONOTONIC, &tv); >>>>> \ >>>>> + struct __timespec64 tv; >>>>> \ >>>>> + __clock_gettime64 (CLOCK_MONOTONIC, &tv); >>>>> \ (var) =3D (tv.tv_nsec + UINT64_C(1000000000) * tv.tv_sec); >>>>> \ }) >>>>> =20 >>>> >>>> Ok. >>>> =20 >>>>> diff --git a/sysdeps/generic/memusage.h >>>>> b/sysdeps/generic/memusage.h index a111864b0b..91e56d24de 100644 >>>>> --- a/sysdeps/generic/memusage.h >>>>> +++ b/sysdeps/generic/memusage.h >>>>> @@ -28,9 +28,9 @@ >>>>> #ifndef GETTIME >>>>> # define GETTIME(low,high) >>>>> \ { >>>>> \ >>>>> - struct timespec now; >>>>> \ >>>>> + struct __timespec64 now; >>>>> \ uint64_t usecs; >>>>> \ >>>>> - clock_gettime (CLOCK_REALTIME, &now); >>>>> \ >>>>> + __clock_gettime64 (CLOCK_REALTIME, &now); >>>>> \ usecs =3D (uint64_t)now.tv_nsec / 1000 + >>>>> (uint64_t)now.tv_sec * 1000000; \ low =3D usecs & 0xffffffff; >>>>> \ high =3D usecs >> >>>>> 32; \ >>>>> =20 >>>> >>>> Is is the requirement to export __clock_gettime64 as a >>>> GLIBC_PRIVATE symbol? >>>> =20 >>> >>> The __clock_gettime is already exported as GLIBC_PRIVATE at >>> ./time/Versions, so I'm following this pattern. >>> >>> Moreover, the glibc will not build when __clock_gettime64 is not >>> exported. >>> =20 >>>> In any case, I think we should try to avoid use internal symbols >>>> even for distributed glibc libraries, so I think this change >>>> should go once we start to export the clock_gettime64 as default >>>> symbol. =20 >>> >>> Am I correct that this is a preprocessor macro, which is in the >>> exported header? =20 >> >> In fact __clock_gettime is used on other internal libraries and it >> is required as is to avoid linknamespace pollution. So it seems >> that __clock_gettime64 should follow the same logic. >=20 > Ok, So then __clock_gettime64 shall be exported as well. >=20 >> >> It might be misleading that for some ABI __clock_gettime and >> for other __clock_gettime64 will be used internally, but it should >> be ok nonetheless. >> >=20 > All the occurrences of __clock_gettime shall be replaced by > __clock_gettime64 internally in glibc as __clock_gettime64 is Y2038 > safe for e.g. ARM32 and is aliased to __clock_gettime for 64 bit archs > anyway. I meant that some architectures does not provide __clock_gettime64 and thus the internal symbol will be __clock_gettime. But it is not an issue in fact. --2sVAXnw2mz1znoFGua3FcG90TRZzVmwx4-- --VtkpniVDDF0yNoNQhnf2leeio1cTmh3qV Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEUMEGt8/rO2QSpplaqrHsFKeUiO8FAl6wRNAACgkQqrHsFKeU iO8txQ//THTQGGduDhQSUTdL0QIEkCxTTAG450gGZyDZlHLtKxiawQIYoVBdNV2N DnlueBBErnwVE9Bfl9U6Vs9O88fURaIRjgP+h8Ptf5VGprhB8qyJ7d8qRarM0KKX O72ue6sUR1XzDIcTOT8+t9Fjqexyo4Sg7ky2Ci4hi6zHzvgw3RWDZtEJ+uc6Kwo3 0GllanWSB9cey0tt4fl7mYSP/12pAF08qmgXyEPc8O4sm7lHXgbLChcDHN9O1df/ XQ0EBB2orvCa8tF0V0zEKS+UF34Jd5q9S6r7baB4QLBa2Jjigg+LHABtMaNH+FJ7 urJnkjgc0NPku397IJ+ZVuCfRJYmXz5ApZtqVW57b0d13ODGiyIfGwYmRlTxl+eI T8Vm1r7/XIUPQ9hI7szDBi3UiLHcoBHAV/zQyrotdfKe5GsLnlhnnqG19AkzU0Wi m0brfTUiswEFWZ+QyP/JpZ/r4c7uyXlv2/tNsedJQz2YUrOSDSuBSPPdtDEn9Ftr Ie03yExCDsThtrV/lPUHV2Xq/+hCACMuQ6TS2axlApeB8M06mqzBQqekJxKsQKA/ NTxIHN0mpyL2iYSfGcWfGFsG9Pab4lcQ8jVjhvq7+NDEl+MTqP+60uWaZIgpGG3r VKIzLUKpPucgiOfxCk5p88ZTuYqTbb6RfM9b2+gN+7RgycOpCo8= =sAnP -----END PGP SIGNATURE----- --VtkpniVDDF0yNoNQhnf2leeio1cTmh3qV--