Compare commits

...

38 Commits
master ... f26

Author SHA1 Message Date
Jakub Jelinek 23129117d6 7.3.1-2 2018-01-30 13:25:50 +01:00
Jakub Jelinek 01379efd2a 7.3.1-2 2018-01-30 11:44:15 +01:00
Jakub Jelinek eabbef478b 7.3.1-1 2018-01-25 11:53:24 +01:00
Jeff Law 924e2261d5 - Fix -fstack-clash-protection codegen issue on 32 bit x86 (#1536555) 2018-01-25 11:52:35 +01:00
Jakub Jelinek 4f6215525c 7.2.1-7 2018-01-17 03:49:58 +01:00
Jakub Jelinek ef8dec9cf9 7.2.1-7 2018-01-17 00:46:14 +01:00
Jakub Jelinek e5fdbefc99 7.2.1-6 2018-01-17 00:46:14 +01:00
Jakub Jelinek 1f8654ce48 7.2.1-5 2018-01-17 00:46:14 +01:00
Jakub Jelinek aa5419ac99 7.2.1-5 2018-01-17 00:46:14 +01:00
Jakub Jelinek 02742a4983 7.2.1-5 2018-01-17 00:46:14 +01:00
Marek Polacek 139dd1290c Disable annobin for now. Adjust sanitizer_linux.cc patch. 2018-01-17 00:46:14 +01:00
Jeff Law 7a8a8e7184 - Fix problem with large outgoing args and -fstack-clash-protection
on aarch64 (#1518823)
2018-01-17 00:46:14 +01:00
Jeff Law ce60403bef - Backport -fstack-clash-protection from development trunk (#1512529) 2018-01-17 00:46:14 +01:00
Jakub Jelinek 3dcf8052da 7.2.1-2 2017-09-15 13:16:40 +02:00
Marek Polacek 085992df86 7.2.1-1 2017-09-15 13:16:40 +02:00
Marek Polacek 6e912d0925 7.2.1-1 2017-09-15 13:16:40 +02:00
Jakub Jelinek eec4b843dd 7.2.1-1 2017-09-15 13:16:40 +02:00
Jakub Jelinek 984ab31b1d Drop .1 suffix from Release 2017-09-15 13:16:40 +02:00
Jakub Jelinek 7c8d8c4f7f 7.1.1-7 2017-09-15 13:16:04 +02:00
Fedora Release Engineering 0c5acb61c7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild 2017-09-15 13:14:59 +02:00
Jakub Jelinek caabcaafac 7.1.1-6 2017-09-15 13:14:59 +02:00
Jakub Jelinek beba6c7f81 7.1.1-6 2017-09-15 13:14:59 +02:00
Jakub Jelinek e4d350db67 7.1.1-6 2017-09-15 13:14:59 +02:00
Jakub Jelinek d898f48f0c 7.1.1-6 2017-09-15 13:14:59 +02:00
Jakub Jelinek 3ed08a4301 7.1.1-5 2017-09-15 13:14:59 +02:00
Jakub Jelinek 90cceafa81 7.1.1-5 2017-09-15 13:14:59 +02:00
Jakub Jelinek 9e8f689b47 7.1.1-4 2017-09-15 13:14:59 +02:00
Jakub Jelinek ac66e939af 7.1.1-4 2017-07-09 14:34:00 +02:00
Jakub Jelinek 2af465b9b2 7.1.1-3 2017-06-22 09:56:37 +02:00
Jakub Jelinek 77114d4fc8 7.1.1-2 2017-05-26 15:25:29 +02:00
Jakub Jelinek 872d384f80 7.1.1-1 2017-05-03 11:07:20 +02:00
Jakub Jelinek 508fab281f 7.1.1-1 2017-05-03 11:07:06 +02:00
Jakub Jelinek 61fd90690a 7.0.1-0.16 2017-04-25 22:07:34 +02:00
Jakub Jelinek 1d4b05390b 7.0.1-0.15 2017-04-21 12:33:26 +02:00
Jakub Jelinek fc78aadaef 7.0.1-0.14 2017-04-10 20:18:24 +02:00
Jakub Jelinek 3077b83e7b 7.0.1-0.14 2017-04-10 16:24:39 +02:00
Jakub Jelinek f5a1b0d64a 7.0.1-0.14 2017-04-10 16:24:30 +02:00
Jakub Jelinek 7969d7f1d4 7.0.1-0.13 2017-03-27 13:23:52 +02:00
12 changed files with 3064 additions and 302 deletions

18
.gitignore vendored
View File

@ -11,3 +11,21 @@
/gcc-7.0.1-20170225.tar.bz2
/gcc-7.0.1-20170308.tar.bz2
/gcc-7.0.1-20170309.tar.bz2
/gcc-7.0.1-20170327.tar.bz2
/gcc-7.0.1-20170410.tar.bz2
/gcc-7.0.1-20170421.tar.bz2
/gcc-7.0.1-20170425.tar.bz2
/gcc-7.1.1-20170503.tar.bz2
/gcc-7.1.1-20170526.tar.bz2
/gcc-7.1.1-20170622.tar.bz2
/gcc-7.1.1-20170708.tar.bz2
/gcc-7.1.1-20170711.tar.bz2
/gcc-7.1.1-20170718.tar.bz2
/gcc-7.1.1-20170802.tar.bz2
/gcc-7.2.1-20170829.tar.bz2
/gcc-7.2.1-20170915.tar.bz2
/gcc-7.2.1-20180101.tar.bz2
/gcc-7.2.1-20180104.tar.bz2
/gcc-7.2.1-20180117.tar.bz2
/gcc-7.3.1-20180125.tar.bz2
/gcc-7.3.1-20180130.tar.bz2

367
gcc.spec
View File

@ -1,16 +1,20 @@
%global DATE 20170309
%global SVNREV 246007
%global gcc_version 7.0.1
%global DATE 20180130
%global SVNREV 257180
%global gcc_version 7.3.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.12
%global gcc_release 2
%global nvptx_tools_gitrev c28050f60193b3b95a18866a96f03334e874e78f
%global nvptx_newlib_gitrev aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24
%global _unpackaged_files_terminate_build 0
%global _performance_build 1
# Hardening slows the compiler way too much.
%undefine _hardened_build
%if 0%{?fedora} > 27
# Until annobin is fixed (#1519165).
%undefine _annotated_build
%endif
%global multilib_64_archs sparc64 ppc64 ppc64p7 s390x x86_64
%ifarch %{ix86} x86_64 ia64 ppc %{power64} alpha s390x %{arm} aarch64
%global build_ada 1
@ -74,7 +78,7 @@
%else
%global attr_ifunc 0
%endif
%ifarch x86_64
%ifarch x86_64 ppc64le
%global build_offload_nvptx 1
%else
%global build_offload_nvptx 0
@ -91,7 +95,7 @@
%ifarch x86_64
%global multilib_32_arch i686
%endif
Summary: Various compilers (C, C++, Objective-C, Java, ...)
Summary: Various compilers (C, C++, Objective-C, ...)
Name: gcc
Version: %{gcc_version}
Release: %{gcc_release}%{?dist}
@ -101,7 +105,7 @@ License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2
Group: Development/Languages
# The source for this package was pulled from upstream's vcs. Use the
# following commands to generate the tarball:
# svn export svn://gcc.gnu.org/svn/gcc/branches/redhat/gcc-6-branch@%{SVNREV} gcc-%{version}-%{DATE}
# svn export svn://gcc.gnu.org/svn/gcc/branches/redhat/gcc-7-branch@%{SVNREV} gcc-%{version}-%{DATE}
# tar cf - gcc-%{version}-%{DATE} | bzip2 -9 > gcc-%{version}-%{DATE}.tar.bz2
Source0: gcc-%{version}-%{DATE}.tar.bz2
# The source for nvptx-tools package was pulled from upstream's vcs. Use the
@ -221,7 +225,6 @@ Provides: bundled(libiberty)
Provides: gcc(major) = %{gcc_major}
Patch0: gcc7-hack.patch
Patch1: gcc7-ppc32-retaddr.patch
Patch2: gcc7-i386-libgomp.patch
Patch3: gcc7-sparc-config-detection.patch
Patch4: gcc7-libgomp-omp_h-multilib.patch
@ -232,12 +235,14 @@ Patch8: gcc7-no-add-needed.patch
Patch9: gcc7-aarch64-async-unw-tables.patch
Patch10: gcc7-foffload-default.patch
Patch11: gcc7-Wno-format-security.patch
Patch12: gcc7-pr79941.patch
Patch13: gcc7-pr79969.patch
Patch14: gcc7-pr79972.patch
Patch12: gcc7-aarch64-sanitizer-fix.patch
Patch13: gcc7-rh1512529-aarch64.patch
Patch14: gcc7-pr84064.patch
Patch1000: nvptx-tools-no-ptxas.patch
Patch1001: nvptx-tools-build.patch
Patch1002: nvptx-tools-glibc.patch
# On ARM EABI systems, we do want -gnueabi to be part of the
# target triple.
@ -770,6 +775,7 @@ NVidia PTX. OpenMP and OpenACC programs linked with -fopenmp will
by default add PTX code into the binaries, which can be offloaded
to NVidia PTX capable devices if available.
%if 0%{?fedora} < 27
%if 0%{?_enable_debug_packages}
%define debug_package %{nil}
%global __debug_package 1
@ -804,11 +810,11 @@ package or when debugging this package.
%files base-debuginfo -f debugfiles-base.list
%endif
%endif
%prep
%setup -q -n gcc-%{version}-%{DATE} -a 1 -a 2
%patch0 -p0 -b .hack~
%patch1 -p0 -b .ppc32-retaddr~
%patch2 -p0 -b .i386-libgomp~
%patch3 -p0 -b .sparc-config-detection~
%patch4 -p0 -b .libgomp-omp_h-multilib~
@ -823,15 +829,19 @@ package or when debugging this package.
%patch9 -p0 -b .aarch64-async-unw-tables~
%patch10 -p0 -b .foffload-default~
%patch11 -p0 -b .Wno-format-security~
%patch12 -p0 -b .pr79941~
%patch13 -p0 -b .pr79969~
%patch14 -p0 -b .pr79972~
%if 0%{?fedora} > 27
%patch12 -p0 -b .aarch64-sanitizer-fix~
%endif
%patch13 -p0 -b .rh1512529-aarch64~
%patch14 -p0 -b .pr84064~
cd nvptx-tools-%{nvptx_tools_gitrev}
%patch1000 -p1 -b .nvptx-tools-no-ptxas~
%patch1001 -p1 -b .nvptx-tools-build~
%patch1002 -p1 -b .nvptx-tools-glibc~
cd ..
%if 0%{?fedora} < 27
%if 0%{?_enable_debug_packages}
mkdir dwz-wrapper
if [ -f /usr/bin/dwz ]; then
@ -932,6 +942,7 @@ fi
EOF
chmod 755 split-debuginfo.sh
%endif
%endif
echo 'Red Hat %{version}-%{gcc_release}' > gcc/DEV-PHASE
@ -1940,7 +1951,15 @@ chmod 755 %{buildroot}%{_prefix}/%{_lib}/libtsan.so.0.*
chmod 755 %{buildroot}%{_prefix}/%{_lib}/liblsan.so.0.*
%endif
%if %{build_go}
%if 0%{?fedora} < 27
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgo.so.11.*
%else
# Avoid stripping these libraries and binaries.
chmod 644 %{buildroot}%{_prefix}/%{_lib}/libgo.so.11.*
chmod 644 %{buildroot}%{_prefix}/bin/go.gcc
chmod 644 %{buildroot}%{_prefix}/bin/gofmt.gcc
chmod 644 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cgo
%endif
%endif
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libobjc.so.4.*
@ -3095,10 +3114,10 @@ fi
%if %{build_go}
%files go
%ghost %{_prefix}/bin/go
%{_prefix}/bin/go.gcc
%attr(755,root,root) %{_prefix}/bin/go.gcc
%{_prefix}/bin/gccgo
%ghost %{_prefix}/bin/gofmt
%{_prefix}/bin/gofmt.gcc
%attr(755,root,root) %{_prefix}/bin/gofmt.gcc
%{_mandir}/man1/gccgo.1*
%{_mandir}/man1/go.1*
%{_mandir}/man1/gofmt.1*
@ -3109,7 +3128,7 @@ fi
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/go1
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cgo
%attr(755,root,root) %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cgo
%ifarch sparcv9 ppc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgo.so
@ -3135,7 +3154,7 @@ fi
%doc rpm.doc/go/*
%files -n libgo
%{_prefix}/%{_lib}/libgo.so.11*
%attr(755,root,root) %{_prefix}/%{_lib}/libgo.so.11*
%doc rpm.doc/libgo/*
%files -n libgo-devel
@ -3242,6 +3261,316 @@ fi
%endif
%changelog
* Tue Jan 30 2018 Jakub Jelinek <jakub@redhat.com> 7.3.1-2
- update from the 7 branch
- PRs c++/82461, c++/82878, libstdc++/81076, libstdc++/83658,
libstdc++/83830, libstdc++/83833, rtl-optimization/83985, target/68467,
target/81763, target/83399, target/83862, target/83905, target/84033
- fix -fstack-clash-protection ICE with -mtune=i686 (#1538648, PR target/84064)
* Thu Jan 25 2018 Jakub Jelinek <jakub@redhat.com> 7.3.1-1
- update from the 7 branch
- 7.3 release
- PRs c++/81843, c++/82331, c++/82760, fortran/80768, fortran/83864,
fortran/83874, fortran/83900, ipa/82352, ipa/83549, libstdc++/83834,
middle-end/81782, rtl-optimization/81443, target/80870, target/83687,
target/83946, tree-optimization/81877, tree-optimization/83552
* Wed Jan 24 2018 Jeff Law <law@redhat.com> 7.2.1-8
- fix -fstack-clash-protection codegen issue on 32 bit x86 (#1536555)
* Wed Jan 17 2018 Jakub Jelinek <jakub@redhat.com> 7.2.1-7
- update from the 7 branch
- PRs fortran/78814, fortran/82367, fortran/82841, fortran/83093,
fortran/83679, libgfortran/83811, libstdc++/79283, libstdc++/83279,
libstdc++/83598, libstdc++/83600, libstdc++/83626, middle-end/83713,
preprocessor/83492, rtl-optimization/83424, rtl-optimization/83565,
target/81481, target/81819, target/81821, target/82975, target/83330,
target/83628, target/83629, target/83677, target/83839,
testsuite/77734
- x86 retpoline support
- comment out gcc-debuginfo/gcc-base-debuginfo splitting hacks for f27 and
later (#1517259)
* Thu Jan 4 2018 Jakub Jelinek <jakub@redhat.com> 7.2.1-6
- update from the 7 branch
- PRs c++/83556, fortran/83650, libgfortran/83649
- backport fixes for two -fstack-clash-protection bugs from the trunk
(PRs middle-end/83654, target/83641)
- commit -fstack-clash-protection patches except aarch64 to
redhat/gcc-7-branch instead of applying them as patches in the spec file
* Mon Jan 1 2018 Jakub Jelinek <jakub@redhat.com> 7.2.1-5
- update from the 7 branch
- PRs ada/82393, bootstrap/83439, c++/70029, c++/79650, c++/80259,
c++/80767, c++/80935, c++/81197, c++/81212, c++/81236, c++/81525,
c++/81671, c++/81675, c++/81702, c++/81888, c++/82030, c++/82085,
c++/82159, c++/82299, c++/82373, c++/82406, c++/82560, c++/82781,
c++/83059, c++/83116, c++/83205, c++/83217, c++/83553, c/81875,
c/82234, c/82340, c/83448, debug/83084, driver/81829, fortran/52832,
fortran/67543, fortran/69739, fortran/78152, fortran/78512,
fortran/78619, fortran/78641, fortran/78686, fortran/79072,
fortran/79795, fortran/80118, fortran/80120, fortran/80554,
fortran/80850, fortran/81048, fortran/81304, fortran/81735,
fortran/81758, fortran/81841, fortran/81903, fortran/82121,
fortran/82312, fortran/82796, fortran/82934, fortran/83021,
fortran/83191, fortran/83436, fortran/83548, gcov-profile/82457,
gcov-profile/82633, go/80914, ipa/82801, ipa/82808, ipa/83346,
libfortran/82233, libgcc/82635, libgfortran/78387, libgfortran/78549,
libgfortran/81937, libgfortran/81938, libgfortran/83168,
libgfortran/83191, libgfortran/83225, libgfortran/83613,
libstdc++/59568, libstdc++/79433, libstdc++/81395, libstdc++/82254,
libstdc++/82262, libstdc++/82481, libstdc++/82522, libstdc++/82685,
libstdc++/83134, libstdc++/83226, libstdc++/83395, libstdc++/83427,
lto/82027, middle-end/60580, middle-end/80295, middle-end/82128,
middle-end/82253, middle-end/82556, middle-end/82765,
middle-end/83471, middle-end/83608, middle-end/83609,
middle-end/83623, rtl-optimization/64682, rtl-optimization/69567,
rtl-optimization/69737, rtl-optimization/80747,
rtl-optimization/81553, rtl-optimization/81803,
rtl-optimization/82044, rtl-optimization/82192,
rtl-optimization/82602, rtl-optimization/82621,
rtl-optimization/82683, rtl-optimization/83512, sanitizer/81715,
sanitizer/82379, sanitizer/82545, sanitizer/82595, sanitizer/82792,
sanitizer/82869, sanitizer/83014, target/39570, target/66488,
target/71727, target/71951, target/77480, target/77687, target/78643,
target/80583, target/80600, target/80819, target/81288, target/81906,
target/81959, target/81996, target/82274, target/82445, target/82524,
target/82703, target/82717, target/82772, target/82880, target/82941,
target/82942, target/82990, target/83111, target/83387, target/83467,
tree-optimization/80631, tree-optimization/81790,
tree-optimization/82042, tree-optimization/82060,
tree-optimization/82084, tree-optimization/82102,
tree-optimization/82108, tree-optimization/82244,
tree-optimization/82276, tree-optimization/82285,
tree-optimization/82291, tree-optimization/82337,
tree-optimization/82402, tree-optimization/82436,
tree-optimization/82549, tree-optimization/82603,
tree-optimization/82697, tree-optimization/82726,
tree-optimization/82902, tree-optimization/82985,
tree-optimization/83198, tree-optimization/83269,
tree-optimization/83521, tree-optimization/83523
- fix debuginfo for forward declared C structs (#1500862, PR debug/83550)
- fix sccvn ICE (#1506809, PR tree-optimization/82264)
- fix ICE in dwarf2out force_type_die (#1516576, #1516577, PR debug/82155)
- fix power6 ICE in store_data_bypass_p (#1522675, PR target/80101)
- fix replace_placeholders (PR c++/83556)
* Wed Nov 29 2017 Jeff Law <law@redhat.com> 7.2.1-4
- fix problem with large outgoing args and -fstack-clash-protection
on aarch64 (#1518823)
* Tue Nov 28 2017 Jeff Law <law@redhat.com> 7.2.1-3
- backport -fstack-clash-protection from development trunk (#1512529)
* Fri Sep 15 2017 Jakub Jelinek <jakub@redhat.com> 7.2.1-2
- update from the 7 branch
- PRs ada/62235, ada/79441, ada/79542, bootstrap/81926, c++/81355,
c++/81852, c++/82039, c++/82040, c/45784, c/81687, driver/81650,
fortran/81770, inline-asm/82001, ipa/81128, libstdc++/70483,
libstdc++/81338, libstdc++/81468, libstdc++/81599, libstdc++/81835,
libstdc++/81891, libstdc++/81912, middle-end/81052, middle-end/81768,
other/39851, sanitizer/63361, sanitizer/81923, target/80695,
target/81504, target/81593, target/81621, target/81833, target/81988,
target/82181, testsuite/82114, testsuite/82120, tree-opt/81696,
tree-optimization/81503, tree-optimization/81987
- fix OpenMP implicit firstprivate handling of references (PR c++/81314)
- fix -fcompare-debug failures with PowerPC atomics (PR target/81325)
- fix compile time hog in C++ replace_placeholders (PR sanitizer/81929)
- fix __atomic* and PowerPC vec_ld/vec_st handling of array arguments
(PR target/82112)
* Tue Aug 29 2017 Jakub Jelinek <jakub@redhat.com> 7.2.1-1
- update from the 7 branch
- 7.2 release
- PRs c++/67054, c++/81607, debug/81993, driver/81523, fortran/80164,
fortran/81296, ipa/77732, libstdc++/53984, libstdc++/79820,
libstdc++/81751, middle-end/81065, middle-end/81088, middle-end/81766,
middle-end/81884, sanitizer/80932, target/67712, target/72804,
target/78460, target/80210, target/81170, target/81295, target/81861,
target/81894, target/81910, target/81921, testsuite/81056,
tree-optimization/81181, tree-optimization/81354,
tree-optimization/81723, tree-optimization/81977
* Wed Aug 2 2017 Jakub Jelinek <jakub@redhat.com> 7.1.1-7
- update from the 7 branch
- 7.2-rc1
- PRs c++/71570, gcov-profile/81561, libgcc/61152, libquadmath/65757,
libstdc++/80553, libstdc++/80721, libstdc++/80737, libstdc++/80939,
libstdc++/81017, lto/81487, middle-end/79499, middle-end/81505,
rtl-optimization/75964, sanitize/81186, sanitizer/81021,
sanitizer/81224, sanitizer/81302, sanitizer/81604, target/79041,
target/80569, target/81069, target/81175, target/81193, target/81407,
target/81414, target/81471, target/81473, target/81534, target/81622,
target/81641, tree-optimization/71752, tree-optimization/80769,
tree-optimization/81162, tree-optimization/81388,
tree-optimization/81410, tree-optimization/81455,
tree-optimization/81555, tree-optimization/81556,
tree-optimization/81588, tree-optimization/81633,
tree-optimization/81655
* Tue Jul 18 2017 Jakub Jelinek <jakub@redhat.com> 7.1.1-6
- update from the 7 branch
- PRs ada/81446, c++/81258, middle-end/80929, rtl-optimization/81424,
target/79883, target/81225, tree-optimization/81365,
tree-optimization/81428
- fix bootstrap on s390{,x} in libgo (PR go/81393)
- rebuilt against hopefully fixed glibc to reenable TLS support on ppc64le
in libstdc++ (#1470692)
* Tue Jul 11 2017 Jakub Jelinek <jakub@redhat.com> 7.1.1-5
- update from the 7 branch
- PRs libstdc++/80316, target/81375
- fix libsanitizer build against recent glibc (PR sanitizer/81066)
* Sun Jul 9 2017 Jakub Jelinek <jakub@redhat.com> 7.1.1-4
- update from the 7 branch
- PRs c++/54769, c++/61022, c++/72801, c++/79056, c++/81164, c++/81180,
c++/81187, c++/81188, c++/81204, c++/81215, c++/81257, driver/31468,
driver/56469, gcov-profile/53915, gcov-profile/81080, ipa/79849,
ipa/79850, ipa/80663, ipa/81112, libfortran/81195, libgfortran/53029,
libstdc++/81221, middle-end/80692, middle-end/80902, middle-end/81007,
middle-end/81207, other/80589, other/80909, sanitizer/80879,
sanitizer/81209, target/79155, target/79799, target/80618,
target/80966, target/81294, target/81300, target/81305, target/81348,
tree-optimization/80612, tree-optimization/81083,
tree-optimization/81192
- fix ppc* float128 ifunc (#1467526)
* Thu Jun 22 2017 Jakub Jelinek <jakub@redhat.com> 7.1.1-3
- update from the 7 branch
- PRs ada/80921, ada/81070, ada/81105, c++/60063, c++/66297, c++/70844,
c++/71747, c++/80179, c++/80384, c++/80465, c++/80562, c++/80593,
c++/80605, c++/80614, c++/80639, c++/80829, c++/80831, c++/80840,
c++/80856, c++/80972, c++/80973, c++/80984, c++/81011, c++/81045,
c++/81073, c++/81074, c++/81102, c++/81130, c++/81154, c/80919,
c/81006, fortran/70601, fortran/80766, fortran/80904, fortran/80918,
fortran/80975, libgcc/80037, libgomp/80822, libstdc++/80675,
libstdc++/80940, libstdc++/81002, libstdc++/81092,
rtl-optimization/80474, rtl-optimization/80903, sanitizer/81111,
sanitizer/81125, target/59874, target/71607, target/71778,
target/80718, target/80968, target/80970, target/81015, target/81121,
target/81151, tree-optimization/80293, tree-optimization/80549,
tree-optimization/80705, tree-optimization/80842,
tree-optimization/80906
* Fri May 26 2017 Jakub Jelinek <jakub@redhat.com> 7.1.1-2
- update from the 7 branch
- PRs ada/80626, ada/80784, documentation/50642, fortran/78659,
fortran/80121, fortran/80333, fortran/80392, fortran/80484,
fortran/80741, fortran/80752, go/64238, libgfortran/80333,
libgfortran/80727, libgfortran/80741, libstdc++/78939, libstdc++/80478,
libstdc++/80761, libstdc++/80796, middle-end/80539, middle-end/80809,
middle-end/80853, rtl-optimization/80754, sanitizer/80659,
sanitizer/80875, target/68163, target/79027, target/79202,
target/79203, target/80090, target/80510, target/80671, target/80706,
target/80799, tree-optimization/80453, tree-optimization/80492
- fix s390 indirect_jump reloading (#1450353, PR target/80725)
* Wed May 3 2017 Jakub Jelinek <jakub@redhat.com> 7.1.1-1
- update from the 7 branch
- GCC 7.1 release
- PRs bootstrap/80531, c++/80534, c/80468, target/68491, target/79430,
target/80530, tree-optimization/80591
* Tue Apr 25 2017 Jakub Jelinek <jakub@redhat.com> 7.0.1-0.16
- update from the 7 branch
- ABI change on ARM and AArch64 (PR target/77728)
- PRs middle-end/79931, rtl-optimization/80500, rtl-optimization/80501,
target/79895, target/80080, target/80464, target/80482,
tree-optimization/80497
* Fri Apr 21 2017 Jakub Jelinek <jakub@redhat.com> 7.0.1-0.15
- update from the trunk and 7 branch
- PRs bootstrap/77661, c++/80176, c++/80241, c++/80244, c++/80287,
c++/80294, c++/80363, c++/80370, c++/80415, c++/80459, c++/80473,
c/80163, debug/80263, debug/80436, debug/80461, fortran/80046,
fortran/80361, fortran/80440, gcov-profile/78783, gcov-profile/80413,
gcov-profile/80435, ipa/65972, libgomp/80394, libstdc++/80446,
libstdc++/80448, lto/50345, lto/69953, middle-end/79671,
middle-end/79788, middle-end/80100, middle-end/80364,
middle-end/80375, middle-end/80422, middle-end/80423,
rtl-optimization/80343, rtl-optimization/80357,
rtl-optimization/80385, rtl-optimization/80429, sanitizer/70878,
sanitizer/80349, sanitizer/80403, sanitizer/80404, sanitizer/80405,
sanitizer/80414, sanitizer/80444, target/74563, target/79453,
target/80057, target/80098, target/80099, target/80108, target/80315,
target/80376, target/80381, target/80382, target/80389, target/80462,
testsuite/79867, testsuite/80221, testsuite/80416,
tree-optimization/80153, tree-optimization/80359,
tree-optimization/80374, tree-optimization/80426,
tree-optimization/80443
- reenable {gcc,libgomp}-offload-nvptx on ppc64le
* Mon Apr 10 2017 Jakub Jelinek <jakub@redhat.com> 7.0.1-0.14
- update from the trunk
- PRs ada/80117, ada/80146, c++/60992, c++/69487, c++/79572, c++/80095,
c++/80267, c++/80296, c++/80297, c++/80309, c++/80356, c/79730,
debug/79255, debug/80025, debug/80234, documentation/78732,
fortran/78661, fortran/80254, gcov-profile/80224, go/80226, ipa/77333,
ipa/79776, ipa/80104, ipa/80205, ipa/80212, libgfortran/78670,
libgomp/79876, libstdc++/79141, libstdc++/80137, libstdc++/80229,
libstdc++/80251, middle-end/80162, middle-end/80163, middle-end/80173,
middle-end/80222, middle-end/80281, middle-end/80341,
middle-end/80344, middle-end/80362, rtl-optimization/60818,
rtl-optimization/70478, rtl-optimization/70703,
rtl-optimization/79405, rtl-optimization/80193,
rtl-optimization/80233, sanitizer/79993, sanitizer/80067,
sanitizer/80166, sanitizer/80308, sanitizer/80348, sanitizer/80350,
target/45053, target/53383, target/78002, target/78543, target/79733,
target/79889, target/79890, target/79905, target/80102, target/80103,
target/80107, target/80206, target/80246, target/80250, target/80286,
target/80298, target/80307, target/80310, target/80322, target/80323,
target/80324, target/80325, target/80326, target/80358,
testsuite/43496, translation/80189, tree-optimization/49498,
tree-optimization/77498, tree-optimization/78644,
tree-optimization/79390, tree-optimization/80181,
tree-optimization/80216, tree-optimization/80218,
tree-optimization/80262, tree-optimization/80275,
tree-optimization/80304, tree-optimization/80334
- fix dwarf ICE with nested function self-inlining (PR debug/80321)
* Mon Mar 27 2017 Jakub Jelinek <jakub@redhat.com> 7.0.1-0.13
- update from the trunk
- PRs bootstrap/79771, bootstrap/79952, c++/35878, c++/52477, c++/77339,
c++/77563, c++/77752, c++/78345, c++/79393, c++/79519, c++/79548,
c++/79640, c++/79687, c++/79896, c++/79899, c++/79960, c++/79962,
c++/79967, c++/79984, c++/80029, c++/80043, c++/80059, c++/80073,
c++/80077, c++/80084, c++/80096, c++/80119, c++/80129, c++/80141,
c++/80150, c/67338, c/78165, c/79921, c/79936, c/80097, driver/79875,
fortran/33271, fortran/39239, fortran/69498, fortran/71838,
fortran/79602, fortran/79676, fortran/79838, fortran/79844,
fortran/79853, fortran/79859, fortran/79860, fortran/79886,
fortran/80010, fortran/80011, fortran/80142, fortran/80156,
gcov-profile/80081, libfortran/79956, libgfortran/78854,
libgfortran/78881, libstdc++/62045, libstdc++/67440, libstdc++/79162,
libstdc++/79511, libstdc++/79980, libstdc++/80034, libstdc++/80041,
libstdc++/80064, libstdc++/80183, middle-end/78339, middle-end/79753,
middle-end/79831, middle-end/80020, middle-end/80050,
middle-end/80075, middle-end/80171, other/79991, plugins/80094,
rtl-optimization/63191, rtl-optimization/78911,
rtl-optimization/79150, rtl-optimization/79728,
rtl-optimization/79909, rtl-optimization/79910,
rtl-optimization/80112, rtl-optimization/80159,
rtl-optimization/80160, sanitizer/78158, sanitizer/79757,
sanitizer/80063, sanitizer/80110, sanitizer/80168, target/71294,
target/71436, target/78857, target/79769, target/79770, target/79892,
target/79893, target/79906, target/79907, target/79911, target/79912,
target/79925, target/79941, target/79947, target/79951, target/79963,
target/80017, target/80019, target/80052, target/80082, target/80083,
target/80123, target/80125, target/80148, target/80180,
testsuite/79356, testsuite/80092, translation/79848,
translation/79923, translation/80001, tree-optimization/71437,
tree-optimization/77975, tree-optimization/79800,
tree-optimization/79908, tree-optimization/79981,
tree-optimization/80030, tree-optimization/80032,
tree-optimization/80048, tree-optimization/80054,
tree-optimization/80072, tree-optimization/80079,
tree-optimization/80109, tree-optimization/80113,
tree-optimization/80122, tree-optimization/80136,
tree-optimization/80158, tree-optimization/80167,
tree-optimization/80170
* Thu Mar 9 2017 Jakub Jelinek <jakub@redhat.com> 7.0.1-0.12
- update from the trunk
- PRs c++/71966, c++/79672, c++/79797, c++/79900, ipa/79761, ipa/79764,

View File

@ -0,0 +1,11 @@
--- libsanitizer/sanitizer_common/sanitizer_linux.cc
+++ libsanitizer/sanitizer_common/sanitizer_linux.cc
@@ -1262,7 +1262,7 @@ struct __sanitizer_esr_context {
static bool Aarch64GetESR(ucontext_t *ucontext, u64 *esr) {
static const u32 kEsrMagic = 0x45535201;
- u8 *aux = ucontext->uc_mcontext.__reserved;
+ u8 *aux = ucontext->uc_mcontext.__glibc_reserved1;
while (true) {
_aarch64_ctx *ctx = (_aarch64_ctx *)aux;
if (ctx->size == 0) break;

View File

@ -4,7 +4,7 @@
<a class="link" href="http://www.fsf.org/" target="_top">FSF
</a>
</p><p>
+ Release 7.0.1
+ Release 7.3.1
+ </p><p>
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation
@ -17,7 +17,7 @@
</p><p>
- The API documentation, rendered into HTML, can be viewed online
+ The API documentation, rendered into HTML, can be viewed locally
+ <a class="link" href="api/index.html" target="_top">for the 7.0.1 release</a>,
+ <a class="link" href="api/index.html" target="_top">for the 7.3.1 release</a>,
+ online
<a class="link" href="http://gcc.gnu.org/onlinedocs/" target="_top">for each GCC release</a>
and

View File

@ -1,87 +0,0 @@
2005-11-28 Jakub Jelinek <jakub@redhat.com>
* config/rs6000/rs6000.c (rs6000_return_addr): If COUNT == 0,
read word RETURN_ADDRESS_OFFSET bytes above arg_pointer_rtx
instead of doing an extran indirection from frame_pointer_rtx.
* gcc.dg/20051128-1.c: New test.
--- gcc/config/rs6000/rs6000.c.jj 2005-11-26 14:38:01.000000000 +0100
+++ gcc/config/rs6000/rs6000.c 2005-11-28 20:32:18.000000000 +0100
@@ -20970,18 +20970,22 @@ rs6000_return_addr (int count, rtx frame
if (count != 0
|| ((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_DARWIN) && flag_pic))
{
+ rtx x;
cfun->machine->ra_needs_full_frame = 1;
- return
- gen_rtx_MEM
- (Pmode,
- memory_address
- (Pmode,
- plus_constant (Pmode,
- copy_to_reg
- (gen_rtx_MEM (Pmode,
- memory_address (Pmode, frame))),
- RETURN_ADDRESS_OFFSET)));
+ if (count == 0)
+ {
+ gcc_assert (frame == frame_pointer_rtx);
+ x = arg_pointer_rtx;
+ }
+ else
+ {
+ x = memory_address (Pmode, frame);
+ x = copy_to_reg (gen_rtx_MEM (Pmode, x));
+ }
+
+ x = plus_constant (Pmode, x, RETURN_ADDRESS_OFFSET);
+ return gen_rtx_MEM (Pmode, memory_address (Pmode, x));
}
cfun->machine->ra_need_lr = 1;
--- gcc/testsuite/gcc.dg/20051128-1.c.jj 2005-10-10 11:21:41.096999000 +0200
+++ gcc/testsuite/gcc.dg/20051128-1.c 2005-11-28 12:30:57.000000000 +0100
@@ -0,0 +1,41 @@
+/* { dg-do run } */
+/* { dg-options "-O2 -fpic" } */
+
+extern void exit (int);
+extern void abort (void);
+
+int b;
+
+struct A
+{
+ void *pad[147];
+ void *ra, *h;
+ long o;
+};
+
+void
+__attribute__((noinline))
+foo (struct A *a, void *x)
+{
+ __builtin_memset (a, 0, sizeof (a));
+ if (!b)
+ exit (0);
+}
+
+void
+__attribute__((noinline))
+bar (void)
+{
+ struct A a;
+
+ __builtin_unwind_init ();
+ foo (&a, __builtin_return_address (0));
+}
+
+int
+main (void)
+{
+ bar ();
+ abort ();
+ return 0;
+}

View File

@ -1,92 +0,0 @@
2017-03-07 Will Schmidt <will_schmidt@vnet.ibm.com>
PR middle-end/79941
* config/rs6000/rs6000.c (gimplify_init_constructor): Remove multiply
even and multiply odd unsigned (vmule/vmulo) intrinsics from the
multiply folding sequence.
* gcc.target/powerpc/fold-vec-mult-even_odd_misc.c: New test.
--- gcc/config/rs6000/rs6000.c 2017-03-03 20:31:01.000000000 +0100
+++ gcc/config/rs6000/rs6000.c 2017-03-08 18:52:48.409967121 +0100
@@ -16855,9 +16855,6 @@ rs6000_gimple_fold_builtin (gimple_stmt_
/* Even element flavors of vec_mul (signed). */
case ALTIVEC_BUILTIN_VMULESB:
case ALTIVEC_BUILTIN_VMULESH:
- /* Even element flavors of vec_mul (unsigned). */
- case ALTIVEC_BUILTIN_VMULEUB:
- case ALTIVEC_BUILTIN_VMULEUH:
{
arg0 = gimple_call_arg (stmt, 0);
arg1 = gimple_call_arg (stmt, 1);
@@ -16870,9 +16867,6 @@ rs6000_gimple_fold_builtin (gimple_stmt_
/* Odd element flavors of vec_mul (signed). */
case ALTIVEC_BUILTIN_VMULOSB:
case ALTIVEC_BUILTIN_VMULOSH:
- /* Odd element flavors of vec_mul (unsigned). */
- case ALTIVEC_BUILTIN_VMULOUB:
- case ALTIVEC_BUILTIN_VMULOUH:
{
arg0 = gimple_call_arg (stmt, 0);
arg1 = gimple_call_arg (stmt, 1);
--- gcc/testsuite/gcc.target/powerpc/fold-vec-mult-even_odd_misc.c
+++ gcc/testsuite/gcc.target/powerpc/fold-vec-mult-even_odd_misc.c
@@ -0,0 +1,58 @@
+
+/* { dg-do run } */
+/* { dg-require-effective-target powerpc_vsx_ok } */
+/* { dg-options "-maltivec -mvsx -O2 -save-temps" } */
+
+#include <altivec.h>
+
+__attribute__((noinline)) void
+test_eub_char ()
+{
+ vector unsigned char v0 = {1, 0, 0, 0, 0, 0, 0, 0};
+ vector unsigned char v1 = {0xff, 0, 0, 0, 0, 0, 0, 0};
+ vector unsigned short res = vec_vmuleub (v0, v1);
+ if (res[0] != (unsigned short)v0[0] * (unsigned short)v1[0])
+ __builtin_abort ();
+}
+__attribute__((noinline)) void
+test_oub_char ()
+{
+ vector unsigned char v0 = {0, 1, 0, 0, 0, 0, 0, 0};
+ vector unsigned char v1 = {0, 0xff, 0, 0, 0, 0, 0, 0};
+ vector unsigned short res = vec_vmuloub (v0, v1);
+ if (res[0] != (unsigned short)v0[1] * (unsigned short)v1[1])
+ __builtin_abort ();
+}
+
+__attribute__((noinline)) void
+test_euh_short ()
+{
+ vector unsigned short v0 = {1, 0, 0, 0};
+ vector unsigned short v1 = {0xff, 0, 0, 0};
+ vector unsigned int res = vec_vmuleuh (v0, v1);
+ if (res[0] != (unsigned int)v0[0] * (unsigned int)v1[0])
+ __builtin_abort ();
+}
+__attribute__((noinline)) void
+test_ouh_short ()
+{
+ vector unsigned short v0 = {0, 1, 0, 0};
+ vector unsigned short v1 = {0, 0xff, 0, 0};
+ vector unsigned int res = vec_vmulouh (v0, v1);
+ if (res[0] != (unsigned int)v0[1] * (unsigned int)v1[1])
+ __builtin_abort ();
+}
+
+int main ()
+{
+ test_eub_char();
+ test_oub_char();
+ test_euh_short();
+ test_ouh_short();
+}
+
+/* { dg-final { scan-assembler-times "vmuleub" 1 } } */
+/* { dg-final { scan-assembler-times "vmuloub" 1 } } */
+/* { dg-final { scan-assembler-times "vmuleuh" 1 } } */
+/* { dg-final { scan-assembler-times "vmulouh" 1 } } */
+

View File

@ -1,43 +0,0 @@
2017-03-09 Jakub Jelinek <jakub@redhat.com>
PR c/79969
* c-decl.c (start_enum): Adjust DECL_SOURCE_LOCATION of
TYPE_STUB_DECL.
* gcc.dg/debug/dwarf2/enum-loc1.c: New test.
--- gcc/c/c-decl.c.jj 2017-03-05 22:39:45.000000000 +0100
+++ gcc/c/c-decl.c 2017-03-09 08:19:33.100042166 +0100
@@ -8201,6 +8201,10 @@ start_enum (location_t loc, struct c_enu
enumtype = make_node (ENUMERAL_TYPE);
pushtag (loc, name, enumtype);
}
+ /* Update type location to the one of the definition, instead of e.g.
+ a forward declaration. */
+ else if (TYPE_STUB_DECL (enumtype))
+ DECL_SOURCE_LOCATION (TYPE_STUB_DECL (enumtype)) = loc;
if (C_TYPE_BEING_DEFINED (enumtype))
error_at (loc, "nested redefinition of %<enum %E%>", name);
--- gcc/testsuite/gcc.dg/debug/dwarf2/enum-loc1.c.jj 2017-03-09 08:09:30.742037844 +0100
+++ gcc/testsuite/gcc.dg/debug/dwarf2/enum-loc1.c 2017-03-09 08:16:45.202268438 +0100
@@ -0,0 +1,19 @@
+/* PR c/79969 */
+/* { dg-do compile } */
+/* { dg-options "-gdwarf -dA -fno-merge-debug-strings" } */
+
+enum ENUMTAG;
+
+enum ENUMTAG
+{
+ B = 1,
+ C = 2
+};
+
+void
+bar (void)
+{
+ enum ENUMTAG a = C;
+}
+
+/* { dg-final { scan-assembler "DW_TAG_enumeration_type\[^\\r\\n\]*\[\\r\\n\]+\[^\\r\\n\]*\"ENUMTAG\[^\\r\\n\]*DW_AT_name(\[^\\r\\n\]*\[\\r\\n\]+\[^\\r\\n\]*DW_AT_)*\[^\\r\\n\]*\[\\r\\n\]+\[^\\r\\n\]*\[^0-9a-fA-FxX](0x)?7\[^0-9a-fA-FxX]\[^\\r\\n\]*DW_AT_decl_line" } } */

View File

@ -1,58 +0,0 @@
2017-03-09 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/79972
* gimple-ssa-warn-alloca.c (alloca_call_type): Only call
get_range_info on SSA_NAMEs. Formatting fixes.
* gcc.dg/pr79972.c: New test.
--- gcc/gimple-ssa-warn-alloca.c.jj 2017-03-07 20:04:52.000000000 +0100
+++ gcc/gimple-ssa-warn-alloca.c 2017-03-09 12:11:41.943934314 +0100
@@ -300,8 +300,9 @@ alloca_call_type (gimple *stmt, bool is_
ret = alloca_type_and_limit (ALLOCA_OK);
}
// Check the range info if available.
- else if (value_range_type range_type = get_range_info (len, &min, &max))
+ else if (TREE_CODE (len) == SSA_NAME)
{
+ value_range_type range_type = get_range_info (len, &min, &max);
if (range_type == VR_RANGE)
{
if (wi::leu_p (max, max_size))
@@ -328,7 +329,6 @@ alloca_call_type (gimple *stmt, bool is_
gimple *def = SSA_NAME_DEF_STMT (len);
if (gimple_assign_cast_p (def)
&& TYPE_UNSIGNED (TREE_TYPE (gimple_assign_rhs1 (def))))
-
{
len_casted = gimple_assign_rhs1 (def);
range_type = get_range_info (len_casted, &min, &max);
@@ -344,8 +344,7 @@ alloca_call_type (gimple *stmt, bool is_
else if (range_type == VR_ANTI_RANGE)
return alloca_type_and_limit (ALLOCA_UNBOUNDED);
else if (range_type != VR_VARYING)
- return
- alloca_type_and_limit (ALLOCA_BOUND_MAYBE_LARGE, max);
+ return alloca_type_and_limit (ALLOCA_BOUND_MAYBE_LARGE, max);
}
}
else if (range_type == VR_ANTI_RANGE)
--- gcc/testsuite/gcc.dg/pr79972.c.jj 2017-03-09 12:14:24.188800592 +0100
+++ gcc/testsuite/gcc.dg/pr79972.c 2017-03-09 12:13:38.000000000 +0100
@@ -0,0 +1,16 @@
+/* PR tree-optimization/79972 */
+/* { dg-do compile } */
+/* { dg-require-effective-target alloca } */
+/* { dg-options "-Walloca -Wvla-larger-than=10000" } */
+
+int
+f (int dim, int *b, int *c)
+{
+ int newcentroid[3][dim]; /* { dg-warning "unbounded use of variable-length array" } */
+ int *a = newcentroid[2];
+ int i, dist = 0;
+ __builtin_memcpy (newcentroid, c, sizeof (newcentroid));
+ for (i = 0; i < dim; i++)
+ dist += (a[i] - b[i]) * (a[i] - b[i]);
+ return dist;
+}

175
gcc7-pr84064.patch Normal file
View File

@ -0,0 +1,175 @@
2018-01-30 Jeff Law <law@redhat.com>
PR target/84064
* i386.c (ix86_adjust_stack_and_probe_stack_clash): New argument
INT_REGISTERS_SAVED. Check it prior to calling
get_scratch_register_on_entry.
(ix86_adjust_stack_and_probe): Similarly.
(ix86_emit_probe_stack_range): Similarly.
(ix86_expand_prologue): Corresponding changes.
* gcc.target/i386/pr84064: New test.
--- gcc/config/i386/i386.c
+++ gcc/config/i386/i386.c
@@ -12591,10 +12591,14 @@ release_scratch_register_on_entry (struct scratch_reg *sr)
This differs from the next routine in that it tries hard to prevent
attacks that jump the stack guard. Thus it is never allowed to allocate
more than PROBE_INTERVAL bytes of stack space without a suitable
- probe. */
+ probe.
+
+ INT_REGISTERS_SAVED is true if integer registers have already been
+ pushed on the stack. */
static void
-ix86_adjust_stack_and_probe_stack_clash (const HOST_WIDE_INT size)
+ix86_adjust_stack_and_probe_stack_clash (const HOST_WIDE_INT size,
+ const bool int_registers_saved)
{
struct machine_function *m = cfun->machine;
@@ -12700,6 +12704,12 @@ ix86_adjust_stack_and_probe_stack_clash (const HOST_WIDE_INT size)
}
else
{
+ /* We expect the GP registers to be saved when probes are used
+ as the probing sequences might need a scratch register and
+ the routine to allocate one assumes the integer registers
+ have already been saved. */
+ gcc_assert (int_registers_saved);
+
struct scratch_reg sr;
get_scratch_register_on_entry (&sr);
@@ -12758,10 +12768,14 @@ ix86_adjust_stack_and_probe_stack_clash (const HOST_WIDE_INT size)
emit_insn (gen_blockage ());
}
-/* Emit code to adjust the stack pointer by SIZE bytes while probing it. */
+/* Emit code to adjust the stack pointer by SIZE bytes while probing it.
+
+ INT_REGISTERS_SAVED is true if integer registers have already been
+ pushed on the stack. */
static void
-ix86_adjust_stack_and_probe (const HOST_WIDE_INT size)
+ix86_adjust_stack_and_probe (const HOST_WIDE_INT size,
+ const bool int_registers_saved)
{
/* We skip the probe for the first interval + a small dope of 4 words and
probe that many bytes past the specified size to maintain a protection
@@ -12822,6 +12836,12 @@ ix86_adjust_stack_and_probe (const HOST_WIDE_INT size)
equality test for the loop condition. */
else
{
+ /* We expect the GP registers to be saved when probes are used
+ as the probing sequences might need a scratch register and
+ the routine to allocate one assumes the integer registers
+ have already been saved. */
+ gcc_assert (int_registers_saved);
+
HOST_WIDE_INT rounded_size;
struct scratch_reg sr;
@@ -12949,10 +12969,14 @@ output_adjust_stack_and_probe (rtx reg)
}
/* Emit code to probe a range of stack addresses from FIRST to FIRST+SIZE,
- inclusive. These are offsets from the current stack pointer. */
+ inclusive. These are offsets from the current stack pointer.
+
+ INT_REGISTERS_SAVED is true if integer registers have already been
+ pushed on the stack. */
static void
-ix86_emit_probe_stack_range (HOST_WIDE_INT first, HOST_WIDE_INT size)
+ix86_emit_probe_stack_range (HOST_WIDE_INT first, HOST_WIDE_INT size,
+ const bool int_registers_saved)
{
/* See if we have a constant small number of probes to generate. If so,
that's the easy case. The run-time loop is made up of 6 insns in the
@@ -12980,6 +13004,12 @@ ix86_emit_probe_stack_range (HOST_WIDE_INT first, HOST_WIDE_INT size)
equality test for the loop condition. */
else
{
+ /* We expect the GP registers to be saved when probes are used
+ as the probing sequences might need a scratch register and
+ the routine to allocate one assumes the integer registers
+ have already been saved. */
+ gcc_assert (int_registers_saved);
+
HOST_WIDE_INT rounded_size, last;
struct scratch_reg sr;
@@ -13733,15 +13763,10 @@ ix86_expand_prologue (void)
&& (flag_stack_check == STATIC_BUILTIN_STACK_CHECK
|| flag_stack_clash_protection))
{
- /* We expect the GP registers to be saved when probes are used
- as the probing sequences might need a scratch register and
- the routine to allocate one assumes the integer registers
- have already been saved. */
- gcc_assert (int_registers_saved);
-
if (flag_stack_clash_protection)
{
- ix86_adjust_stack_and_probe_stack_clash (allocate);
+ ix86_adjust_stack_and_probe_stack_clash (allocate,
+ int_registers_saved);
allocate = 0;
}
else if (STACK_CHECK_MOVING_SP)
@@ -13749,7 +13774,7 @@ ix86_expand_prologue (void)
if (!(crtl->is_leaf && !cfun->calls_alloca
&& allocate <= get_probe_interval ()))
{
- ix86_adjust_stack_and_probe (allocate);
+ ix86_adjust_stack_and_probe (allocate, int_registers_saved);
allocate = 0;
}
}
@@ -13765,11 +13790,12 @@ ix86_expand_prologue (void)
if (crtl->is_leaf && !cfun->calls_alloca)
{
if (size > get_probe_interval ())
- ix86_emit_probe_stack_range (0, size);
+ ix86_emit_probe_stack_range (0, size, int_registers_saved);
}
else
ix86_emit_probe_stack_range (0,
- size + get_stack_check_protect ());
+ size + get_stack_check_protect (),
+ int_registers_saved);
}
else
{
@@ -13778,10 +13804,13 @@ ix86_expand_prologue (void)
if (size > get_probe_interval ()
&& size > get_stack_check_protect ())
ix86_emit_probe_stack_range (get_stack_check_protect (),
- size - get_stack_check_protect ());
+ (size
+ - get_stack_check_protect ()),
+ int_registers_saved);
}
else
- ix86_emit_probe_stack_range (get_stack_check_protect (), size);
+ ix86_emit_probe_stack_range (get_stack_check_protect (), size,
+ int_registers_saved);
}
}
}
--- gcc/testsuite/gcc.target/i386/pr84064.c
+++ gcc/testsuite/gcc.target/i386/pr84064.c
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -march=i686 -fstack-clash-protection" } */
+/* { dg-require-effective-target ia32 } */
+
+void
+f (void *p1, void *p2)
+{
+ __builtin_memcpy (p1, p2, 1000);
+}
+

2477
gcc7-rh1512529-aarch64.patch Normal file

File diff suppressed because it is too large Load Diff

32
nvptx-tools-glibc.patch Normal file
View File

@ -0,0 +1,32 @@
--- nvptx-tools/configure.ac.jj 2017-01-13 12:48:31.000000000 +0100
+++ nvptx-tools/configure.ac 2017-05-03 10:26:57.076092259 +0200
@@ -66,6 +66,8 @@ CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+AC_CHECK_DECLS(getopt)
+
AC_CONFIG_SUBDIRS([libiberty])
AC_CONFIG_FILES([Makefile dejagnu.exp])
AC_OUTPUT
--- nvptx-tools/configure.jj 2017-01-13 12:48:54.000000000 +0100
+++ nvptx-tools/configure 2017-05-03 10:27:13.503876809 +0200
@@ -3963,6 +3963,18 @@ CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+ac_fn_c_check_decl "$LINENO" "getopt" "ac_cv_have_decl_getopt" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getopt" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETOPT $ac_have_decl
+_ACEOF
+
+
subdirs="$subdirs libiberty"

View File

@ -1,3 +1,3 @@
SHA512 (gcc-7.0.1-20170309.tar.bz2) = d65c12060cfbe6aa685a1d8f768be6ec2dde733cb7c82ed3ac8cba839b33cfd16174f61f9fb7da3cec6ac967c0bcc9b664d71129a609e924e544edec4d7024ff
SHA512 (gcc-7.3.1-20180130.tar.bz2) = 2a2fb771ac99f4630db61c4ca77fb4d7d52ca357a1721bf5967e6296035f1806f58ad3836834bcccc172771bd0eaa5b7b0f2da8cacf4671a8640fe67fd8e29fd
SHA512 (nvptx-newlib-aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24.tar.bz2) = 38f97c9297ad108568352a4d28277455a3c01fd8b7864e798037e5006b6f757022e874bbf3f165775fe3b873781bc108137bbeb42dd5ed3c7d3e6747746fa918
SHA512 (nvptx-tools-c28050f60193b3b95a18866a96f03334e874e78f.tar.bz2) = 95b577a06a93bb044dbc8033e550cb36bcf2ab2687da030a7318cdc90e7467ed49665e247dcafb5ff4a7e92cdc264291d19728bd17fab902fb64b22491269330