[llvm-branch-commits] [compiler-rt-branch] r261244 - Merging r261193:
Hans Wennborg via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Thu Feb 18 11:23:11 PST 2016
Author: hans
Date: Thu Feb 18 13:23:11 2016
New Revision: 261244
URL: http://llvm.org/viewvc/llvm-project?rev=261244&view=rev
Log:
Merging r261193:
------------------------------------------------------------------------
r261193 | hahnfeld | 2016-02-17 23:08:26 -0800 (Wed, 17 Feb 2016) | 6 lines
[compiler-rt] Return correct size of struct pthread for glibc-2.12.2
There seems to be a difference between 2.12.1 and 2.12.2 in 64-bit build.
Tested on Scientific Linux 6.6, based on RHEL.
Differential Revision: http://reviews.llvm.org/D17190
------------------------------------------------------------------------
Modified:
compiler-rt/branches/release_38/ (props changed)
compiler-rt/branches/release_38/lib/sanitizer_common/sanitizer_linux_libcdep.cc
Propchange: compiler-rt/branches/release_38/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Feb 18 13:23:11 2016
@@ -1 +1 @@
-/compiler-rt/trunk:258916,259755,260669,260839,261073,261142
+/compiler-rt/trunk:258916,259755,260669,260839,261073,261142,261193
Modified: compiler-rt/branches/release_38/lib/sanitizer_common/sanitizer_linux_libcdep.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/branches/release_38/lib/sanitizer_common/sanitizer_linux_libcdep.cc?rev=261244&r1=261243&r2=261244&view=diff
==============================================================================
--- compiler-rt/branches/release_38/lib/sanitizer_common/sanitizer_linux_libcdep.cc (original)
+++ compiler-rt/branches/release_38/lib/sanitizer_common/sanitizer_linux_libcdep.cc Thu Feb 18 13:23:11 2016
@@ -222,6 +222,11 @@ uptr ThreadDescriptorSize() {
char *end;
int minor = internal_simple_strtoll(buf + 8, &end, 10);
if (end != buf + 8 && (*end == '\0' || *end == '.')) {
+ int patch = 0;
+ if (*end == '.')
+ // strtoll will return 0 if no valid conversion could be performed
+ patch = internal_simple_strtoll(end + 1, nullptr, 10);
+
/* sizeof(struct pthread) values from various glibc versions. */
if (SANITIZER_X32)
val = 1728; // Assume only one particular version for x32.
@@ -235,9 +240,9 @@ uptr ThreadDescriptorSize() {
val = FIRST_32_SECOND_64(1136, 1712);
else if (minor == 10)
val = FIRST_32_SECOND_64(1168, 1776);
- else if (minor <= 12)
+ else if (minor == 11 || (minor == 12 && patch == 1))
val = FIRST_32_SECOND_64(1168, 2288);
- else if (minor == 13)
+ else if (minor <= 13)
val = FIRST_32_SECOND_64(1168, 2304);
else
val = FIRST_32_SECOND_64(1216, 2304);
More information about the llvm-branch-commits
mailing list