summaryrefslogtreecommitdiff
path: root/libsanitizer
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2019-04-08 15:08:30 +0200
committerMartin Liska <marxin@gcc.gnu.org>2019-04-08 13:08:30 +0000
commit17cf909024397ffcdaaae2f9174f40f23f6e797e (patch)
treef38423deaa2b5016f6b8ef2f86e388d01468286e /libsanitizer
parent450dd8b3ab7c4c2a83ed891347f980913c5dde3f (diff)
downloadgcc-17cf909024397ffcdaaae2f9174f40f23f6e797e.tar.gz
Add missing libsanitizer extra patch (r259664) (PR sanitizer/89941).
2019-04-08 Martin Liska <mliska@suse.cz> PR sanitizer/89941 * sanitizer_common/sanitizer_platform_limits_linux.cc (defined): Reapply patch from r259664. * sanitizer_common/sanitizer_platform_limits_posix.h (defined): Likewise. From-SVN: r270208
Diffstat (limited to 'libsanitizer')
-rw-r--r--libsanitizer/ChangeLog8
-rw-r--r--libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cc7
-rw-r--r--libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h2
3 files changed, 14 insertions, 3 deletions
diff --git a/libsanitizer/ChangeLog b/libsanitizer/ChangeLog
index 8b599bb754c..a5b56c76b3f 100644
--- a/libsanitizer/ChangeLog
+++ b/libsanitizer/ChangeLog
@@ -1,3 +1,11 @@
+2019-04-08 Martin Liska <mliska@suse.cz>
+
+ PR sanitizer/89941
+ * sanitizer_common/sanitizer_platform_limits_linux.cc (defined):
+ Reapply patch from r259664.
+ * sanitizer_common/sanitizer_platform_limits_posix.h (defined):
+ Likewise.
+
2019-03-13 Eric Botcazou <ebotcazou@adacore.com>
PR sanitizer/80953
diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cc
index 23a014823c4..3a906538129 100644
--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cc
+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cc
@@ -25,9 +25,12 @@
// With old kernels (and even new kernels on powerpc) asm/stat.h uses types that
// are not defined anywhere in userspace headers. Fake them. This seems to work
-// fine with newer headers, too.
+// fine with newer headers, too. Beware that with <sys/stat.h>, struct stat
+// takes the form of struct stat64 on 32-bit platforms if _FILE_OFFSET_BITS=64.
+// Also, for some platforms (e.g. mips) there are additional members in the
+// <sys/stat.h> struct stat:s.
#include <linux/posix_types.h>
-#if defined(__x86_64__) || defined(__mips__)
+#if defined(__x86_64__)
#include <sys/stat.h>
#else
#define ino_t __kernel_ino_t
diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
index 91f38918f35..73af92af1e8 100644
--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
@@ -87,7 +87,7 @@ namespace __sanitizer {
#elif defined(__mips__)
const unsigned struct_kernel_stat_sz =
SANITIZER_ANDROID ? FIRST_32_SECOND_64(104, 128) :
- FIRST_32_SECOND_64(160, 216);
+ FIRST_32_SECOND_64(144, 216);
const unsigned struct_kernel_stat64_sz = 104;
#elif defined(__s390__) && !defined(__s390x__)
const unsigned struct_kernel_stat_sz = 64;