gcc/libsanitizer/tsan
Markus Trippelsdorf 8c32ae0e6d Fix PR78294 - thread sanitizer broken when using ld.gold
When one uses ld.gold to build gcc, the thread sanitizer doesn't work,
because gold is more conservative when applying TLS relaxations than
ld.bfd. In this case a missing initial-exec attribute on a declaration
causes gcc to assume the general dynamic model. With ld.bfd this gets
relaxed to initial exec when linking the shared library, so the missing
attribute doesn't matter. But ld.gold doesn't perform this optimization
and this leads to crashes on tsan instrumented binaries.

See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78294
and: https://sourceware.org/bugzilla/show_bug.cgi?id=20805

The fix is easy, just add the missing attribute.

  PR sanitizer/78294
  * tsan/tsan_rtl.cc: Add missing attribute.

From-SVN: r242480
2016-11-16 11:21:42 +00:00
..
Makefile.am All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
Makefile.in All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
libtool-version
tsan_clock.cc All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_clock.h [libsanitizer merge from upstream r218156] 2014-09-23 17:59:53 +00:00
tsan_debugging.cc All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_defs.h All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_dense_alloc.h All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_fd.cc libsanitizer merge from upstream r250806. 2015-10-21 10:32:45 +03:00
tsan_fd.h libsanitizer merge from upstream r250806. 2015-10-21 10:32:45 +03:00
tsan_flags.cc All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_flags.h libsanitizer merge from upstream r250806. 2015-10-21 10:32:45 +03:00
tsan_flags.inc All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_ignoreset.cc libsanitizer merge from upstream r196090 2013-12-05 09:18:38 +00:00
tsan_ignoreset.h libsanitizer merge from upstream r196090 2013-12-05 09:18:38 +00:00
tsan_interceptors.cc All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_interceptors.h All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_interceptors_mac.cc All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_interface.cc libsanitizer merge from upstream r250806. 2015-10-21 10:32:45 +03:00
tsan_interface.h All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_interface_ann.cc libsanitizer merge from upstream r250806. 2015-10-21 10:32:45 +03:00
tsan_interface_ann.h libsanitizer merge from upstream r191666 2013-11-04 21:33:31 +00:00
tsan_interface_atomic.cc All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_interface_inl.h libsanitizer merge from upstream r250806. 2015-10-21 10:32:45 +03:00
tsan_interface_java.cc All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_interface_java.h libsanitizer merge from upstream r250806. 2015-10-21 10:32:45 +03:00
tsan_libdispatch_mac.cc All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_malloc_mac.cc All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_md5.cc libsanitizer merge from upstream r250806. 2015-10-21 10:32:45 +03:00
tsan_mman.cc All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_mman.h All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_mutex.cc All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_mutex.h All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_mutexset.cc libsanitizer mege from upstream r171973 2013-01-10 12:44:08 +00:00
tsan_mutexset.h All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_new_delete.cc All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_platform.h All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_platform_linux.cc All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_platform_mac.cc All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_platform_posix.cc All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_platform_windows.cc All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_ppc_regs.h All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_preinit.cc All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_report.cc All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_report.h All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_rtl.cc Fix PR78294 - thread sanitizer broken when using ld.gold 2016-11-16 11:21:42 +00:00
tsan_rtl.h All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_rtl_aarch64.S All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_rtl_amd64.S All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_rtl_mips64.S All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_rtl_mutex.cc All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_rtl_ppc64.S All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_rtl_proc.cc All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_rtl_report.cc All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_rtl_thread.cc All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_stack_trace.cc libsanitizer merge from upstream r221802 2014-11-13 20:41:38 +00:00
tsan_stack_trace.h libsanitizer merge from upstream r221802 2014-11-13 20:41:38 +00:00
tsan_stat.cc All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_stat.h All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_suppressions.cc All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_suppressions.h libsanitizer merge from upstream r250806. 2015-10-21 10:32:45 +03:00
tsan_symbolize.cc All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_symbolize.h libsanitizer merge from upstream r250806. 2015-10-21 10:32:45 +03:00
tsan_sync.cc All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_sync.h All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_trace.h All source files: Merge from upstream 285547. 2016-11-09 00:04:09 +02:00
tsan_update_shadow_word_inl.h libsanitizer merge from upstream r250806. 2015-10-21 10:32:45 +03:00
tsan_vector.h [libsanitizer merge from upstream r218156] 2014-09-23 17:59:53 +00:00