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

--- Comment #14 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to Kostya Serebryany from comment #11)
> > 555555554000-555555555000 r-xp 00000000 08:11 34221424                  
> > /export/build/gnu/gcc-x32/build-x86_64-linux/gcc/testsuite/atomic_stack.exe
> 
> So, the executable is loaded into 555555554000, which intersects with 
> tsan's shadow. 
> See tsan/rtl/tsan_platform.h, around "C++ linux memory layout".
> In our experience this happens when ASLR is off. 
> And this is caused by the kernel patch I mentioned above. 
> https://code.google.com/p/thread-sanitizer/wiki/
> CppManual?ts=1386348951&updated=CppManual#FAQ
> 
> We have not seen other reason for such mapping, maybe you know one :)

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.

Reply via email to