All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Arsen Arsenović" <arsen@aarsen.me>
To: Bruno Haible <bruno@clisp.org>
Cc: "Andreas K. Huettel" <dilfridge@gentoo.org>,
	 Wookey <wookey@wookware.org>,  Khem Raj <raj.khem@gmail.com>,
	 Paul Eggert <eggert@cs.ucla.edu>,
	 libc-alpha@sourceware.org, binutils@sourceware.org,
	 gcc@gcc.gnu.org,  config-patches@gnu.org,
	distributions@lists.linux.dev,  devel@lists.fedoraproject.org,
	glaubitz@debian.org,  maskray@google.com,
	 dickey@invisible-island.net, toolchain@gentoo.org
Subject: Re: Proposed CHOST change for the 64bit time_t transition
Date: Sun, 08 Sep 2024 16:08:02 +0200	[thread overview]
Message-ID: <86mskitf0d.fsf@aarsen.me> (raw)
In-Reply-To: <1868152.c1hCyg87lr@nimes> (Bruno Haible's message of "Sat, 07 Sep 2024 02:16:49 +0200")

[-- Attachment #1: Type: text/plain, Size: 2932 bytes --]

Bruno Haible <bruno@clisp.org> writes:

> Paul Eggert wrote:
>> I'd rather just switch, as Debian has.
>
> I'd go one step further, and not only
>   make the ABI transition without changing the canonical triplet,
> but also
>   make gcc and clang define -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64
>   among their predefines.

At that point, we should bump SONAME of libc and simply remove 32-bit
time support.  This would probably be okay generally.  Just doing the
predefine doesn't really fix anything - all the problems of not being
able to detect whether t64 support exists still persist, with no
mechanism to prevent mixing.

But, in the case we don't do a bump, why not update the tuple?  This'd
allow easy communication of whether we have 32 bit time to all
components of the system, and, in lieu of a better detection mechanism,
it'd allow anyone at a glance to look at a hosts tuple and see whether
it is compatible with something based on the tuple it was built on.

AFAIK the only reason not to do that is cosmetic - and it is ugly, but
this is for a dead platform, so I'm not too worried.

> Rationale:
>
>   * We want that a user of a distro with the new ABI can build
>     packages in the usual way:
>       - ./configure; make; make install (when using Autoconf), or
>       - make; make install  (when there is just a Makefile).
>     This *requires* that gcc and clang get patched, as indicated
>     above.
>     (Only changing Debian-specific files or variables won't do it.)
>
>   * Once this has been done, is there a need for a triplet change?
>     Not in the toolchain, and not in the packages either.
>     Needs that have been mentioned in [1][2]:
>
>       - Users would like to know in which ABI they / their distro lives.
>         This can be done through a property in /etc/os-release.
>
>       - "risks incompatibility with other distributions" [2]
>         What is the problem? Do we expect users to build binaries
>         on 32-bit distro X and try to run them on 32-bit distro Y?
>         Or do we expect binary package distributors (like Mozilla,
>         videolan.org) to do so?
>         It was my impression that this approach is doomed anyway,
>         because so many shared libraries have different major version
>         in distro X than in distro Y.

It is, many do it anyway, and what's worse, many users misguidedly
prefer it to better approaches (like the ones you mentioned).

>         And that such binary package distributors use flatpak, AppImage, etc.
>         precisely to get out of this dilemma.
>
>       - Building gcc and glibc might need some particular options.
>         Such options can be documented without requiring a new triplet.
>
> References:
> [1] https://wiki.debian.org/ReleaseGoals/64bit-time
> [2] https://wiki.gentoo.org/wiki/Project:Toolchain/time64_migration

-- 
Arsen Arsenović

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 381 bytes --]

  reply	other threads:[~2024-09-08 14:08 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-04 15:48 Proposed CHOST change for the 64bit time_t transition Andreas K. Huettel
2024-09-05  0:32 ` Oskari Pirhonen
2024-09-05  2:06 ` Wookey
2024-09-05  3:10   ` Khem Raj
2024-09-05 13:50     ` Andreas K. Huettel
2024-09-05 15:39       ` Paul Eggert
2024-09-05 16:33         ` Todd Vierling
2024-09-05 16:59           ` Andreas K. Huettel
2024-09-05 17:03         ` Andreas K. Huettel
2024-09-05 18:20           ` Paul Eggert
2024-09-05 21:54             ` Andreas K. Huettel
2024-09-06 16:06         ` Arsen Arsenović
2024-09-07  0:24           ` Bruno Haible
2024-09-07 11:52             ` Arsen Arsenović
2024-09-07  0:16         ` Bruno Haible
2024-09-08 14:08           ` Arsen Arsenović [this message]
2024-09-08 23:42             ` Jacob Bachmeyer
2024-09-09 23:08               ` Arsen Arsenović
2024-09-10 10:16                 ` Andreas K. Huettel
2024-09-10 14:11                   ` Todd Vierling
2024-09-10 16:23             ` Florian Weimer
2024-09-05 16:39       ` Khem Raj
2024-09-05 13:49   ` Andreas K. Huettel
2024-09-07 12:32   ` Michał Górny

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=86mskitf0d.fsf@aarsen.me \
    --to=arsen@aarsen.me \
    --cc=binutils@sourceware.org \
    --cc=bruno@clisp.org \
    --cc=config-patches@gnu.org \
    --cc=devel@lists.fedoraproject.org \
    --cc=dickey@invisible-island.net \
    --cc=dilfridge@gentoo.org \
    --cc=distributions@lists.linux.dev \
    --cc=eggert@cs.ucla.edu \
    --cc=gcc@gcc.gnu.org \
    --cc=glaubitz@debian.org \
    --cc=libc-alpha@sourceware.org \
    --cc=maskray@google.com \
    --cc=raj.khem@gmail.com \
    --cc=toolchain@gentoo.org \
    --cc=wookey@wookware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.