From: Bruno Haible <bruno@clisp.org>
To: Paul Eggert <eggert@cs.ucla.edu>,
"Richard W.M. Jones" <rjones@redhat.com>
Cc: "Daniel P. Berrangé" <berrange@redhat.com>,
"Demi Marie Obenour" <demiobenour@gmail.com>,
"Eric Blake" <eblake@redhat.com>, "Sam James" <sam@gentoo.org>,
"Carlos O'Donell via Libc-alpha" <libc-alpha@sourceware.org>,
autoconf@gnu.org, c-std-porting@lists.linux.dev,
"Zack Weinberg" <zack@owlfolio.org>,
"David Seifert" <soap@gentoo.org>,
"Gentoo Toolchain" <toolchain@gentoo.org>,
"Arsen Arsenović" <arsen@aarsen.me>,
dueno@redhat.com
Subject: Re: On time64 and Large File Support
Date: Thu, 02 Mar 2023 13:17:33 +0100 [thread overview]
Message-ID: <4158136.ciBtUerH68@nimes> (raw)
In-Reply-To: <20230302110244.GK7636@redhat.com>
Richard W.M. Jones wrote:
> Another way to look at this is that it's a bug in gnutls and we should
> fix it only in this package
It's by far not just this one package. An 'fgrep -rl time_t /usr/include'
search shows a number of libraries that use time_t in their API:
alsa, boost, libstdc++, glib-2.0, gtk+-3.0, libpng, nettle, openssl,
readline, libuuid, wxwidgets, X11, libxcb
- and that's just the few that I happen to have installed.
If a distro takes a package-by-package approach:
- Some of these packages use Gnulib, and are thus causing trouble now or
will soon.
- The other packages (and there are a number of them!) will either
require a manual switch to _TIME_BITS=64 or blow up in 2038.
I agree with Daniel and Paul that a global switch to _TIME_BITS=64 + mass
rebuild is
- more efficient than a package-by-package approach,
- also less likely to leave out some packages by mistake.
> In Fedora we have a
> concept of global C/C++ flags which most C/C++ applications obey:
>
> $ rpm --eval '%{__global_cflags}'
> -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection
>
> We could stick -D_TIME_BITS=64 in there and then do a mass rebuild.
How do you detect if a package (by mistake or intentionally) does
'#undef _TIME_BITS'?
A safer solution might be to hack the compilers (gcc and clang), so that
they make _TIME_BITS evaluate to 64, regardless of any '#define _TIME_BITS 32'
or '#undef _TIME_BITS' in the package's source code.
Bruno
next prev parent reply other threads:[~2023-03-02 12:18 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-11 8:38 Sam James
2022-11-11 9:16 ` Paul Eggert
2022-11-11 9:19 ` Sam James
2022-11-11 23:48 ` Joseph Myers
2022-11-11 9:19 ` Florian Weimer
2022-11-11 9:27 ` Sam James
2022-11-11 11:38 ` Florian Weimer
2022-11-11 20:12 ` Paul Eggert
2022-11-12 2:20 ` Zack Weinberg
2022-11-12 3:57 ` Sam James
2022-11-12 14:16 ` Zack Weinberg
2022-11-12 17:41 ` Paul Eggert
2022-11-12 18:50 ` Bruno Haible
2022-11-12 19:15 ` Paul Eggert
2022-11-12 20:23 ` Wookey
2022-11-12 20:54 ` Russ Allbery
2022-11-12 21:31 ` Paul Eggert
2022-11-15 5:09 ` Sam James
2022-11-12 18:19 ` Paul Eggert
2022-11-11 9:40 ` Andreas K. Huettel
2022-11-11 11:30 ` Florian Weimer
2022-11-11 19:01 ` Andreas K. Huettel
2022-11-11 19:28 ` Palmer Dabbelt
2022-11-11 9:46 ` Paul Eggert
2022-11-11 11:22 ` Florian Weimer
2022-11-11 19:56 ` Paul Eggert
2022-11-12 4:20 ` Wookey
2022-11-12 4:28 ` Sam James
2022-11-12 4:56 ` Wookey
2022-11-12 4:59 ` Sam James
2022-11-12 18:33 ` Paul Eggert
2022-11-14 8:39 ` Adam Sampson
2022-11-14 11:47 ` Florian Weimer
2022-11-14 20:26 ` Arsen Arsenović
2022-11-14 20:52 ` Florian Weimer
2022-11-15 7:39 ` Arsen Arsenović
2022-11-11 10:25 ` Richard Purdie
2023-03-01 22:38 ` Eric Blake
2023-03-02 0:29 ` Demi Marie Obenour
2023-03-02 9:04 ` Daniel P. Berrangé
2023-03-02 10:28 ` Paul Eggert
2023-03-02 10:38 ` Andreas Schwab
2023-03-03 5:46 ` Paul Eggert
2023-03-06 8:58 ` Andreas Schwab
2023-03-06 10:19 ` Florian Weimer
2023-03-02 11:02 ` Richard W.M. Jones
2023-03-02 12:17 ` Bruno Haible [this message]
2023-03-02 13:24 ` Daniel P. Berrangé
2023-03-03 3:30 ` Wookey
2023-03-03 5:50 ` Paul Eggert
2023-03-03 14:01 ` Wookey
2023-03-03 14:14 ` Daniel P. Berrangé
2023-03-03 23:21 ` Arsen Arsenović
2023-03-03 11:49 ` Florian Weimer
2023-03-03 12:39 ` Richard W.M. Jones
2023-03-02 8:30 ` Richard W.M. Jones
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=4158136.ciBtUerH68@nimes \
--to=bruno@clisp.org \
--cc=arsen@aarsen.me \
--cc=autoconf@gnu.org \
--cc=berrange@redhat.com \
--cc=c-std-porting@lists.linux.dev \
--cc=demiobenour@gmail.com \
--cc=dueno@redhat.com \
--cc=eblake@redhat.com \
--cc=eggert@cs.ucla.edu \
--cc=libc-alpha@sourceware.org \
--cc=rjones@redhat.com \
--cc=sam@gentoo.org \
--cc=soap@gentoo.org \
--cc=toolchain@gentoo.org \
--cc=zack@owlfolio.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).