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.