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.

Reply via email to