Compare commits
38 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
23129117d6 | ||
|
01379efd2a | ||
|
eabbef478b | ||
|
924e2261d5 | ||
|
4f6215525c | ||
|
ef8dec9cf9 | ||
|
e5fdbefc99 | ||
|
1f8654ce48 | ||
|
aa5419ac99 | ||
|
02742a4983 | ||
|
139dd1290c | ||
|
7a8a8e7184 | ||
|
ce60403bef | ||
|
3dcf8052da | ||
|
085992df86 | ||
|
6e912d0925 | ||
|
eec4b843dd | ||
|
984ab31b1d | ||
|
7c8d8c4f7f | ||
|
0c5acb61c7 | ||
|
caabcaafac | ||
|
beba6c7f81 | ||
|
e4d350db67 | ||
|
d898f48f0c | ||
|
3ed08a4301 | ||
|
90cceafa81 | ||
|
9e8f689b47 | ||
|
ac66e939af | ||
|
2af465b9b2 | ||
|
77114d4fc8 | ||
|
872d384f80 | ||
|
508fab281f | ||
|
61fd90690a | ||
|
1d4b05390b | ||
|
fc78aadaef | ||
|
3077b83e7b | ||
|
f5a1b0d64a | ||
|
7969d7f1d4 |
18
.gitignore
vendored
18
.gitignore
vendored
@ -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
367
gcc.spec
@ -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,
|
||||
|
11
gcc7-aarch64-sanitizer-fix.patch
Normal file
11
gcc7-aarch64-sanitizer-fix.patch
Normal 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;
|
@ -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
|
||||
|
@ -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;
|
||||
+}
|
@ -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 } } */
|
||||
+
|
@ -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" } } */
|
@ -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
175
gcc7-pr84064.patch
Normal 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
2477
gcc7-rh1512529-aarch64.patch
Normal file
File diff suppressed because it is too large
Load Diff
32
nvptx-tools-glibc.patch
Normal file
32
nvptx-tools-glibc.patch
Normal 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"
|
2
sources
2
sources
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user