7.0.1-0.8
This commit is contained in:
		
							parent
							
								
									d4df112f70
								
							
						
					
					
						commit
						a15b5bd3a0
					
				
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -6,3 +6,4 @@ | ||||
| /gcc-7.0.1-20170201.tar.bz2 | ||||
| /gcc-7.0.1-20170204.tar.bz2 | ||||
| /gcc-7.0.1-20170209.tar.bz2 | ||||
| /gcc-7.0.1-20170211.tar.bz2 | ||||
|  | ||||
							
								
								
									
										25
									
								
								gcc.spec
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								gcc.spec
									
									
									
									
									
								
							| @ -1,10 +1,10 @@ | ||||
| %global DATE 20170209 | ||||
| %global SVNREV 245310 | ||||
| %global DATE 20170211 | ||||
| %global SVNREV 245356 | ||||
| %global gcc_version 7.0.1 | ||||
| %global gcc_major 7 | ||||
| # Note, gcc_release must be integer, if you want to add suffixes to | ||||
| # %{release}, append them after %{gcc_release} on Release: line. | ||||
| %global gcc_release 0.7 | ||||
| %global gcc_release 0.8 | ||||
| %global nvptx_tools_gitrev c28050f60193b3b95a18866a96f03334e874e78f | ||||
| %global nvptx_newlib_gitrev aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24 | ||||
| %global _unpackaged_files_terminate_build 0 | ||||
| @ -234,7 +234,7 @@ Patch10: gcc7-foffload-default.patch | ||||
| Patch11: gcc7-pr79232.patch | ||||
| Patch12: gcc7-pr79288.patch | ||||
| Patch13: gcc7-pr79341.patch | ||||
| Patch14: gcc7-s390x-libsanitizer-CVE.patch | ||||
| Patch14: gcc7-pr79388.patch | ||||
| 
 | ||||
| Patch1000: nvptx-tools-no-ptxas.patch | ||||
| Patch1001: nvptx-tools-build.patch | ||||
| @ -825,7 +825,7 @@ package or when debugging this package. | ||||
| %patch11 -p0 -b .pr79232~ | ||||
| %patch12 -p0 -b .pr79288~ | ||||
| %patch13 -p0 -b .pr79341~ | ||||
| %patch14 -p0 -b .s390x-libsanitizer-CVE~ | ||||
| %patch14 -p0 -b .pr79388~ | ||||
| 
 | ||||
