|
@@ -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
|
|
|
|
+
|