On Thu, May 13, 2021 at 1:01 PM H.J. Lu <hjl.to...@gmail.com> wrote: > > On Thu, May 13, 2021 at 10:27 AM Martin Liška <mli...@suse.cz> wrote: > > > > On 5/13/21 5:54 PM, H.J. Lu wrote: > > > On Thu, May 13, 2021 at 09:28:01AM +0200, Martin Liška wrote: > > >> I'm planning to do merge from master twice a year. > > >> This merge was tested on x86_64-linux-gnu and ppc64le-linux-gnu > > >> and survives regression tests. > > >> > > >> Pushed to master. > > >> Thanks, > > >> Martin > > >> > > >> Merged revision: f58e0513dd95944b81ce7a6e7b49ba656de7d75f > > > > > > On Linux/x86-64, I got > > > > > > ../../../../../src-master/libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cpp: > > > In function ??void __sanitizer::InitTlsSize()??: > > > ../../../../../src-master/libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cpp:209:55: > > > error: invalid conversion from ??__sanitizer::uptr*?? {aka ??long > > > unsigned int*??} to ??size_t*?? {aka ??unsigned int*??} [-fpermissive] > > > 209 | ((void (*)(size_t *, size_t > > > *))get_tls_static_info)(&g_tls_size, &tls_align); > > > | ^~~~~~~~~~~ > > > | | > > > | > > > __sanitizer::uptr* {aka long unsigned int*} > > > > > > > > > H.J. > > > > > > > Hm, I can't reproduce it: > > > > /dev/shm/objdir/./gcc/xgcc -shared-libgcc -B/dev/shm/objdir/./gcc > > -nostdinc++ -L/dev/shm/objdir/x86_64-pc-linux-gnu/libstdc++-v3/src > > -L/dev/shm/objdir/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs > > -L/dev/shm/objdir/x86_64-pc-linux-gnu/libstdc++-v3/libsupc++/.libs > > -B/home/marxin/bin/gcc/x86_64-pc-linux-gnu/bin/ > > -B/home/marxin/bin/gcc/x86_64-pc-linux-gnu/lib/ -isystem > > /home/marxin/bin/gcc/x86_64-pc-linux-gnu/include -isystem > > /home/marxin/bin/gcc/x86_64-pc-linux-gnu/sys-include -D_GNU_SOURCE -D_DEBUG > > -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS > > -DHAVE_RPC_XDR_H=0 -DHAVE_TIRPC_RPC_XDR_H=0 -I. > > -I/home/marxin/Programming/gcc/libsanitizer/sanitizer_common -I.. -I > > /home/marxin/Programming/gcc/libsanitizer/include -I > > /home/marxin/Programming/gcc/libsanitizer -isystem > > /home/marxin/Programming/gcc/libsanitizer/include/system -Wall -W > > -Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fPIC > > -fno-builtin -fno-exceptions -fno-rtti -fomit-frame-pointer -funwind-tables > > -fvisibility=hidden -Wno-variadic-macros -I../../libstdc++-v3/include > > -I../../libstdc++-v3/include/x86_64-pc-linux-gnu > > -I/home/marxin/Programming/gcc/libsanitizer/../libstdc++-v3/libsupc++ > > -std=gnu++14 -fcf-protection -mshstk -DSANITIZER_LIBBACKTRACE > > -DSANITIZER_CP_DEMANGLE -I > > /home/marxin/Programming/gcc/libsanitizer/../libbacktrace -I > > ../libbacktrace -I /home/marxin/Programming/gcc/libsanitizer/../include > > -include > > /home/marxin/Programming/gcc/libsanitizer/libbacktrace/backtrace-rename.h > > -g -O2 -D_GNU_SOURCE -MT sanitizer_linux_libcdep.lo -MD -MP -MF > > .deps/sanitizer_linux_libcdep.Tpo -c > > /home/marxin/Programming/gcc/libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cpp > > -fPIC -DPIC -o .libs/sanitizer_linux_libcdep.o > > > > Can you please show full command line? And please attach a pre-processed > > source file. > > Thanks, > > Martin > > The problem is -mx32 where size_t == unsigned int, not unsigned long int. >
I am testing this patch: diff --git a/libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cpp b/libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cpp index da19d3d2ceb..4f9577a97e2 100644 --- a/libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cpp +++ b/libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cpp @@ -197,7 +197,7 @@ __attribute__((unused)) static bool GetLibcVersion(int *major, int *minor, __attribute__((unused)) static int g_use_dlpi_tls_data; #if SANITIZER_GLIBC && !SANITIZER_GO -__attribute__((unused)) static uptr g_tls_size; +__attribute__((unused)) static size_t g_tls_size; void InitTlsSize() { int major, minor, patch; g_use_dlpi_tls_data = -- H.J.