Cherry pick powerpc64 sanitizer fix from upstream llvm.
See https://reviews.llvm.org/rL346030 and
https://reviews.llvm.org/D52900.
2018-11-08 Bill Seurer <seurer@linux.vnet.ibm.com>
* libsanitizer/sanitizer_common/sanitizer_linux.cc (CheckASLR):
Disable ASLR for powerpc64 when using sanitizers.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265941
138bc75d-0d04-0410-961f-
82ee72b054a4
+2018-11-08 Bill Seurer <seurer@linux.vnet.ibm.com>
+
+ * libsanitizer/sanitizer_common/sanitizer_linux.cc (CheckASLR):
+ Disable ASLR for powerpc64 when using sanitizers.
+
2018-11-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR sanitizer/80953
Printf("This sanitizer is not compatible with enabled ASLR\n");
Die();
}
+#elif SANITIZER_PPC64V2
+ // Disable ASLR for Linux PPC64LE.
+ int old_personality = personality(0xffffffff);
+ if (old_personality != -1 && (old_personality & ADDR_NO_RANDOMIZE) == 0) {
+ VReport(1, "WARNING: Program is being run with address space layout "
+ "randomization (ASLR) enabled which prevents the thread and "
+ "memory sanitizers from working on powerpc64le.\n"
+ "ASLR will be disabled and the program re-executed.\n");
+ CHECK_NE(personality(old_personality | ADDR_NO_RANDOMIZE), -1);
+ ReExec();
+ }
#else
// Do nothing
#endif