This commit is contained in:
Jakub Jelinek 2015-06-06 10:38:03 +02:00
parent b5d17a9ac5
commit 0bb9c97686
5 changed files with 120 additions and 53 deletions

1
.gitignore vendored
View File

@ -17,3 +17,4 @@
/gcc-5.0.1-20150413.tar.bz2
/gcc-5.0.1-20150417.tar.bz2
/gcc-5.1.1-20150422.tar.bz2
/gcc-5.1.1-20150606.tar.bz2

View File

@ -1,9 +1,9 @@
%global DATE 20150422
%global SVNREV 222331
%global DATE 20150606
%global SVNREV 224186
%global gcc_version 5.1.1
# 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 1
%global gcc_release 2
%global _unpackaged_files_terminate_build 0
%global _performance_build 1
%global multilib_64_archs sparc64 ppc64 ppc64p7 s390x x86_64
@ -205,7 +205,7 @@ Patch12: gcc5-libgo-p224.patch
Patch13: gcc5-aarch64-async-unw-tables.patch
Patch14: gcc5-libsanitize-aarch64-va42.patch
Patch15: gcc5-pr65689.patch
Patch16: gcc5-pr65780.patch
Patch16: gcc5-pr65956.patch
# On ARM EABI systems, we do want -gnueabi to be part of the
# target triple.
@ -773,7 +773,13 @@ rm -f libgo/go/crypto/elliptic/p224{,_test}.go
%patch13 -p0 -b .aarch64-async-unw-tables~
%patch14 -p0 -b .libsanitize-aarch64-va42~
%patch15 -p0 -b .pr65689~
%patch16 -p0 -b .pr65780~
%patch16 -p0 -b .pr65956~
%ifarch %{arm}
# Workaround PR65956, undo the overalignment optimization
# on ARM because it has broken backend.
sed -i -e 's/align != TYPE_ALIGN/align < TYPE_ALIGN/' gcc/tree-sra.c
%endif
sed -i -e 's/ -Wl,-z,nodlopen//g' gcc/ada/gcc-interface/Makefile.in
%if 0%{?_enable_debug_packages}
mkdir dwz-wrapper
@ -1052,7 +1058,7 @@ CC="$CC" CXX="$CXX" CFLAGS="$OPT_FLAGS" \
--enable-languages=c,c++,objc,obj-c++,fortran${enablelada}${enablelgo},lto \
$CONFIGURE_OPTS
%ifarch sparc sparcv9 sparc64 %{arm}
%ifarch sparc sparcv9 sparc64
make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" bootstrap
%else
make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" profiledbootstrap
@ -3072,6 +3078,37 @@ fi
%doc rpm.doc/changelogs/libcc1/ChangeLog*
%changelog
* Sat Jun 6 2015 Jakub Jelinek <jakub@redhat.com> 5.1.1-2
- update from the 5 branch
- PRs c++/51747, c++/59012, c++/59766, c++/65695, c++/65721, c++/65727,
c++/65858, c++/65876, c++/65896, c++/65942, c++/66007, c++/66211,
c++/66320, c++/66405, debug/65549, fortran/40958, fortran/60780,
fortran/64925, fortran/65429, fortran/65903, fortran/65976,
fortran/66039, fortran/66040, fortran/66043, fortran/66044,
fortran/66045, fortran/66052, fortran/66057, fortran/66106,
fortran/66257, fortran/66347, fortran/66377, fortran/66380, ipa/65873,
libstdc++/65352, libstdc++/65839, libstdc++/65883, libstdc++/66017,
lto/65559, middle-end/36043, middle-end/64729, middle-end/66133,
middle-end/66199, middle-end/66221, middle-end/66251, middle-end/66345,
rtl-optimization/30967, rtl-optimization/65805, sanitizer/64839,
sanitizer/66190, target/58744, target/64579, target/65408,
target/65456, target/65849, target/65895, target/65955, target/65979,
target/65990, target/66015, target/66047, target/66140, target/66148,
target/66174, target/66215, target/66224, tree-optimization/62031,
tree-optimization/63551, tree-optimization/65875,
tree-optimization/65984, tree-optimization/66123,
tree-optimization/66233, tree-optimization/66251,
tree-optimization/66272, tree-optimization/66280
- allow -Wno-narrowing to suppress C++11 narrowing errors (#1227603,
PR c++/65801)
- fix debug/vector operator= bug (#1223182)
- fix DCE loop handling (#1220043, PR tree-optimization/66101)
- handle NULL in libgo runtime_funcname_go (#1212472, PR go/66016)
- work around ARM backend issues with overaligned scalars (#1217224,
PR target/65956)
- drop -Wl,-z,nodlopen from libgnat shared libraries, they aren't
using executable stack anymore (#1211957)
* Wed Apr 22 2015 Jakub Jelinek <jakub@redhat.com> 5.1.1-1
- update from the 5 branch
- GCC 5.1 release

View File

@ -1,46 +0,0 @@
2015-04-22 Jakub Jelinek <jakub@redhat.com>
PR target/65780
* config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
default_binds_local_p_2.
* config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
* config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
--- gcc/config/s390/linux.h.jj 2015-01-05 13:07:16.000000000 +0100
+++ gcc/config/s390/linux.h 2015-04-22 17:39:38.880273650 +0200
@@ -90,4 +90,10 @@ along with GCC; see the file COPYING3.
#undef TARGET_LIBC_HAS_FUNCTION
#define TARGET_LIBC_HAS_FUNCTION gnu_libc_has_function
+/* Uninitialized common symbols in non-PIE executables, even with
+ strong definitions in dependent shared libraries, will resolve
+ to COPY relocated symbol in the executable. See PR65780. */
+#undef TARGET_BINDS_LOCAL_P
+#define TARGET_BINDS_LOCAL_P default_binds_local_p_2
+
#endif
--- gcc/config/arm/linux-elf.h.jj 2015-01-05 13:07:16.000000000 +0100
+++ gcc/config/arm/linux-elf.h 2015-04-22 17:42:35.979420149 +0200
@@ -118,3 +118,9 @@
/* Add .note.GNU-stack. */
#undef NEED_INDICATE_EXEC_STACK
#define NEED_INDICATE_EXEC_STACK 1
+
+/* Uninitialized common symbols in non-PIE executables, even with
+ strong definitions in dependent shared libraries, will resolve
+ to COPY relocated symbol in the executable. See PR65780. */
+#undef TARGET_BINDS_LOCAL_P
+#define TARGET_BINDS_LOCAL_P default_binds_local_p_2
--- gcc/config/aarch64/aarch64-linux.h.jj 2015-01-05 13:07:17.000000000 +0100
+++ gcc/config/aarch64/aarch64-linux.h 2015-04-22 17:40:46.395185820 +0200
@@ -69,4 +69,10 @@
#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
+/* Uninitialized common symbols in non-PIE executables, even with
+ strong definitions in dependent shared libraries, will resolve
+ to COPY relocated symbol in the executable. See PR65780. */
+#undef TARGET_BINDS_LOCAL_P
+#define TARGET_BINDS_LOCAL_P default_binds_local_p_2
+
#endif /* GCC_AARCH64_LINUX_H */

75
gcc5-pr65956.patch Normal file
View File

@ -0,0 +1,75 @@
2015-05-05 Jakub Jelinek <jakub@redhat.com>
PR target/65956
* gcc.c-torture/execute/pr65956.c: New test.
--- gcc/testsuite/gcc.c-torture/execute/pr65956.c.jj 2015-05-01 10:32:34.730150257 +0200
+++ gcc/testsuite/gcc.c-torture/execute/pr65956.c 2015-05-01 10:32:13.000000000 +0200
@@ -0,0 +1,67 @@
+/* PR target/65956 */
+
+struct A { char *a; int b; long long c; };
+char v[3];
+
+__attribute__((noinline, noclone)) void
+fn1 (char *x, char *y)
+{
+ if (x != &v[1] || y != &v[2])
+ __builtin_abort ();
+ v[1]++;
+}
+
+__attribute__((noinline, noclone)) int
+fn2 (char *x)
+{
+ asm volatile ("" : "+g" (x) : : "memory");
+ return x == &v[0];
+}
+
+__attribute__((noinline, noclone)) void
+fn3 (const char *x)
+{
+ if (x[0] != 0)
+ __builtin_abort ();
+}
+
+static struct A
+foo (const char *x, struct A y, struct A z)
+{
+ struct A r = { 0, 0, 0 };
+ if (y.b && z.b)
+ {
+ if (fn2 (y.a) && fn2 (z.a))
+ switch (x[0])
+ {
+ case '|':
+ break;
+ default:
+ fn3 (x);
+ }
+ fn1 (y.a, z.a);
+ }
+ return r;
+}
+
+__attribute__((noinline, noclone)) int
+bar (int x, struct A *y)
+{
+ switch (x)
+ {
+ case 219:
+ foo ("+", y[-2], y[0]);
+ case 220:
+ foo ("-", y[-2], y[0]);
+ }
+}
+
+int
+main ()
+{
+ struct A a[3] = { { &v[1], 1, 1LL }, { &v[0], 0, 0LL }, { &v[2], 2, 2LL } };
+ bar (220, a + 2);
+ if (v[1] != 1)
+ __builtin_abort ();
+ return 0;
+}

View File

@ -1 +1 @@
75d3cea2e9d56d53de2db2a8c8f8bb1d gcc-5.1.1-20150422.tar.bz2
386f4797bb675e09b8176463ba37e981 gcc-5.1.1-20150606.tar.bz2