package/gcc: add 64-bit time_t fixes to GCC 11.4.0
This commit brings the same patches as commit 81a4b6e7b8b5bb368bce940798bf8432fb420851 ("package/gcc: fix build with BR2_TIME_BITS_64=y"), but for GCC 11.4.0, which is still used in 2024.02.x. Fixes: http://autobuild.buildroot.org/results/641428197d37bc07649feb50eb7e2c65b3a0da0f/ Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
parent
6199d507c3
commit
68a935ca29
@ -0,0 +1,44 @@
|
||||
From 37b5a741ef2d40fc31569d71fbd953c3a8120b6b Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Fri, 3 Feb 2023 11:48:35 -0800
|
||||
Subject: [PATCH] Undef _TIME_BITS along with _FILE_OFFSET_BITS on Linux
|
||||
|
||||
On 32-bit glibc>=2.34 systems using 64bit time_t build fails because
|
||||
_FILE_OFFSET_BITS is undefined here but _TIME_BITS is still set to 64
|
||||
|
||||
Fixes
|
||||
|
||||
```
|
||||
/usr/include/features-time64.h:26:5: error: "_TIME_BITS=64 is allowed
|
||||
only with _FILE_OFFSET_BITS=64"
|
||||
| # error "_TIME_BITS=64 is allowed only with _FILE_OFFSET_BITS=64"
|
||||
| ^
|
||||
| 1 error generated.
|
||||
```
|
||||
|
||||
Reviewed By: thesamesam, MaskRay
|
||||
|
||||
Differential Revision: https://reviews.llvm.org/D140812
|
||||
|
||||
Upstream: https://github.com/llvm/llvm-project/commit/26800a2c7e7996dc773b4e990dd5cca41c45e1a9
|
||||
Upstream: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=d53b3d94aaf211ffb2159614f5aaaf03ceb861cc
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||||
---
|
||||
.../sanitizer_common/sanitizer_platform_limits_posix.cpp | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
|
||||
index 5743516c046..81cf2923ebe 100644
|
||||
--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
|
||||
+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
|
||||
@@ -21,6 +21,7 @@
|
||||
// To get this "true" dirent definition, we undefine _FILE_OFFSET_BITS below.
|
||||
#ifdef _FILE_OFFSET_BITS
|
||||
#undef _FILE_OFFSET_BITS
|
||||
+#undef _TIME_BITS
|
||||
#endif
|
||||
|
||||
// Must go after undef _FILE_OFFSET_BITS.
|
||||
--
|
||||
2.46.0
|
||||
|
@ -0,0 +1,53 @@
|
||||
From 51012d2f0d39293121a5c6e4e26314ebfd6cf958 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||||
Date: Thu, 18 Jul 2024 23:13:41 +0200
|
||||
Subject: [PATCH] libsanitizer: also undef _TIME_BITS in
|
||||
sanitizer_procmaps_solaris.cpp
|
||||
|
||||
Upstream commit
|
||||
https://github.com/llvm/llvm-project/commit/26800a2c7e7996dc773b4e990dd5cca41c45e1a9
|
||||
of LLVM added a #undef _TIME_BITS in
|
||||
libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp to
|
||||
fix the build on 32-bit Linux platforms that have enabled 64-bit
|
||||
time_t using _TIME_BITS=64.
|
||||
|
||||
Indeed, _TIME_BITS=64 can only be used when _FILE_OFFSET_BITS=64, but
|
||||
sanitizer_platform_limits_posix.cpp undefines _FILE_OFFSET_BITS before
|
||||
including any header file. To fix this, the upstream fix was to also
|
||||
undef _TIME_BITS.
|
||||
|
||||
This commit simply does the same in sanitizer_procmaps_solaris.cpp,
|
||||
which also gets compiled under Linux (despite what the file name
|
||||
says). In practice on Linux hosts (where _TIME_BITS=64 matters),
|
||||
sanitizer_procmaps_solaris.cpp will expand to nothing, as pretty much
|
||||
the rest of the file is inside a #ifdef SANITIZER_SOLARIS...#endif. So
|
||||
the #undef _FILE_OFFSET_BITS and #undef _TIME_BITS are only here
|
||||
before including sanitizer_platform.h, which will set the
|
||||
SANITIZER_LINUX/SANITIZER_SOLARIS define depending on the platform.
|
||||
|
||||
Fixes:
|
||||
|
||||
armeb-buildroot-linux-gnueabi/sysroot/usr/include/features-time64.h:26:5: error: #error "_TIME_BITS=64 is allowed only with _FILE_OFFSET_BITS=64"
|
||||
26 | # error "_TIME_BITS=64 is allowed only with _FILE_OFFSET_BITS=64"
|
||||
|
||||
Upstream: https://gcc.gnu.org/pipermail/gcc-patches/2024-July/657811.html
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||||
---
|
||||
libsanitizer/sanitizer_common/sanitizer_procmaps_solaris.cpp | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/libsanitizer/sanitizer_common/sanitizer_procmaps_solaris.cpp b/libsanitizer/sanitizer_common/sanitizer_procmaps_solaris.cpp
|
||||
index 4063ec8deaa..503dedd1129 100644
|
||||
--- a/libsanitizer/sanitizer_common/sanitizer_procmaps_solaris.cpp
|
||||
+++ b/libsanitizer/sanitizer_common/sanitizer_procmaps_solaris.cpp
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
// Before Solaris 11.4, <procfs.h> doesn't work in a largefile environment.
|
||||
#undef _FILE_OFFSET_BITS
|
||||
+#undef _TIME_BITS
|
||||
#include <procfs.h>
|
||||
#include <limits.h>
|
||||
|
||||
--
|
||||
2.46.0
|
||||
|
Loading…
Reference in New Issue
Block a user