5.1.1-2
This commit is contained in:
parent
b5d17a9ac5
commit
0bb9c97686
1
.gitignore
vendored
1
.gitignore
vendored
@ -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
|
||||
|
49
gcc.spec
49
gcc.spec
@ -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
|
||||
|
@ -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
75
gcc5-pr65956.patch
Normal 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;
|
||||
+}
|
Loading…
Reference in New Issue
Block a user