| cd nvptx-tools-%{nvptx_tools_gitrev} | ||||
| %patch1000 -p1 -b .nvptx-tools-no-ptxas~ | ||||
| @ -1758,18 +1758,14 @@ echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libatomic.so.1.* | sed 's, | ||||
| %if %{build_libasan} | ||||
| rm -f libasan.so | ||||
| echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libasan.so.4.* | sed 's,^.*liba,liba,'`' )' > libasan.so | ||||
| %ifnarch s390x | ||||
| echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libasan.so.4.* | sed 's,^.*liba,liba,'`' )' > 32/libasan.so | ||||
| mv ../../../../lib/libasan_preinit.o 32/libasan_preinit.o | ||||
| %endif | ||||
| %endif | ||||
| %if %{build_libubsan} | ||||
| rm -f libubsan.so | ||||
| echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libubsan.so.0.* | sed 's,^.*libu,libu,'`' )' > libubsan.so | ||||
| %ifnarch s390x | ||||
| echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libubsan.so.0.* | sed 's,^.*libu,libu,'`' )' > 32/libubsan.so | ||||
| %endif | ||||
| %endif | ||||
| %if %{build_libcilkrts} | ||||
| rm -f libcilkrts.so | ||||
| echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libcilkrts.so.5.* | sed 's,^.*libc,libc,'`' )' > libcilkrts.so | ||||
| @ -2500,7 +2496,6 @@ fi | ||||
| %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libatomic.a | ||||
| %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libatomic.so | ||||
| %endif | ||||
| %ifnarch s390x | ||||
| %if %{build_libasan} | ||||
| %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libasan.a | ||||
| %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libasan.so | ||||
| @ -2510,7 +2505,6 @@ fi | ||||
| %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libubsan.a | ||||
| %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libubsan.so | ||||
| %endif | ||||
| %endif | ||||
| %if %{build_libcilkrts} | ||||
| %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libcilkrts.a | ||||
| %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libcilkrts.so | ||||
| @ -3247,6 +3241,15 @@ fi | ||||
| %endif | ||||
| 
 | ||||
| %changelog | ||||
| * Sat Feb 11 2017 Jakub Jelinek <jakub@redhat.com> 7.0.1-0.8 | ||||
| - update from the trunk | ||||
|   - PRs c++/71285, c++/78897, c++/78908, c++/79143, c++/79184, c++/79316, | ||||
| 	c++/79350, c++/79401, c++/79435, c++/79457, ipa/70795, | ||||
| 	middle-end/79454, target/79295, tree-optimization/66612, | ||||
| 	tree-optimization/79411 | ||||
| - fix combiner get_last_value handling (PRs rtl-optimization/79388, | ||||
|   rtl-optimization/79450) | ||||
| 
 | ||||
| * Thu Feb  9 2017 Jakub Jelinek <jakub@redhat.com> 7.0.1-0.7 | ||||
| - update from the trunk | ||||
|   - PRs c++/70448, c++/71193, c++/79360, c++/79372, c++/79377, c++/79379, | ||||
|  | ||||
| @ -1,84 +1,26 @@ | ||||
| 2017-02-08  Jakub Jelinek  <jakub@redhat.com> | ||||
| 2017-02-10  Jakub Jelinek  <jakub@redhat.com> | ||||
| 
 | ||||
| 	PR sanitizer/79341 | ||||
| 	* sanitizer_common/sanitizer_common_interceptors.inc | ||||
| 	(INIT_TLS_GET_ADDR): INTERCEPT_FUNCTION __tls_get_offset rather than | ||||
| 	__tls_get_addr_internal. | ||||
| 	(__tls_get_addr_internal): Call __tls_get_offset_wrapper with | ||||
| 	REAL(__tls_get_offset) as another arugment instead of calling | ||||
| 	REAL(__tls_get_addr_internal). | ||||
| 	(__tls_get_offset): Call __tls_get_addr_hidden instead of | ||||
| 	__interceptor___tls_get_addr_internal_protected. | ||||
| 	(__tls_get_offset_wrapper): New function. | ||||
| 	* c-c++-common/ubsan/float-cast-overflow-8.c (TEST): Make min and max | ||||
| 	variables volatile. | ||||
| 
 | ||||
| --- libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc.jj	2017-02-07 11:08:15.000000000 -0500
 | ||||
| +++ libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc	2017-02-08 05:28:58.656850984 -0500
 | ||||
| @@ -4550,11 +4550,15 @@ void *__tls_get_addr_opt(void *arg);
 | ||||
|  //   descriptor offset as an argument instead of a pointer.  GOT address | ||||
|  //   is passed in r12, so it's necessary to write it in assembly.  This is | ||||
|  //   the function used by the compiler. | ||||
| -#define INIT_TLS_GET_ADDR COMMON_INTERCEPT_FUNCTION(__tls_get_addr_internal)
 | ||||
| +extern "C" uptr __tls_get_offset_wrapper (void *arg, uptr (*fn) (void *));
 | ||||
| +#define INIT_TLS_GET_ADDR COMMON_INTERCEPT_FUNCTION(__tls_get_offset)
 | ||||
| +DEFINE_REAL(uptr, __tls_get_offset, void *arg)
 | ||||
| +extern "C" uptr __tls_get_offset (void *arg);
 | ||||
| +extern "C" uptr __interceptor___tls_get_offset (void *arg);
 | ||||
|  INTERCEPTOR(uptr, __tls_get_addr_internal, void *arg) { | ||||
|    void *ctx; | ||||
|    COMMON_INTERCEPTOR_ENTER(ctx, __tls_get_addr_internal, arg); | ||||
| -  uptr res = REAL(__tls_get_addr_internal)(arg);
 | ||||
| +  uptr res = __tls_get_offset_wrapper(arg, REAL(__tls_get_offset));
 | ||||
|    uptr tp = reinterpret_cast<uptr>(__builtin_thread_pointer()); | ||||
|    void *ptr = reinterpret_cast<void *>(res + tp); | ||||
|    uptr tls_begin, tls_end; | ||||
| @@ -4569,29 +4573,42 @@ INTERCEPTOR(uptr, __tls_get_addr_interna
 | ||||
|  // We need a protected symbol aliasing the above, so that we can jump | ||||
|  // directly to it from the assembly below. | ||||
|  extern "C" __attribute__((alias("__interceptor___tls_get_addr_internal"), | ||||
| -                          visibility("protected")))
 | ||||
| -uptr __interceptor___tls_get_addr_internal_protected(void *arg);
 | ||||
| +                          visibility("hidden")))
 | ||||
| +uptr __tls_get_addr_hidden(void *arg);
 | ||||
|  // Now carefully intercept __tls_get_offset. | ||||
|  asm( | ||||
|    ".text\n" | ||||
| -  ".global __tls_get_offset\n"
 | ||||
| -  "__tls_get_offset:\n"
 | ||||
|  // The __intercept_ version has to exist, so that gen_dynamic_list.py | ||||
|  // exports our symbol. | ||||
| +  ".weak __tls_get_offset\n"
 | ||||
| +  ".type __tls_get_offset, @function\n"
 | ||||
| +  "__tls_get_offset:\n"
 | ||||
|    ".global __interceptor___tls_get_offset\n" | ||||
| +  ".type __interceptor___tls_get_offset, @function\n"
 | ||||
|    "__interceptor___tls_get_offset:\n" | ||||
|  #ifdef __s390x__ | ||||
|    "la %r2, 0(%r2,%r12)\n" | ||||
| -  "jg __interceptor___tls_get_addr_internal_protected\n"
 | ||||
| +  "jg __tls_get_addr_hidden\n"
 | ||||
|  #else | ||||
|    "basr %r3,0\n" | ||||
|    "0: la %r2,0(%r2,%r12)\n" | ||||
|    "l %r4,1f-0b(%r3)\n" | ||||
|    "b 0(%r4,%r3)\n" | ||||
| -  "1: .long __interceptor___tls_get_addr_internal_protected - 0b\n"
 | ||||
| +  "1: .long __tls_get_addr_hidden - 0b\n"
 | ||||
|  #endif | ||||
| -  ".type __tls_get_offset, @function\n"
 | ||||
| -  ".size __tls_get_offset, .-__tls_get_offset\n"
 | ||||
| +  ".size __interceptor___tls_get_offset, .-__interceptor___tls_get_offset\n"
 | ||||
| +// Assembly wrapper to call REAL(__tls_get_offset)(arg)
 | ||||
| +  ".type __tls_get_offset_wrapper, @function\n"
 | ||||
| +  "__tls_get_offset_wrapper:\n"
 | ||||
| +#ifdef __s390x__
 | ||||
| +  "sgr %r2,%r12\n"
 | ||||
| +  "lgr %r1,%r3\n"
 | ||||
| +#else
 | ||||
| +  "sr %r2,%r12\n"
 | ||||
| +  "lr %r1,%r3\n"
 | ||||
| +#endif
 | ||||
| +  "br %r1\n"
 | ||||
| +  ".size __tls_get_offset_wrapper, .-__tls_get_offset_wrapper\n"
 | ||||
|  ); | ||||
|  #endif // SANITIZER_S390 | ||||
|  #else | ||||
| --- gcc/testsuite/c-c++-common/ubsan/float-cast-overflow-8.c.jj	2015-10-29 09:14:30.000000000 +0100
 | ||||
| +++ gcc/testsuite/c-c++-common/ubsan/float-cast-overflow-8.c	2017-02-10 18:09:47.767251774 +0100
 | ||||
| @@ -8,7 +8,7 @@
 | ||||
|  #define TEST(type1, type2) \ | ||||
|    if (type1##_MIN)						\ | ||||
|      {								\ | ||||
| -      type2 min = type1##_MIN;					\
 | ||||
| +      volatile type2 min = type1##_MIN;				\
 | ||||
|        type2 add = -1.0;						\ | ||||
|        while (1)							\ | ||||
|  	{							\ | ||||
| @@ -28,7 +28,7 @@
 | ||||
|        volatile type1 tem3 = cvt_##type1##_##type2 (-1.0f);	\ | ||||
|      }								\ | ||||
|    {								\ | ||||
| -    type2 max = type1##_MAX;					\
 | ||||
| +    volatile type2 max = type1##_MAX;				\
 | ||||
|      type2 add = 1.0;						\ | ||||
|      while (1)							\ | ||||
|        {								\ | ||||
|  | ||||
							
								
								
									
										76
									
								
								gcc7-pr79388.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								gcc7-pr79388.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,76 @@ | ||||
| 2017-02-10  Jakub Jelinek  <jakub@redhat.com> | ||||
| 
 | ||||
| 	PR rtl-optimization/79388 | ||||
| 	PR rtl-optimization/79450 | ||||
| 	* combine.c (distribute_notes): When removing TEM_INSN for which | ||||
| 	corresponding dest has last value recorded, invalidate that last | ||||
| 	value. | ||||
| 
 | ||||
| 	* gcc.c-torture/execute/pr79388.c: New test. | ||||
| 	* gcc.c-torture/execute/pr79450.c: New test. | ||||
| 
 | ||||
| --- gcc/combine.c.jj	2017-01-30 09:31:48.000000000 +0100
 | ||||
| +++ gcc/combine.c	2017-02-10 17:05:57.500482518 +0100
 | ||||
| @@ -14288,6 +14288,11 @@ distribute_notes (rtx notes, rtx_insn *f
 | ||||
|  					    NULL_RTX, NULL_RTX, NULL_RTX); | ||||
|  			  distribute_links (LOG_LINKS (tem_insn)); | ||||
|   | ||||
| +			  unsigned int regno = REGNO (XEXP (note, 0));
 | ||||
| +			  reg_stat_type *rsp = ®_stat[regno];
 | ||||
| +			  if (rsp->last_set == tem_insn)
 | ||||
| +			    record_value_for_reg (XEXP (note, 0), NULL, NULL_RTX);
 | ||||
| +
 | ||||
|  			  SET_INSN_DELETED (tem_insn); | ||||
|  			  if (tem_insn == i2) | ||||
|  			    i2 = NULL; | ||||
| --- gcc/testsuite/gcc.c-torture/execute/pr79388.c.jj	2017-02-10 17:03:01.993814529 +0100
 | ||||
| +++ gcc/testsuite/gcc.c-torture/execute/pr79388.c	2017-02-10 17:02:50.000000000 +0100
 | ||||
| @@ -0,0 +1,23 @@
 | ||||
| +/* PR rtl-optimization/79388 */
 | ||||
| +/* { dg-additional-options "-fno-tree-coalesce-vars" } */
 | ||||
| +
 | ||||
| +unsigned int a, c;
 | ||||
| +
 | ||||
| +__attribute__ ((noinline, noclone)) unsigned int
 | ||||
| +foo (unsigned int p)
 | ||||
| +{
 | ||||
| +  p |= 1;
 | ||||
| +  p &= 0xfffe;
 | ||||
| +  p %= 0xffff;
 | ||||
| +  c = p;
 | ||||
| +  return a + p;
 | ||||
| +}
 | ||||
| +
 | ||||
| +int
 | ||||
| +main (void)
 | ||||
| +{
 | ||||
| +  int x = foo (6);
 | ||||
| +  if (x != 6)
 | ||||
| +    __builtin_abort();
 | ||||
| +  return 0;
 | ||||
| +}
 | ||||
| --- gcc/testsuite/gcc.c-torture/execute/pr79450.c.jj	2017-02-10 17:03:45.698233423 +0100
 | ||||
| +++ gcc/testsuite/gcc.c-torture/execute/pr79450.c	2017-02-10 17:03:39.000000000 +0100
 | ||||
| @@ -0,0 +1,22 @@
 | ||||
| +/* PR rtl-optimization/79450 */
 | ||||
| +
 | ||||
| +unsigned int
 | ||||
| +foo (unsigned char x, unsigned long long y)
 | ||||
| +{
 | ||||
| +  do
 | ||||
| +    {
 | ||||
| +      x &= !y;
 | ||||
| +      x %= 24;
 | ||||
| +    }
 | ||||
| +  while (x < y);
 | ||||
| +  return x + y;
 | ||||
| +}
 | ||||
| +
 | ||||
| +int
 | ||||
| +main (void)
 | ||||
| +{
 | ||||
| +  unsigned int x = foo (1, 0);
 | ||||
| +  if (x != 1)
 | ||||
| +    __builtin_abort ();
 | ||||
| +  return 0;
 | ||||
| +}
 | ||||
| @ -1,46 +0,0 @@ | ||||
| 2017-02-08  Jakub Jelinek  <jakub@redhat.com> | ||||
| 
 | ||||
| 	PR sanitizer/79341 | ||||
| 	* sanitizer_common/sanitizer_linux_s390.cc (FixedCVE_2016_2143): | ||||
| 	Whiltelist fixed RHEL6 and RHEL7 kernels. | ||||
| 
 | ||||
| --- libsanitizer/sanitizer_common/sanitizer_linux_s390.cc	2016-11-09 15:22:41.917353799 +0100
 | ||||
| +++ libsanitizer/sanitizer_common/sanitizer_linux_s390.cc	2017-02-08 15:36:44.335857387 +0100
 | ||||
| @@ -134,6 +134,18 @@ static bool FixedCVE_2016_2143() {
 | ||||
|    if (ptr[0] == '.') | ||||
|      patch = internal_simple_strtoll(ptr+1, &ptr, 10); | ||||
|    if (major < 3) { | ||||
| +    if (major == 2 && minor == 6 && patch == 32 && ptr[0] == '-'
 | ||||
| +	&& internal_strstr(ptr, ".el6")) {
 | ||||
| +      // Check RHEL6
 | ||||
| +      int r1 = internal_simple_strtoll(ptr+1, &ptr, 10);
 | ||||
| +      if (r1 >= 657) // 2.6.32-657.el6 or later
 | ||||
| +	return true;
 | ||||
| +      if (r1 == 642 && ptr[0] == '.') {
 | ||||
| +	int r2 = internal_simple_strtoll(ptr+1, &ptr, 10);
 | ||||
| +	if (r2 >= 9) // 2.6.32-642.9.1.el6 or later
 | ||||
| +	  return true;
 | ||||
| +      }
 | ||||
| +    }
 | ||||
|      // <3.0 is bad. | ||||
|      return false; | ||||
|    } else if (major == 3) { | ||||
| @@ -143,6 +155,18 @@ static bool FixedCVE_2016_2143() {
 | ||||
|      // 3.12.58+ is OK. | ||||
|      if (minor == 12 && patch >= 58) | ||||
|        return true; | ||||
| +    if (minor == 10 && patch == 0 && ptr[0] == '-'
 | ||||
| +	&& internal_strstr(ptr, ".el7")) {
 | ||||
| +      // Check RHEL7
 | ||||
| +      int r1 = internal_simple_strtoll(ptr+1, &ptr, 10);
 | ||||
| +      if (r1 >= 426) // 3.10.0-426.el7 or later
 | ||||
| +	return true;
 | ||||
| +      if (r1 == 327 && ptr[0] == '.') {
 | ||||
| +	int r2 = internal_simple_strtoll(ptr+1, &ptr, 10);
 | ||||
| +	if (r2 >= 27) // 3.10.0-327.27.1.el7 or later
 | ||||
| +	  return true;
 | ||||
| +      }
 | ||||
| +    }
 | ||||
|      // Otherwise, bad. | ||||
|      return false; | ||||
|    } else if (major == 4) { | ||||
							
								
								
									
										2
									
								
								sources
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								sources
									
									
									
									
									
								
							| @ -1,3 +1,3 @@ | ||||
| SHA512 (gcc-7.0.1-20170209.tar.bz2) = 44841b8d87a8d34ec9bd944858a34a4a51f70290b76adabd01bddcf559f7f37dc187adb7d1b8e60d22bc08c363c2a048b8e84c61c4a6e51c022f654415c11940 | ||||
| SHA512 (gcc-7.0.1-20170211.tar.bz2) = bcc672ca80bb0c6e8e396bcf2f3f7fb22d3a8688317181c193c9085bcd0379b945cc25d8d44b0eded94661b50079dbce4c26ff947ae51b42b7509eb9c384ec60 | ||||
| SHA512 (nvptx-newlib-aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24.tar.bz2) = 38f97c9297ad108568352a4d28277455a3c01fd8b7864e798037e5006b6f757022e874bbf3f165775fe3b873781bc108137bbeb42dd5ed3c7d3e6747746fa918 | ||||
| SHA512 (nvptx-tools-c28050f60193b3b95a18866a96f03334e874e78f.tar.bz2) = 95b577a06a93bb044dbc8033e550cb36bcf2ab2687da030a7318cdc90e7467ed49665e247dcafb5ff4a7e92cdc264291d19728bd17fab902fb64b22491269330 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user