From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10839 invoked by alias); 18 Sep 2019 21:43:30 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 10824 invoked by uid 89); 18 Sep 2019 21:43:30 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-3.0 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.1 spammy=mistakes X-HELO: esa2.mentor.iphmx.com IronPort-SDR: KzEaNcj2t/bIhN+2CKYml9RAUI9Ui6jD/wdirGqD4QuRWeGMF4VmWpcU5YjkiiZrZczzKsGisU pxOHac8KSUx1K9HVyTDxL7WmGSAORyCoTvlHw/Ni/of9c19rsfyUnkKL8c4oYWF1UlGZidxfyL Fes75eMgUPLqCHnj6oAojM4dej4QvOitlp8ZVKkAL+lZvEZ9K1g2hQ/VCU8DLgH1JCF5vJuxwN Vd0GKhX5LqODTXLRuKyuc5Kzm0LzMwF+SkuYdq15EC7VBTfHu2ZANru8Sk8EaPpuEgZpquvbnT NDc= IronPort-SDR: QjqbOOwk86sRVYpYlGy2I7yn7AYkPEM/jDbzW70fsSIWKuZLJYaExr/R09p5iSNdS7Q6eycrMH J3jnPgCnTg7x5v+7txxfC8F1TATiCXz/oJgXNceLDuzNZkOcvmtfLJqfo7RKDfGzq2/TVWxQUO AjC0Jgk0FGUigGVYEsHEtPrHpXmLKGunj2A+ryXtX5AMRfrygp21X3/tUB0Akv9zr+Y34yfop2 igerNiOEI03VPCPXqqpoKvkyZzNaHwmDNFZ5fURlEH1VtEFtk1CiphNcJuYW4qhcC/8KNfSS4V LJM= Date: Wed, 18 Sep 2019 21:43:00 -0000 From: Joseph Myers To: Lukasz Majewski CC: Alistair Francis , Alistair Francis , Zack Weinberg , Arnd Bergmann , GNU C Library , Adhemerval Zanella , Florian Weimer , Carlos O'Donell , Stepan Golosunov Subject: Re: [PATCH v8 3/3] y2038: linux: Provide __clock_settime64 implementation In-Reply-To: <20190918211603.8444-4-lukma@denx.de> Message-ID: References: <20190918211603.8444-1-lukma@denx.de> <20190918211603.8444-4-lukma@denx.de> User-Agent: Alpine 2.21 (DEB 202 2017-01-01) MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Return-Path: joseph@codesourcery.com X-SW-Source: 2019-09/txt/msg00280.txt.bz2 On Wed, 18 Sep 2019, Lukasz Majewski wrote: > Tests: > - The code has been tested with x86_64/x86 (native compilation): > make PARALLELMFLAGS="-j8" && make xcheck PARALLELMFLAGS="-j8" > > - Run specific tests on ARM/x86 32bit systems (qemu): > https://github.com/lmajewski/meta-y2038 > and run tests: > https://github.com/lmajewski/y2038-tests/commits/master > on kernels with and without 64 bit time support. Could you give more details of the configurations (including kernel headers version, --enable-kernel version, kernel version used at runtime) for which you have built glibc and run the full glibc testsuite? I suspect this code is pretty close to being ready to go in - but such patches have plenty of scope for mistakes (such as were in earlier RV32 patch versions) such as typos, transposed parameters, etc., that are hard for humans to spot reliably and easy for compilers and testsuites to spot, so it's important to know that sufficient automated tests have been run to catch any such mistakes. I gave a list in of five configurations I think are relevant to cover the different cases in patches such as this ("new" = 5.1 or later; Florian's changes to provide syscall tables in glibc would allow "#ifdef __NR_clock_settime64" to be removed and eliminate case (b)): (a) one that has always had 64-bit time, e.g. x86_64; (b) one with 32-bit time and old kernel headers (any kernel version at runtime); (c) one with 32-bit time and new kernel headers, old kernel at runtime; (d) one with 32-bit time and new kernel headers, new kernel at runtime but no --enable-kernel; (e) one with 32-bit time and new kernel at runtime and new --enable-kernel. If some of these are problematic to test, you can ask for help testing them. For *this particular* patch you might not need to test both (c) and (d), because they are identical as far as compilation is concerned and the testsuite doesn't really cover execution of clock_settime anyway. But it's in the nature of the Y2038 changes - involving lots of conditional code - that it's necessary to test in several different configurations to cover the conditionals adequately. (For avoidance of doubt, it is *not* necessary to run build-many-glibcs.py for this patch, and nor would running build-many-glibcs.py be sufficient since it doesn't do execution testing or cover the kernel headers version and --enable-kernel variants.) -- Joseph S. Myers joseph@codesourcery.com