Commit 2d7c5f9d authored by Vladimir Bashkirtsev's avatar Vladimir Bashkirtsev

Fixed error 'size_of_array' is negative

parent 8518164b
......@@ -4,6 +4,7 @@ temporary:
mkswap swap
swapon swap
tar xf gcc-6.5.0.tar.xz
patch -Np1 -d gcc-6.5.0 < gcc-6.5.0-fix_error_size_of_array_is_negative.patch
cd gcc-6.5.0 && sed -i 's/\(install.*:\) install-.*recursive/\1/' libffi/Makefile.in
cd gcc-6.5.0 && sed -i 's/\(install-data-am:\).*/\1/' libffi/include/Makefile.in
cd gcc-6.5.0 && sed -i 's/absolute/file normalize/' libjava/testsuite/lib/libjava.exp
......
diff -uNr gcc-6.5.0/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc gcc-6.5.0-fix_error_size_of_array_is_negative/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
--- gcc-6.5.0/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc 2018-09-23 18:06:14.000000000 +0930
+++ gcc-6.5.0-fix_error_size_of_array_is_negative/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc 2021-07-31 14:49:09.258299675 +0930
@@ -1130,8 +1130,9 @@
#ifndef __GLIBC_PREREQ
#define __GLIBC_PREREQ(x, y) 0
#endif
-#if !defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)
-/* On aarch64 glibc 2.20 and earlier provided incorrect mode field. */
+#if !SANITIZER_LINUX || __GLIBC_PREREQ (2, 31)
+/* glibc 2.30 and earlier provided 16-bit mode field instead of 32-bit
+ on many architectures. */
CHECK_SIZE_AND_OFFSET(ipc_perm, mode);
#endif
diff -uNr gcc-6.5.0/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h gcc-6.5.0-fix_error_size_of_array_is_negative/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
--- gcc-6.5.0/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h 2017-06-30 03:56:45.000000000 +0930
+++ gcc-6.5.0-fix_error_size_of_array_is_negative/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h 2021-07-31 14:53:16.901081519 +0930
@@ -207,20 +207,13 @@
unsigned long __unused1;
unsigned long __unused2;
#elif defined(__sparc__)
-# if defined(__arch64__)
unsigned mode;
- unsigned short __pad1;
-# else
- unsigned short __pad1;
- unsigned short mode;
unsigned short __pad2;
-# endif
unsigned short __seq;
unsigned long long __unused1;
unsigned long long __unused2;
#else
- unsigned short mode;
- unsigned short __pad1;
+ unsigned int mode;
unsigned short __seq;
unsigned short __pad2;
#if defined(__x86_64__) && !defined(_LP64)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment