From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qv1-xf44.google.com (mail-qv1-xf44.google.com [IPv6:2607:f8b0:4864:20::f44]) by sourceware.org (Postfix) with ESMTPS id 79FA5383E838 for ; Mon, 4 May 2020 14:04:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 79FA5383E838 Received: by mail-qv1-xf44.google.com with SMTP id p13so8332129qvt.12 for ; Mon, 04 May 2020 07:04:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:cc:references:from:autocrypt:subject :message-id:date:user-agent:mime-version:in-reply-to; bh=ne303O+q241YevRv9o4j6l9aPZh7bsMYxH/XTwds02w=; b=OLDmmnXUhEgmp5JiaYcesrIgxB0FMiXsaT8Dhasg6GBxt56QNOvE9rQ0I9Ld42XwGd UySQ6rVVQ9/IKVxLh/8ZekoxisCA2ot2rGvy/HvM3rHMoFP38Jda1f4CQ/MrcBX4c8uv sl1ZcRwo+wBPXHVIYeLeBnC7WrfEm3/Vr53xqnVa+vb0Cv9FLNnCBfPWstAUBJr7QbFI 0XpzUYpvj2+UYv8s9J9zo90huaqBpn68w3JufSx0VLf1AFV8ltNrzpF0bk768sAAPx4U n++VkO65rMNwAPOh9ApIfnjxknH/uDIQhp588ysYygS7yOG1YUeyqt+lyA16T/URjmIo vjXA== X-Gm-Message-State: AGi0PuZoiyVDyj3Z2gODq7nNIlcUSt2xyV6tmljHIvf3UHH15yBvaIs0 7BrYxkkmbEifCdi6E2nIYwBzxA== X-Google-Smtp-Source: APiQypLLEMRp8CKlCKGq036POQgnVS7RW47G9vYr5Y5Zr2VmxM8yUsaDiQ5slVEgnOmRz/KcO/4gGA== X-Received: by 2002:a0c:9e6d:: with SMTP id z45mr16742403qve.206.1588601068606; Mon, 04 May 2020 07:04:28 -0700 (PDT) Received: from [192.168.1.4] ([177.194.48.209]) by smtp.googlemail.com with ESMTPSA id h13sm11184119qti.32.2020.05.04.07.04.26 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 04 May 2020 07:04:27 -0700 (PDT) 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> From: Adhemerval Zanella Autocrypt: addr=adhemerval.zanella@linaro.org; prefer-encrypt=mutual; keydata= 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 Subject: Re: [PATCH v2 5/5] y2038: Replace __clock_gettime with __clock_gettime64 Message-ID: <5c01ae5f-bdb3-f683-8074-f3186ba1553a@linaro.org> Date: Mon, 4 May 2020 11:04:24 -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: <20200501135635.5178fd29@jawa> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="w9gzPbFRv1hFmzKNNPPyKRzVcSJSuITrM" X-Spam-Status: No, score=-24.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, 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 14:04:39 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --w9gzPbFRv1hFmzKNNPPyKRzVcSJSuITrM Content-Type: multipart/mixed; boundary="1CmJ4lg64y6f1hko3gaObF1j2wdXyUCBY"; 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: <5c01ae5f-bdb3-f683-8074-f3186ba1553a@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> In-Reply-To: <20200501135635.5178fd29@jawa> --1CmJ4lg64y6f1hko3gaObF1j2wdXyUCBY Content-Type: text/plain; charset=windows-1252 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 01/05/2020 08:56, Lukasz Majewski wrote: > Hi Adhemerval, >=20 >> On 26/03/2020 05:06, Lukasz Majewski wrote: >>> 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 >=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? Yes, the nis_server_cache_search is a static function used only once at __nisfind_server. >=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 >> >>> 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. >> >>> 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. >=20 > 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? 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. 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. --1CmJ4lg64y6f1hko3gaObF1j2wdXyUCBY-- --w9gzPbFRv1hFmzKNNPPyKRzVcSJSuITrM Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEUMEGt8/rO2QSpplaqrHsFKeUiO8FAl6wIOgACgkQqrHsFKeU iO/LyxAAr+i7kTgPEdsmt9XHmd5wsUmQIznvqK4Z1vN/jd9v4TdI4mcmj4bSpcy0 /51jk1DBuJxa2qutd5nORuXDPHxxfrJJxSyvSe0zbbTJ3WAokiQui4ElTvvbStNm LyPXDLGEuBZzlYmQwJzYtj9Dod/Kf+6pkHM/wSydZn+ibNX1H/z22b0ZQGcKVblM 7fTzL5REfwoazh/uuIODTRvbTiQit2f8Qvq7kfXZ95apr6lWY+5UTunynBUbHH+P wGQWVJ+IltcEnZfg0cBNqhlFdYW60YzQ02MLhuf+EaDiyIXwBvGmPlV7KuLPS5OM 7HgxPNA8PO87nRC0fOkPzdcoLLqkM1vxBNZK3pNiZQWtE36kaD4eVIhN2KN+Q1d2 6u6NayRKsMyV0IPT/VL73qT2qDEijfuVoBMtuT7DbpYF9rV3BVFMSbKPZDhZdDeh Zk50bKgLKmJV6uhNozq8v0DDnm22VSLVlLfcy7ygzEFsBXG/jgpPDcMoejEuxIwh xWINPe7zPKg0bXPzzcW1GoeBRXO4QOOe/eFC7dn32SI1jFXHYwE9XLOEskvCk412 X+pfnZnWgy1PFTvo5jMLYUBXSgVnwd5POAZG4q3nGXtqu7NOJ1jy3zZlzQX4vvO2 mIu+tiU5/ZmDqPpEhJok1eztSFyzYnQ46vpclMNx2lLKTxj+SUI= =zMbz -----END PGP SIGNATURE----- --w9gzPbFRv1hFmzKNNPPyKRzVcSJSuITrM--