http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59410

--- Comment #19 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to H.J. Lu from comment #18)
> (In reply to Kostya Serebryany from comment #16)
> > > Kernel is free to load PIE at ANY address it wants.  But
> > > you can specify where to load PIE via a linker switch
> > > 
> > > -Ttext-segment 0x855555000000
> > > 
> > > to tell kernel to load PIE to a specific address.
> > 
> > Hm. Interesting. What do I do wrong? 
> > % clang++ simple_race.cc -fsanitize=thread -Wl,-Ttext-segment=0x7d0000000000
> > ;  (setarch x86_64 -R ./a.out )
> > FATAL: ThreadSanitizer can not mmap the shadow memory (something is mapped
> > at 0x555555554000 < 0x7cf000000000)
> > FATAL: Make sure to compile with -fPIE and to link with -pie.
> 
> Please show the output of
> 
> # readelf -lW a.out

Your address must be sensible.  Otherwise kernel will ignore it.
Please try "-Ttext-segment 0x855555000000".

Reply via email to