Your message dated Sat, 24 Oct 2026 11:06:12 +0000
with message-id <[email protected]>
and subject line Bug#1108322: fixed in gcc-16 16.2.0-4
has caused the Debian Bug report #1108322,
regarding gcc-14: Fix broken ada timespec record with -D_TIME_BITS=64 on 32-bit
big-endian targets
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
1108322: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1108322
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Source: gcc-14
Severity: normal
Tags: patch
X-Debbugs-Cc: [email protected]
User: [email protected]
Usertags: hppa
Dear Maintainer,
The gnat patches applied to gcc-14 to support building with -D_TIME_BITS=64
-D_FILE_OFFSET_BITS=64 broke numerous tests in the gnat testsuite.
Analysis of the array39 test showed that the ada timespec record was
not correctly layed out. See:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114065
In s-c_time.ads, we have
type timespec is record
tv_sec : time_t range 0 .. OS_Constants.MAX_tv_sec; -- seconds
tv_nsec : nsec_t range 0 .. 999_999_999; -- nanoseconds
end record
but the struct __timespec64 is defined as follows:
#if __TIMESIZE == 64
# define __timespec64 timespec
#else
#include <endian.h>
/* The glibc Y2038-proof struct __timespec64 structure for a time value.
To keep things Posix-ish, we keep the nanoseconds field a 32-bit
signed long, but since the Linux field is a 64-bit signed int, we
pad our tv_nsec with a 32-bit unnamed bit-field padding.
As a general rule the Linux kernel is ignoring upper 32 bits of
tv_nsec field. */
struct __timespec64
{
__time64_t tv_sec; /* Seconds */
# if BYTE_ORDER == BIG_ENDIAN
__int32_t :32; /* Padding */
__int32_t tv_nsec; /* Nanoseconds */
# else
__int32_t tv_nsec; /* Nanoseconds */
__int32_t :32; /* Padding */
# endif
};
#endif
The nsec_t is currently defined using the size of the tv_nsec in
the __timespec 64 struct but this ignores the padding on big-endian
targets.
The attached patch fixes this issue.
Regards,
Dave Anglin
-- System Information:
Debian Release: 13.0
APT prefers unreleased
APT policy: (500, 'unreleased'), (500, 'unstable')
Architecture: hppa (parisc64)
Kernel: Linux 6.12.33-dirty (SMP w/4 CPU threads)
Kernel taint flags: TAINT_WARN
Locale: LANG=en_CA.UTF-8, LC_CTYPE=en_CA.UTF-8 (charmap=UTF-8),
LANGUAGE=en_CA:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
-- no debconf information
Index: gcc-14-14.2.0/src/gcc/ada/s-oscons-tmplt.c
===================================================================
--- gcc-14-14.2.0.orig/src/gcc/ada/s-oscons-tmplt.c
+++ gcc-14-14.2.0/src/gcc/ada/s-oscons-tmplt.c
@@ -1769,9 +1769,12 @@ CNS(MAX_tv_sec, "")
struct timespec ts;
/*
-- Sizes (in bytes) of the components of struct timespec.
- -- The tv_sec field is the same than in struct timeval.
+ -- The tv_sec component is the same size as in struct timeval.
+ -- In order to avoid the endian issues in the glibc __timespec64
+ -- struct, we use the same size for the tv_nsec component as the
+ -- tv_sec component.
*/
-#define SIZEOF_tv_nsec (sizeof (ts.tv_nsec))
+#define SIZEOF_tv_nsec (sizeof (ts.tv_sec))
CND(SIZEOF_tv_nsec, "tv_nsec");
}
--- End Message ---
--- Begin Message ---
Source: gcc-16
Source-Version: 16.2.0-4
Done: Matthias Klose <[email protected]>
We believe that the bug you reported is fixed in the latest version of
gcc-16, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Matthias Klose <[email protected]> (supplier of updated gcc-16 package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Format: 1.8
Date: Sat, 24 Oct 2026 12:39:05 +0200
Source: gcc-16
Architecture: source
Version: 16.2.0-4
Distribution: unstable
Urgency: medium
Maintainer: Debian GCC Maintainers <[email protected]>
Changed-By: Matthias Klose <[email protected]>
Closes: 1108322 1115882 1136069
Changes:
gcc-16 (16.2.0-4) unstable; urgency=medium
.
* Update to git 20261024 from the gcc-16 branch.
- Fix PR ada/120106, PR target/127843 (PA), PR target/128105 (x86),
PR target/127692 (S390), PR target/127851 (x86),
PR tree-optimization/127357, PR tree-optimization/127916,
PR tree-optimization/126462, PR target/127393 (AArch64),
PR target/127393 (AArch64), PR tree-optimization/127382,
PR target/125060 (PPC), PR target/127553 (RISCV),
PR tree-optimization/127687, PR middle-end/127517, PR middle-end/127492,
PR target/127498 (x86), PR middle-end/127378, PR target/127352 (x86),
PR middle-end/127336, PR tree-optimization/127149, PR target/127482
(AVR),
PR middle-end/127474, PR target/127650 (x86), PR target/126096 (AArch64),
PR tree-optimization/127579, PR target/107549 (xtensa),
PR target/126629 (AArch64), PR tree-optimization/127571,
PR rtl-optimization/127367, PR target/127500 (x86),
PR target/127461 (x86), PR ada/128044, PR ada/127994, PR ada/127974,
PR ada/127994, PR ada/127880, PR ada/127759, PR ada/126448, PR
ada/126125,
PR ada/127756, PR c/127383, PR c++/127232, PR c++/126794, PR c++/127749,
PR c++/126680, PR c++/125536, PR c++/127493, PR c++/127276,
PR c++/127109, PR c++/126922, PR c++/122774, PR c++/127707,
PR c++/127672, PR c++/126654, PR c++/127643, PR fortran/110421,
PR fortran/127683, PR fortran/127187, PR fortran/125324,
PR preprocessor/121508, PR preprocessor/123339, PR fortran/127845,
PR fortran/127846, PR other/116547, PR libstdc++/127757,
PR libstdc++/115955, PR libstdc++/124370, PR libstdc++/125785,
PR libstdc++/127666, PR libstdc++/126364, PR libstdc++/114400,
PR libstdc++/127656, PR libstdc++/123409, PR libstdc++/126786.
.
[ Matthias Klose ]
* Update libstdc++ (all archs) and libgcc (armhf, arm64) symbols files.
.
[ Nicolas Boulenguez ]
* Ada: fix GNATMAKE_FOR_BUILD in ada-gnat-name.diff. Closes: #1136069.
Build gnat with gnat-16 again.
Refresh and apply ada-gcc-name.diff.
Report a source diff when the alihash changes. Closes: #1115882.
Refresh the PR ada/114065 time_t64 patches. Closes: #1108322.
* Compute the libgnat alihash with crc32 instead of xor.
Checksums-Sha1:
59035b7569dd966fc880f57023572e4d7a57c5f8 52568 gcc-16_16.2.0-4.dsc
013e36f4553da1f4aa1086ba8060e262e0009836 2910576 gcc-16_16.2.0-4.debian.tar.xz
7b23ac092b14d9b15b319a9561b8f394b016dbef 11069 gcc-16_16.2.0-4_source.buildinfo
Checksums-Sha256:
a11ecbfc25faf255e3808ef3928008f6e3339eb8d999f43026d62636117dc63d 52568
gcc-16_16.2.0-4.dsc
f141ada9f761935a5446117393e173b71ca110ad5f73ae834362ca26d61426c4 2910576
gcc-16_16.2.0-4.debian.tar.xz
d2cdfccc4dd47a96b236bd51729a1925a824d0e7e489c8dde60c279e7d22c8d2 11069
gcc-16_16.2.0-4_source.buildinfo
Files:
0b2a4400a1efd9a3e553ca538b244611 52568 devel optional gcc-16_16.2.0-4.dsc
92f8b53638cca88aa1ffc0e18dcd466b 2910576 devel optional
gcc-16_16.2.0-4.debian.tar.xz
fb20b3f3a47a5c50758e6341a53c5d4e 11069 devel optional
gcc-16_16.2.0-4_source.buildinfo
-----BEGIN PGP SIGNATURE-----
iQJEBAEBCgAuFiEE1WVxuIqLuvFAv2PWvX6qYHePpvUFAmrci5AQHGRva29AZGVi
aWFuLm9yZwAKCRC9fqpgd4+m9Zp+EADCtnaLu/PVkf6MeYD43XeZl+sU2FibyOQ/
79FSHwF1jyWxlYUNrgBlHmTCNMsBEtThYPqDv29ZRRO4PWV17CRpoyHvU1/RSifh
Jj/O9qkPXQBgs+VN7CDkCe56klJUsCNZrGYo58QPlCpIn3buhfZ63duteyjHYa53
Vkvgs6qmxAZGX71/EczAf9S3FPZ9JGVjtulFuQ4BLeI/LcxyLen9etWlJ2rSRaha
IwUMBH+LZV00gvQ7GqRt5vfoz1NP0LTFExlidxYrPHNdxgtmofTJwoVCckjZtezb
Gf7oOvr4am3XkTbOdj+osBHCx5MaB2cSYB0p56gfq6oU5U9Xj2OCV2ChUD33LoeJ
27fePwFYrApzhj3XS5bydzXYVWvUejZ8tXB06xwr55oC8Qq0Q4pgt0EzFTSVMpdG
Wz6l2tPDEY6q1wxAkWXLQkgV3FWZRLWXqx80EuaFtCo8fIb0qkRd//+mbja55F1R
qoTZzfJcBcI2Tl0NAmt9biPEOprCjb0FUpFLrBJee1M/DFUMGBg7koDYyTwZMZgl
yITxmHICgC15/jraxuiFIszsya/pqLCXTHqXIdGCkxTJ6v7jX5h2OaaLRKlk5V91
q6k8ksS5doHhofTp/mcgFqyCS9bWFDInEVZqZhhoGhaT7gT/7VzeI9JJWMKHCFPl
+TU3xgN2ww==
=BMa/
-----END PGP SIGNATURE-----
pgpWGeD0yoI4o.pgp
Description: PGP signature
--- End Message ---