From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id 8BF0A3858D20 for ; Fri, 11 Nov 2022 11:22:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 8BF0A3858D20 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1668165755; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=BgLaQGM5I87BB/woIb7iEzL73glmNAUKaiGFp/+eVws=; b=ilK2tKVb0yigVV+mQEveBaDcAGztnLdGWzKHJoM6MxdEh1O+cQmSrESDbaAekjIRxuvEQj s2itvQTuXw4Zc8n0bm+AeTDj7I5sTgoOy8ikqlW/zstU3lXPwSOeV+b3WNwye8SaGXeUw0 yJBCZfir8gqQHjks4rVRK7tOBvLcrA0= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-581-rmLJyaWjNQmapiKVZMlGpw-1; Fri, 11 Nov 2022 06:22:31 -0500 X-MC-Unique: rmLJyaWjNQmapiKVZMlGpw-1 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 8037D185A794; Fri, 11 Nov 2022 11:22:30 +0000 (UTC) Received: from oldenburg.str.redhat.com (unknown [10.2.16.36]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 29628140EBF5; Fri, 11 Nov 2022 11:22:28 +0000 (UTC) From: Florian Weimer To: Paul Eggert Cc: Sam James , Carlos O'Donell via Libc-alpha , autoconf@gnu.org, c-std-porting@lists.linux.dev, Zack Weinberg , David Seifert , Gentoo Toolchain , Arsen =?utf-8?Q?Arsenovi=C4=87?= , Frederic Berat Subject: Re: On time64 and Large File Support References: <87wn81q254.fsf@oldenburg.str.redhat.com> <34b6e13f-1905-2632-fde5-47e08a8b14aa@cs.ucla.edu> Date: Fri, 11 Nov 2022 12:22:26 +0100 In-Reply-To: <34b6e13f-1905-2632-fde5-47e08a8b14aa@cs.ucla.edu> (Paul Eggert's message of "Fri, 11 Nov 2022 01:46:19 -0800") Message-ID: <87sfippwgd.fsf@oldenburg.str.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.7 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain X-Spam-Status: No, score=-4.5 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: * Paul Eggert: > On 2022-11-11 01:19, Florian Weimer wrote: > >> AC_SYS_LARGEFILE defaulting to AC_SYS_YEAR2038 is extremely destructive >> for Fedora unfortunately. >> I thought the gnulib change has been reverted? > > I'm not sure where you got that impression. Bleeding-edge (unreleased) > Autoconf AC_SYS_LARGEFILE, along with Gnulib AS_SYS_LARGEFILE as > shipped in several GNU apps already, default to 64-bit time_t on > platforms where setting _TIME_BITS=64 changes time_t from 32 to 64 > bits. (This is not the same as defaulting to AC_SYS_YEAR2038 which > *requires* wider-than-32-bit time_t, but I expect the difference > doesn't matter here.) Ugh. >> I really wish the rest of GNU would talk to glibc maintainers before >> overriding glibc maintainer decisions. If we cannot revert this in >> autoconf (and gnulib), this will very much endanger the Fedora i386 >> port. Debian will probably be impacted in the same way. > > I'm not sure what is meant by "overriding", as Autoconf etc. are > merely using a documented glibc feature. Also, the apps in question > can be configured to stick with 32-bit time_t by using "./configure > --disable-year2038" and/or setting the corresponding cache variables, > so distros continue to have a choice about which time_t flavor they > prefer. There are many documented toolchain features that change ABI. It's up to developers to determine whether it's safe to enable them. For Y2038 support, that's obviously quite desirable in principle. But we (glibc upstream) looked at it and concluded that we just can't introduce it by default and maintain backwards compatibility with existing binaries, which is of paramount importance for i386. I never expected GNU to switch i386 to time64 by default. Attempting this switch is a huge distraction and prevents many of us from working on more important matters that benefit GNU in much more direct ways. > What I'm gathering from your email is that 32-bit Fedora x86 needs an > easy way to say "hold on, I want 32-bit time_t to be the default for > all 'configure' runs". If the --disable-year2038 option of 'configure' > isn't enough, and/or setting the appropriate cache variables isn't > enough, what other configuration method would you like? I don't know yet. Fortunately, any issues should be quite visibile in the distribution DWARF data. If we put the time32 switch in place, we should be able to tell whether it's effective enough in practice. > Also, how does this issue with 64-bit time_t differ from the > decades-old issue with 64-bit off_t? AC_SYS_LARGEFILE has long > defaulted to 64-bit off_t, and Autoconf-generated configure scripts > have long had --disable-largefile options and related cache variables > much the same way that they're now dealing with 64-bit time_t. Is the > difference merely that time_t is more widely used than off_t, so the > ABI problems are more likely now? LFS issues have been with us for a long time, and packages and distributions have workarounds for it (e.g., using off64_t or long long in public headers). What we have today mostly works. But it's unknown whether existing AC_SYS_LARGEFILE users require any additional work for time64 changes. It's also not clear how to approach this from an individual upstream perspective if different distributions have different requirements. I just don't see many libraries adopting a dual-ABI approach like glibc did, or spending much work on this. Thanks, Florian