summaryrefslogtreecommitdiffstats
path: root/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc
diff options
context:
space:
mode:
authorSergey Matveev <earthdok@google.com>2013-06-03 10:20:23 +0000
committerSergey Matveev <earthdok@google.com>2013-06-03 10:20:23 +0000
commit3786ae5c5453669f34aa10d444f5d7162cc6fd93 (patch)
treed667f38353cd9d88ce979f4376bcdd7e7bc16847 /compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc
parent8050395236e1dcccab9cb317d23854cf3bc0985e (diff)
downloadbcm5719-llvm-3786ae5c5453669f34aa10d444f5d7162cc6fd93.tar.gz
bcm5719-llvm-3786ae5c5453669f34aa10d444f5d7162cc6fd93.zip
[sanitizer] Fix kThreadDescriptorSize for glibc <= 2.11.
Address issue reported by Greg Fitzgerald. llvm-svn: 183098
Diffstat (limited to 'compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc')
-rw-r--r--compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc b/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc
index cdc30ccba25..fe8e67d331d 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc
@@ -195,7 +195,13 @@ uptr GetTlsSize() {
#if defined(__x86_64__) || defined(__i386__)
// sizeof(struct thread) from glibc.
+// There has been a report of this being different on glibc 2.11. We don't know
+// when this change happened, so 2.12 is a conservative estimate.
+#if __GNUC_PREREQ(2, 12)
const uptr kThreadDescriptorSize = FIRST_32_SECOND_64(1216, 2304);
+#else
+const uptr kThreadDescriptorSize = FIRST_32_SECOND_64(1168, 2304);
+#endif
uptr ThreadDescriptorSize() {
return kThreadDescriptorSize;
OpenPOWER on IntegriCloud