aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2017-10-20 09:32:35 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2017-10-20 09:32:35 +0200
commit9a45ffbd122d77a87c49d05b936a9d162625c5d8 (patch)
tree5c81a4874ff7da20df3a73e552be535591c93a64 /gcc
parent42a764f76f14ce2718d30459dc140d1410ef118e (diff)
downloadgcc-9a45ffbd122d77a87c49d05b936a9d162625c5d8.zip
gcc-9a45ffbd122d77a87c49d05b936a9d162625c5d8.tar.gz
gcc-9a45ffbd122d77a87c49d05b936a9d162625c5d8.tar.bz2
re PR sanitizer/82595 (bootstrap fails in libsanitizer on powerpc64-unknown-linux-gnu)
PR sanitizer/82595 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Add libtsan_preinit.o for -fsanitize=thread link of executables. (LIBLSAN_EARLY_SPEC): Add liblsan_preinit.o for -fsanitize=leak link of executables. * lsan/lsan.h (__lsan_init): Add SANITIZER_INTERFACE_ATTRIBUTE. * lsan/Makefile.am (nodist_toolexeclib_HEADERS): Add liblsan_preinit.o. (lsan_files): Remove lsan_preinit.cc. (liblsan_preinit.o): New rule. * lsan/Makefile.in: Regenerated. From-SVN: r253925
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/gnu-user.h6
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index feb665f..f28e70a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2017-10-20 Jakub Jelinek <jakub@redhat.com>
+ PR sanitizer/82595
+ * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Add libtsan_preinit.o
+ for -fsanitize=thread link of executables.
+ (LIBLSAN_EARLY_SPEC): Add liblsan_preinit.o for -fsanitize=leak
+ link of executables.
+
PR target/82370
* config/i386/sse.md (VI248_AVX2, VI248_AVX512BW, VI248_AVX512BW_2):
New mode iterators.
diff --git a/gcc/config/gnu-user.h b/gcc/config/gnu-user.h
index a967b69..df17b18 100644
--- a/gcc/config/gnu-user.h
+++ b/gcc/config/gnu-user.h
@@ -162,11 +162,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
LD_STATIC_OPTION " --whole-archive -lasan --no-whole-archive " \
LD_DYNAMIC_OPTION "}}%{!static-libasan:-lasan}"
#undef LIBTSAN_EARLY_SPEC
-#define LIBTSAN_EARLY_SPEC "%{static-libtsan:%{!shared:" \
+#define LIBTSAN_EARLY_SPEC "%{!shared:libtsan_preinit%O%s} " \
+ "%{static-libtsan:%{!shared:" \
LD_STATIC_OPTION " --whole-archive -ltsan --no-whole-archive " \
LD_DYNAMIC_OPTION "}}%{!static-libtsan:-ltsan}"
#undef LIBLSAN_EARLY_SPEC
-#define LIBLSAN_EARLY_SPEC "%{static-liblsan:%{!shared:" \
+#define LIBLSAN_EARLY_SPEC "%{!shared:liblsan_preinit%O%s} " \
+ "%{static-liblsan:%{!shared:" \
LD_STATIC_OPTION " --whole-archive -llsan --no-whole-archive " \
LD_DYNAMIC_OPTION "}}%{!static-liblsan:-llsan}"
#endif