On Thu, May 13, 2021 at 1:11 PM H.J. Lu wrote: > > On Thu, May 13, 2021 at 1:01 PM H.J. Lu wrote: > > > > On Thu, May 13, 2021 at 10:27 AM Martin Liška 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 = This is what I checked in. -- H.J.