[PATCH] libsanitizer: also undef _TIME_BITS in sanitizer_procmaps_solaris.cpp

2024-07-19 Thread Thomas Petazzoni
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"

This change has also been proposed to upstream LLVM:

  https://github.com/llvm/llvm-project/pull/99699

Signed-off-by: Thomas Petazzoni 
---
 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 eeb49e2afe3..1b23fd4d512 100644
--- a/libsanitizer/sanitizer_common/sanitizer_procmaps_solaris.cpp
+++ b/libsanitizer/sanitizer_common/sanitizer_procmaps_solaris.cpp
@@ -11,6 +11,7 @@
 
 // Before Solaris 11.4,  doesn't work in a largefile environment.
 #undef _FILE_OFFSET_BITS
+#undef _TIME_BITS
 #include "sanitizer_platform.h"
 #if SANITIZER_SOLARIS
 #  include 
-- 
2.45.2



Re: [PATCH] libgcc/mkmap-symver: support skip_underscore (PR74748)

2016-11-19 Thread Thomas Petazzoni
Hello,

On Thu, 17 Nov 2016 14:08:34 -0700, Jeff Law wrote:

> AFAICT this skips the first character regardless of whether or not it is 
> an underscore when skip_underscore is in effect, right. 

Correct.

> Is that intentional?

All symbols in Blackfin are prepended with an underscore, so we're
pretty much guaranteed there is one, and we precisely want to get rid
of this prepended underscore. So I'd say it's good enough to get rid of
the first character, without checking if it's an underscore or not.

Of course, if you think we really want to be extra safe and only remove
it after making sure it's an underscore, I can probably improve the awk
logic to handle this.

Thanks for the feedback!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com