Merge remote-tracking branch 'up/master' into master-riscv64

This commit is contained in:
David Abdurachmanov 2019-03-22 15:14:06 +01:00
commit 3ddf984c1d
8 changed files with 145 additions and 157 deletions

5
.gitignore vendored
View File

@ -65,3 +65,8 @@
/gcc-9.0.1-20190209.tar.xz
/gcc-9.0.1-20190215.tar.xz
/gcc-9.0.1-20190219.tar.xz
/gcc-9.0.1-20190221.tar.xz
/gcc-9.0.1-20190227.tar.xz
/gcc-9.0.1-20190309.tar.xz
/gcc-9.0.1-20190312.tar.xz
/gcc-9.0.1-20190320.tar.xz

167
gcc.spec
View File

@ -1,10 +1,10 @@
%global DATE 20190219
%global SVNREV 269023
%global DATE 20190320
%global SVNREV 269820
%global gcc_version 9.0.1
%global gcc_major 9
# 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.6
%global gcc_release 0.11
%global nvptx_tools_gitrev c28050f60193b3b95a18866a96f03334e874e78f
%global nvptx_newlib_gitrev aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24
%global _unpackaged_files_terminate_build 0
@ -254,11 +254,7 @@ Patch8: gcc9-foffload-default.patch
Patch9: gcc9-Wno-format-security.patch
Patch10: gcc9-rh1574936.patch
Patch11: gcc9-d-shared-libphobos.patch
Patch12: gcc9-pr89014.patch
Patch13: gcc9-pr89093.patch
Patch14: gcc9-s390x-bootstrap-fix.patch
Patch15: gcc9-pr88714.patch
Patch16: gcc9-pr89402.patch
Patch12: gcc9-pr89093.patch
Patch30: libphobos-enable-riscv-v3.patch
@ -771,11 +767,7 @@ to NVidia PTX capable devices if available.
%patch10 -p0 -b .rh1574936~
%endif
%patch11 -p0 -b .d-shared-libphobos~
%patch12 -p0 -b .pr89014~
%patch13 -p0 -b .pr89093~
%patch14 -p0 -b .s390x-bootstrap~
%patch15 -p0 -b .pr88714~
%patch16 -p0 -b .pr89402~
%patch12 -p0 -b .pr89093~
%patch30 -p1 -b .libphobos-riscv~
@ -1290,36 +1282,39 @@ mkdir -p %{buildroot}/%{_lib}
mv -f %{buildroot}%{_prefix}/%{_lib}/libgcc_s.so.1 %{buildroot}/%{_lib}/libgcc_s-%{gcc_major}-%{DATE}.so.1
chmod 755 %{buildroot}/%{_lib}/libgcc_s-%{gcc_major}-%{DATE}.so.1
ln -sf libgcc_s-%{gcc_major}-%{DATE}.so.1 %{buildroot}/%{_lib}/libgcc_s.so.1
%ifarch %{ix86} x86_64 ppc ppc64 ppc64p7 ppc64le %{arm}
rm -f $FULLPATH/libgcc_s.so
echo '/* GNU ld script
Use the shared library, but some functions are only in
the static library, so try that secondarily. */
OUTPUT_FORMAT('`gcc -Wl,--print-output-format -nostdlib -r -o /dev/null`')
GROUP ( /%{_lib}/libgcc_s.so.1 libgcc.a )' > $FULLPATH/libgcc_s.so
%else
ln -sf /%{_lib}/libgcc_s.so.1 $FULLPATH/libgcc_s.so
%endif
%ifarch sparcv9 ppc
%ifarch ppc
rm -f $FULLPATH/64/libgcc_s.so
echo '/* GNU ld script
Use the shared library, but some functions are only in
the static library, so try that secondarily. */
OUTPUT_FORMAT('`gcc -m64 -Wl,--print-output-format -nostdlib -r -o /dev/null`')
GROUP ( /lib64/libgcc_s.so.1 libgcc.a )' > $FULLPATH/64/libgcc_s.so
%else
ln -sf /lib64/libgcc_s.so.1 $FULLPATH/64/libgcc_s.so
%endif
%endif
%ifarch %{multilib_64_archs}
%ifarch x86_64 ppc64 ppc64p7
rm -f $FULLPATH/64/libgcc_s.so
echo '/* GNU ld script
Use the shared library, but some functions are only in
the static library, so try that secondarily. */
OUTPUT_FORMAT('`gcc -m32 -Wl,--print-output-format -nostdlib -r -o /dev/null`')
GROUP ( /lib/libgcc_s.so.1 libgcc.a )' > $FULLPATH/32/libgcc_s.so
%else
ln -sf /lib/libgcc_s.so.1 $FULLPATH/32/libgcc_s.so
%endif
%ifarch ppc
rm -f $FULLPATH/libgcc_s.so
echo '/* GNU ld script
Use the shared library, but some functions are only in
the static library, so try that secondarily. */
OUTPUT_FORMAT(elf32-powerpc)
GROUP ( /lib/libgcc_s.so.1 libgcc.a )' > $FULLPATH/libgcc_s.so
%endif
%ifarch ppc64 ppc64p7
rm -f $FULLPATH/32/libgcc_s.so
echo '/* GNU ld script
Use the shared library, but some functions are only in
the static library, so try that secondarily. */
OUTPUT_FORMAT(elf32-powerpc)
GROUP ( /lib/libgcc_s.so.1 libgcc.a )' > $FULLPATH/32/libgcc_s.so
%endif
%ifarch %{arm}
rm -f $FULLPATH/libgcc_s.so
echo '/* GNU ld script
Use the shared library, but some functions are only in
the static library, so try that secondarily. */
OUTPUT_FORMAT(elf32-littlearm)
GROUP ( /lib/libgcc_s.so.1 libgcc.a )' > $FULLPATH/libgcc_s.so
%endif
mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.spec $FULLPATH/
@ -1908,7 +1903,7 @@ echo gcc-%{version}-%{release}.%{_arch} > $FULLPATH/rpmver
cd obj-%{gcc_target_platform}
# run the tests.
make %{?_smp_mflags} -k check ALT_CC_UNDER_TEST=gcc ALT_CXX_UNDER_TEST=g++ \
LC_ALL=C make %{?_smp_mflags} -k check ALT_CC_UNDER_TEST=gcc ALT_CXX_UNDER_TEST=g++ \
%if 0%{?fedora} >= 20 || 0%{?rhel} > 7
RUNTESTFLAGS="--target_board=unix/'{,-fstack-protector-strong}'" || :
%else
@ -2986,6 +2981,104 @@ end
%endif
%changelog
* Wed Mar 20 2019 Jakub Jelinek <jakub@redhat.com> 9.0.1-0.11
- update from trunk
- PRs c++/63508, c++/85014, c++/85558, c++/88534, c++/88537, c++/88979,
c++/89512, c++/89571, c++/89630, c++/89640, c++/89660, c++/89682,
c++/89686, c++/89709, c++/89761, c/89734, d/87866, d/88957,
debug/88389, debug/89498, debug/89704, fortran/60091, fortran/66695,
fortran/68009, fortran/77746, fortran/79485, fortran/84394,
fortran/87045, fortran/87673, fortran/88008, fortran/89363,
fortran/89364, fortran/89601, fortran/89724, ipa/89684,
libstdc++/89461, lto/87809, lto/89335, middle-end/86979,
middle-end/88588, middle-end/88945, middle-end/89677,
middle-end/89698, middle-end/89737, other/89712,
rtl-optimization/89679, rtl-optimization/89721,
rtl-optimization/89753, rtl-optimization/89768, sanitizer/80953,
target/52726, target/85860, target/87532, target/87561, target/89378,
target/89411, target/89523, target/89627, target/89650, target/89711,
target/89719, target/89726, target/89736, target/89746, target/89752,
testsuite/83453, testsuite/84174, testsuite/89393, testsuite/89471,
testsuite/89666, tree-optimization/89546, tree-optimization/89644,
tree-optimization/89662, tree-optimization/89688,
tree-optimization/89703, tree-optimization/89710,
tree-optimization/89720
- turn libgcc_s.so into a linker script on i?86, x86_64, ppc64le and also on
ppc and ppc64 for 64-bit multilib (#1688766)
* Tue Mar 12 2019 Jakub Jelinek <jakub@redhat.com> 9.0.1-0.10
- update from trunk
- PRs bootstrap/89656, c++/70349, c++/86521, c++/87571, c++/87750,
c++/89648, c/88568, contrib/82704, d/89041, fortran/66089,
fortran/71544, fortran/84504, fortran/87734, fortran/89639,
fortran/89651, inline-asm/87010, libbacktrace/89669, libstdc++/89460,
libstdc++/89641, middle-end/68733, middle-end/89655, middle-end/89663,
rtl-optimization/89588, testsuite/89472, tree-optimization/85459,
tree-optimization/85762, tree-optimization/87008,
tree-optimization/89649, tree-optimization/89664
- fix ICE in constexpr loop handling of SAVE_EXPRs (PR c++/89652)
- temporarily revert -Wredundant-move warning false positive
improvement (PR c++/89660)
* Sat Mar 9 2019 Jakub Jelinek <jakub@redhat.com> 9.0.1-0.9
- update from trunk
- PRs bootstrap/89539, bootstrap/89560, c++/22149, c++/63540, c++/71446,
c++/80916, c++/82075, c++/84518, c++/84605, c++/86485, c++/86969,
c++/87068, c++/87148, c++/87378, c++/88049, c++/88123, c++/88183,
c++/88820, c++/88857, c++/89381, c++/89511, c++/89513, c++/89522,
c++/89532, c++/89537, c++/89576, c++/89585, c++/89599, c++/89622,
c/85870, c/89520, c/89521, c/89525, debug/89631, fortran/71203,
fortran/72714, fortran/77583, fortran/89433, fortran/89516,
gcov-profile/89577, go/63560, go/89227, go/89406, ipa/80000,
ipa/88235, libgfortran/89593, libstdc++/86655, libstdc++/88996,
libstdc++/89562, libstdc++/89608, lto/87525, lto/88585,
middle-end/89497, middle-end/89503, middle-end/89541,
middle-end/89572, middle-end/89578, middle-end/89590,
middle-end/89618, other/80058, rtl-optimization/85899,
rtl-optimization/88845, rtl-optimization/89634, sanitizer/88684,
target/68924, target/78782, target/79645, target/79846, target/79926,
target/80003, target/80190, target/85665, target/86952, target/87558,
target/89222, target/89455, target/89506, target/89517, target/89587,
target/89602, testsuite/89441, testsuite/89551, translation/79999,
tree-optimization/89437, tree-optimization/89487,
tree-optimization/89535, tree-optimization/89536,
tree-optimization/89550, tree-optimization/89566,
tree-optimization/89570, tree-optimization/89594,
tree-optimization/89595
- fix libstdc++ hashing of > 2GB strings (PR libstdc++/89629)
* Wed Feb 27 2019 Jakub Jelinek <jakub@redhat.com> 9.0.1-0.8
- update from trunk
- PRs c++/84585, c++/84676, c++/87685, c++/88294, c++/88394, c++/88419,
c++/88869, c++/88987, c++/89285, c++/89419, c++/89420, c++/89422,
c++/89481, c++/89488, c++/89507, c/77754, c/80409, c/89425, c/89495,
debug/88878, debug/89514, driver/69471, fortran/43210, fortran/72741,
fortran/78027, fortran/83057, fortran/84387, fortran/88117,
fortran/88326, fortran/89174, fortran/89266, fortran/89282,
fortran/89366, fortran/89385, fortran/89431, fortran/89492,
fortran/89496, go/89170, libfortran/89274, libstdc++/89446,
libstdc++/89466, libstdc++/89477, middle-end/85598, middle-end/87609,
rtl-optimization/86096, rtl-optimization/87761,
rtl-optimization/89445, target/87007, target/88530, target/89324,
target/89338, target/89339, target/89434, target/89438, target/89444,
target/89474, testsuite/89476, tree-optimization/87609,
tree-optimization/88853, tree-optimization/88993,
tree-optimization/89280, tree-optimization/89440,
tree-optimization/89489, tree-optimization/89500,
tree-optimization/89505
- improve arm and aarch64 casesi (PR target/70341)
- don't use section anchors block infrastructure for mergeable section
data (PR rtl-optimization/89490)
* Thu Feb 21 2019 Jakub Jelinek <jakub@redhat.com> 9.0.1-0.7
- update from trunk
- PRs c++/84536, c++/87513, c++/87921, c++/88368, c++/88380, c++/88572,
c++/88690, c++/89403, c++/89405, c/89410, fortran/86119,
fortran/89384, hsa/89302, libstdc++/89402, libstdc++/89416,
middle-end/89091, middle-end/89392, middle-end/89412,
middle-end/89415, sanitizer/89409, target/86487, target/87412,
target/88100
* Tue Feb 19 2019 Jakub Jelinek <jakub@redhat.com> 9.0.1-0.6
- update from trunk
- PRs c++/88680, c++/89217, c++/89315, c++/89336, c++/89356, c++/89383,

View File

@ -1,39 +0,0 @@
2019-02-18 Jakub Jelinek <jakub@redhat.com>
PR bootstrap/88714
* constraints.md (q): Remove.
* config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint
instead of q.
--- gcc/config/arm/constraints.md.jj 2019-01-01 12:37:27.032812929 +0100
+++ gcc/config/arm/constraints.md 2019-02-18 20:18:51.816941795 +0100
@@ -90,9 +90,6 @@ (define_constraint "PJ"
(define_register_constraint "k" "STACK_REG"
"@internal The stack register.")
-(define_register_constraint "q" "(TARGET_ARM && TARGET_LDRD) ? CORE_REGS : GENERAL_REGS"
- "@internal In ARM state with LDRD support, core registers, otherwise general registers.")
-
(define_register_constraint "b" "TARGET_THUMB ? BASE_REGS : NO_REGS"
"@internal
Thumb only. The union of the low registers and the stack register.")
--- gcc/config/arm/ldrdstrd.md.jj 2019-02-18 20:19:34.976233961 +0100
+++ gcc/config/arm/ldrdstrd.md 2019-02-18 20:19:54.555912842 +0100
@@ -159,7 +159,7 @@ (define_peephole2 ; swap the destination
(define_insn "*arm_ldrd"
[(parallel [(set (match_operand:SI 0 "s_register_operand" "=r")
(match_operand:SI 2 "memory_operand" "m"))
- (set (match_operand:SI 1 "s_register_operand" "=q")
+ (set (match_operand:SI 1 "s_register_operand" "=rk")
(match_operand:SI 3 "memory_operand" "m"))])]
"TARGET_LDRD && TARGET_ARM && reload_completed
&& valid_operands_ldrd_strd (operands, true)"
@@ -180,7 +180,7 @@ (define_insn "*arm_strd"
[(parallel [(set (match_operand:SI 2 "memory_operand" "=m")
(match_operand:SI 0 "s_register_operand" "r"))
(set (match_operand:SI 3 "memory_operand" "=m")
- (match_operand:SI 1 "s_register_operand" "q"))])]
+ (match_operand:SI 1 "s_register_operand" "rk"))])]
"TARGET_LDRD && TARGET_ARM && reload_completed
&& valid_operands_ldrd_strd (operands, false)"
{

View File

@ -1,42 +0,0 @@
--- gcc/config/aarch64/aarch64-option-extensions.def
+++ gcc/config/aarch64/aarch64-option-extensions.def
@@ -43,7 +43,8 @@
the extension (for example, the 'crypto' extension depends on four
entries: aes, pmull, sha1, sha2 being present). In that case this field
should contain a space (" ") separated list of the strings in 'Features'
- that are required. Their order is not important. */
+ that are required. Their order is not important. An empty string means
+ do not detect this feature during auto detection. */
/* Enabling "fp" just enables "fp".
Disabling "fp" also disables "simd", "crypto", "fp16", "aes", "sha2",
--- gcc/config/aarch64/driver-aarch64.c
+++ gcc/config/aarch64/driver-aarch64.c
@@ -253,6 +253,12 @@ host_detect_local_cpu (int argc, const char **argv)
char *p = NULL;
char *feat_string
= concat (aarch64_extensions[i].feat_string, NULL);
+
+ /* If the feature contains no HWCAPS string then ignore it for the
+ auto detection. */
+ if (strlen (feat_string) == 0)
+ continue;
+
bool enabled = true;
/* This may be a multi-token feature string. We need
--- gcc/testsuite/gcc.target/aarch64/options_set_10.c
+++ gcc/testsuite/gcc.target/aarch64/options_set_10.c
@@ -0,0 +1,11 @@
+/* { dg-do compile { target "aarch64*-*-linux*" } } */
+/* { dg-additional-options "-mcpu=native" } */
+
+int main ()
+{
+ return 0;
+}
+
+/* { dg-final { scan-assembler-not {\.arch .+\+profile.*} } } */
+
+ /* Check that an empty feature string is not detected during mcpu=native. */

View File

@ -55,15 +55,19 @@
--- gcc/config/arm/arm.c
+++ gcc/config/arm/arm.c
@@ -3759,8 +3759,6 @@ arm_options_perform_arch_sanity_checks (void)
@@ -3761,11 +3761,7 @@ arm_options_perform_arch_sanity_checks (
if (arm_abi == ARM_ABI_IWMMXT)
arm_pcs_default = ARM_PCS_AAPCS_IWMMXT;
else if (TARGET_HARD_FLOAT_ABI)
{
arm_pcs_default = ARM_PCS_AAPCS_VFP;
- {
- arm_pcs_default = ARM_PCS_AAPCS_VFP;
- if (!bitmap_bit_p (arm_active_target.isa, isa_bit_vfpv2))
- error ("-mfloat-abi=hard: selected processor lacks an FPU");
}
- error ("%<-mfloat-abi=hard%>: selected processor lacks an FPU");
- }
+ arm_pcs_default = ARM_PCS_AAPCS_VFP;
else
arm_pcs_default = ARM_PCS_AAPCS;
}
--- libgcc/config/arm/pr-support.c
+++ libgcc/config/arm/pr-support.c
@@ -21,6 +21,8 @@

View File

@ -1,16 +0,0 @@
2019-02-19 Jakub Jelinek <jakub@redhat.com>
PR libstdc++/89402
* src/c++98/compatibility-ldbl.cc (_ZNKSt4hashIeEclEe): Add
_GLIBCXX_PURE to the alias declaration.
--- libstdc++-v3/src/c++98/compatibility-ldbl.cc.jj 2019-01-01 12:39:41.530606161 +0100
+++ libstdc++-v3/src/c++98/compatibility-ldbl.cc 2019-02-19 16:12:52.402123217 +0100
@@ -75,6 +75,6 @@ namespace std _GLIBCXX_VISIBILITY(defaul
// and std::hash<long double>::operator()
// are the same, no need to duplicate them.
extern "C" void _ZNKSt4hashIeEclEe (void)
- __attribute__((alias ("_ZNKSt3tr14hashIeEclEe")));
+ _GLIBCXX_PURE __attribute__((alias ("_ZNKSt3tr14hashIeEclEe")));
#endif

View File

@ -1,17 +0,0 @@
--- libgo/go/internal/cpu/cpu_gccgo.c.jj 2019-02-16 07:57:27.882179972 +0100
+++ libgo/go/internal/cpu/cpu_gccgo.c 2019-02-16 08:36:37.241900882 +0100
@@ -71,7 +71,7 @@ struct xgetbv_ret xgetbv(void) {
#endif /* defined(__i386__) || defined(__x86_64__) */
-#ifdef __s390__
+#ifdef __s390x__
struct facilityList {
uint64_t bits[4];
@@ -184,4 +184,4 @@ struct queryResult klmdQuery() {
return ret;
}
-#endif /* defined(__s390__) */
+#endif /* defined(__s390x__) */

View File

@ -1,3 +1,3 @@
SHA512 (gcc-9.0.1-20190219.tar.xz) = 5c4b8f38bc87c19337cb4b7fdbc4910eefabc43f06f4224087f7b4879750722a0b508cd214f0ac880c23ed8f8deb803442cbbe1e7ea6f8f24c6a6365e8d0a1a7
SHA512 (gcc-9.0.1-20190320.tar.xz) = 20ca885e0afca0470142113271d47eed2876dd778c308f72c9fea86b58a69ab798a8b3b398f240b49a41907adb47446ba087171b75f079597bad3d4348436e18
SHA512 (nvptx-newlib-aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24.tar.xz) = 94f7089365296f7dfa485107b4143bebc850a81586f3460fd896bbbb6ba099a00217d4042133424fd2183b352132f4fd367e6a60599bdae2a26dfd48a77d0e04
SHA512 (nvptx-tools-c28050f60193b3b95a18866a96f03334e874e78f.tar.xz) = a688cb12cf805950a5abbb13b52f45c81dbee98e310b7ed57ae20e76dbfa5964a16270148374a6426d177db71909d28360490f091c86a5d19d4faa5127beeee1