The package rpms/gcc.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/gcc.git/commit/?id=4d0e7484170694....
Change:
+%ifarch x86_64 ppc64 ppc64p7
Thanks.
Full change:
============
commit 5c040740528feb6f13e175e25ec8fdf1e449b596
Author: Jakub Jelinek <jakub(a)redhat.com>
Date: Wed Mar 20 13:45:09 2019 +0100
9.0.1-0.11
diff --git a/.gitignore b/.gitignore
index 159ca68..8d0fe1d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -69,3 +69,4 @@
/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
diff --git a/gcc.spec b/gcc.spec
index 7d49003..2c4fbf8 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,10 +1,10 @@
-%global DATE 20190312
-%global SVNREV 269606
+%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.10
+%global gcc_release 0.11
%global nvptx_tools_gitrev c28050f60193b3b95a18866a96f03334e874e78f
%global nvptx_newlib_gitrev aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24
%global _unpackaged_files_terminate_build 0
@@ -255,8 +255,6 @@ Patch9: gcc9-Wno-format-security.patch
Patch10: gcc9-rh1574936.patch
Patch11: gcc9-d-shared-libphobos.patch
Patch12: gcc9-pr89093.patch
-Patch13: gcc9-pr89652.patch
-Patch14: gcc9-pr89660.patch
Patch1000: nvptx-tools-no-ptxas.patch
Patch1001: nvptx-tools-build.patch
@@ -768,8 +766,6 @@ to NVidia PTX capable devices if available.
%endif
%patch11 -p0 -b .d-shared-libphobos~
%patch12 -p0 -b .pr89093~
-%patch13 -p0 -b .pr89652~
-%patch14 -p0 -b .pr89660~
cd nvptx-tools-%{nvptx_tools_gitrev}
%patch1000 -p1 -b .nvptx-tools-no-ptxas~
@@ -2961,7 +2957,28 @@ end
%endif
%changelog
-% Thu Mar 14 2019 Jakub Jelinek <jakub(a)redhat.com> 9.0.1-0.11
+* Wed Mar 20 2019 Jakub Jelinek <jakub(a)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)
diff --git a/gcc9-pr89652.patch b/gcc9-pr89652.patch
deleted file mode 100644
index 8fde67d..0000000
--- a/gcc9-pr89652.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-2019-03-12 Jakub Jelinek <jakub(a)redhat.com>
-
- PR c++/89652
- * constexpr.c (cxx_eval_loop_expr): Only remove SAVE_EXPRs that are
- still in new_ctx.values hash_map.
-
- * g++.dg/cpp1y/constexpr-89652.C: New test.
-
---- gcc/cp/constexpr.c.jj 2019-03-08 08:43:23.529496048 +0100
-+++ gcc/cp/constexpr.c 2019-03-11 15:11:32.081334270 +0100
-@@ -4236,7 +4236,8 @@ cxx_eval_loop_expr (const constexpr_ctx
- /* Forget saved values of SAVE_EXPRs. */
- for (hash_set<tree>::iterator iter = save_exprs.begin();
- iter != save_exprs.end(); ++iter)
-- new_ctx.values->remove (*iter);
-+ if (new_ctx.values->get (*iter))
-+ new_ctx.values->remove (*iter);
-
- if (++count >= constexpr_loop_limit)
- {
-@@ -4258,7 +4259,8 @@ cxx_eval_loop_expr (const constexpr_ctx
- /* Forget saved values of SAVE_EXPRs. */
- for (hash_set<tree>::iterator iter = save_exprs.begin();
- iter != save_exprs.end(); ++iter)
-- new_ctx.values->remove (*iter);
-+ if (new_ctx.values->get (*iter))
-+ new_ctx.values->remove (*iter);
-
- return NULL_TREE;
- }
---- gcc/testsuite/g++.dg/cpp1y/constexpr-89652.C.jj 2019-03-11 15:14:21.877561575 +0100
-+++ gcc/testsuite/g++.dg/cpp1y/constexpr-89652.C 2019-03-11 15:16:11.962763933 +0100
-@@ -0,0 +1,36 @@
-+// PR c++/89652
-+// { dg-do compile { target c++14 } }
-+// { dg-options "" }
-+
-+template <typename T> constexpr auto foo (T &e) { return e.foo (); }
-+template <typename T> constexpr auto bar (T &e) { return foo (e); }
-+template <typename T, int N> struct A { typedef T a[N]; };
-+template <typename T, unsigned long N> struct B {
-+ typedef T *b;
-+ typename A<T, N>::a d;
-+ constexpr b foo () { return d; }
-+};
-+template <typename> struct C { long m; };
-+struct D { long n; };
-+template <typename, unsigned long> struct E {
-+ B<C<int>, 1>::b p;
-+ constexpr D operator* () { return {p->m}; }
-+ constexpr E operator++ (int) { auto a{*this}; ++p; return a; }
-+};
-+template <typename T, unsigned long N>
-+constexpr bool operator!= (E<T, N> a, E<T, N>) { return a.p; }
-+template <unsigned long N, typename T, unsigned long M>
-+constexpr auto baz (B<T, M> s, B<D, N>)
-+{
-+ B<D, M> t{};
-+ auto q{foo (t)};
-+ using u = E<T, M>;
-+ auto v = u{bar (s)};
-+ auto w = u{};
-+ while (v != w)
-+ *q++ = *v++;
-+ return t;
-+}
-+constexpr auto a = B<C<int>, 5>{};
-+auto b = B<D, 0>{};
-+auto c = baz (a, b);
diff --git a/gcc9-pr89660.patch b/gcc9-pr89660.patch
deleted file mode 100644
index 49234ab..0000000
--- a/gcc9-pr89660.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-2019-03-12 Jakub Jelinek <jakub(a)redhat.com>
-
- PR c++/89660
- Revert:
- 2019-03-06 Marek Polacek <polacek(a)redhat.com>
-
- PR c++/87378 - bogus -Wredundant-move warning.
- * typeck.c (maybe_warn_pessimizing_move): See if the maybe-rvalue
- overload resolution would actually succeed.
-
- * g++.dg/cpp0x/Wredundant-move1.C (fn4): Drop dg-warning.
-
---- gcc/cp/typeck.c (revision 269427)
-+++ gcc/cp/typeck.c (revision 269426)
-@@ -9429,24 +9429,10 @@ maybe_warn_pessimizing_move (tree retval
- do maybe-rvalue overload resolution even without std::move. */
- else if (treat_lvalue_as_rvalue_p (arg, /*parm_ok*/true))
- {
-- /* Make sure that the overload resolution would actually succeed
-- if we removed the std::move call. */
-- tree t = convert_for_initialization (NULL_TREE, functype,
-- move (arg),
-- (LOOKUP_NORMAL
-- | LOOKUP_ONLYCONVERTING
-- | LOOKUP_PREFER_RVALUE),
-- ICR_RETURN, NULL_TREE, 0,
-- tf_none);
-- /* If this worked, implicit rvalue would work, so the call to
-- std::move is redundant. */
-- if (t != error_mark_node)
-- {
-- auto_diagnostic_group d;
-- if (warning_at (loc, OPT_Wredundant_move,
-- "redundant move in return statement"))
-- inform (loc, "remove %<std::move%> call");
-- }
-+ auto_diagnostic_group d;
-+ if (warning_at (loc, OPT_Wredundant_move,
-+ "redundant move in return statement"))
-+ inform (loc, "remove %<std::move%> call");
- }
- }
- }
---- gcc/testsuite/g++.dg/cpp0x/Wredundant-move1.C (revision 269427)
-+++ gcc/testsuite/g++.dg/cpp0x/Wredundant-move1.C (revision 269426)
-@@ -59,8 +59,7 @@ T
- fn4 (const T t)
- {
- // t is const: will decay into copy despite std::move, so it's redundant.
-- // We used to warn about this, but no longer since c++/87378.
-- return std::move (t);
-+ return std::move (t); // { dg-warning "redundant move in return statement"
}
- }
-
- int
diff --git a/sources b/sources
index 57b494e..298fab6 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (gcc-9.0.1-20190312.tar.xz) =
23ef500528212ea4542398d6909548e6dc5e12a7e58c750895ce85ff5a24e6ed637fcb361a8c248b79e0c93ecbfb72606d07c004a02b891f2078c12e973f51f1
+SHA512 (gcc-9.0.1-20190320.tar.xz) =
20ca885e0afca0470142113271d47eed2876dd778c308f72c9fea86b58a69ab798a8b3b398f240b49a41907adb47446ba087171b75f079597bad3d4348436e18
SHA512 (nvptx-newlib-aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24.tar.xz) =
94f7089365296f7dfa485107b4143bebc850a81586f3460fd896bbbb6ba099a00217d4042133424fd2183b352132f4fd367e6a60599bdae2a26dfd48a77d0e04
SHA512 (nvptx-tools-c28050f60193b3b95a18866a96f03334e874e78f.tar.xz) =
a688cb12cf805950a5abbb13b52f45c81dbee98e310b7ed57ae20e76dbfa5964a16270148374a6426d177db71909d28360490f091c86a5d19d4faa5127beeee1
commit 4d0e748417069443292cecced8e96de38a097333
Author: Jakub Jelinek <jakub(a)redhat.com>
Date: Thu Mar 14 13:17:36 2019 +0100
Resolves: #1688766
diff --git a/gcc.spec b/gcc.spec
index 874faad..7d49003 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1266,36 +1266,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
-ln -sf /%{_lib}/libgcc_s.so.1 $FULLPATH/libgcc_s.so
-%ifarch sparcv9 ppc
-ln -sf /lib64/libgcc_s.so.1 $FULLPATH/64/libgcc_s.so
-%endif
-%ifarch %{multilib_64_archs}
-ln -sf /lib/libgcc_s.so.1 $FULLPATH/32/libgcc_s.so
-%endif
-%ifarch ppc
+%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(elf32-powerpc)
-GROUP ( /lib/libgcc_s.so.1 libgcc.a )' > $FULLPATH/libgcc_s.so
+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 ppc64 ppc64p7
-rm -f $FULLPATH/32/libgcc_s.so
+%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(elf32-powerpc)
-GROUP ( /lib/libgcc_s.so.1 libgcc.a )' > $FULLPATH/32/libgcc_s.so
+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
-%ifarch %{arm}
-rm -f $FULLPATH/libgcc_s.so
+%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(elf32-littlearm)
-GROUP ( /lib/libgcc_s.so.1 libgcc.a )' > $FULLPATH/libgcc_s.so
+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
%endif
mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.spec $FULLPATH/
@@ -2958,6 +2961,10 @@ end
%endif
%changelog
+% Thu Mar 14 2019 Jakub Jelinek <jakub(a)redhat.com> 9.0.1-0.11
+- 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(a)redhat.com> 9.0.1-0.10
- update from trunk
- PRs bootstrap/89656, c++/70349, c++/86521, c++/87571, c++/87750,