Compare commits

...
Sign in to create a new pull request.

298 commits

Author SHA1 Message Date
Jakub Jelinek
11a7615167 16.0.1-0.3 2026-01-15 16:59:36 +01:00
Jakub Jelinek
fa1effd14b 16.0.1-0.2 2026-01-13 14:43:02 +01:00
Jakub Jelinek
1c7da76a52 16.0.1-0.1 2026-01-12 20:27:05 +01:00
Jakub Jelinek
8d258e58bd 16.0.1-0.1 2026-01-12 20:15:57 +01:00
Jakub Jelinek
bf9047fd71 16.0.0-0.5 2026-01-10 11:57:52 +01:00
Jakub Jelinek
2df9f5e183 16.0.0-0.4 2026-01-03 14:56:53 +01:00
Jakub Jelinek
461b2c1a00 16.0.0-0.4 2026-01-03 14:24:24 +01:00
Jakub Jelinek
55e669d29a 16.0.0-0.4 2026-01-03 14:04:21 +01:00
Jakub Jelinek
406a54e096 16.0.0-0.4 2026-01-03 13:41:22 +01:00
Jakub Jelinek
54fd0a9c60 16.0.0-0.3 2025-12-20 19:06:25 +01:00
Jakub Jelinek
f184fa5d6b gcc-16.0.0-0.2 2025-12-18 17:45:18 +01:00
Jakub Jelinek
8f8d2ea9c3 16.0.0-0.2 2025-12-18 17:22:02 +01:00
Jakub Jelinek
37b414b69d gcc-15.2.1-5 2025-12-12 21:57:37 +01:00
Jakub Jelinek
e938fc85e2 gcc-15.2.1-5 2025-12-11 14:32:49 +01:00
Jakub Jelinek
7d5be559db gcc-15.2.1-5 2025-12-11 13:58:15 +01:00
Jakub Jelinek
03834369ae gcc-15.2.1-5 2025-12-11 13:51:51 +01:00
Siddhesh Poyarekar
7e1c00df08 Disable libssp and avoid building disabled libraries
Don't build libquadmath, libatomic and libitm if they have been
disabled.  Also, disable libssp so that none of its artifacts are built
or installed.
2025-12-05 10:02:15 -05:00
Siddhesh Poyarekar
29a83d7553 Create gnatgcc symlink only when building the Ada compiler 2025-12-02 15:03:45 -05:00
Siddhesh Poyarekar
1651080f05 Merge #64 Update bug reporting URL 2025-11-27 13:40:32 +00:00
Jakub Jelinek
ecc62ec17c Fix up date. 2025-11-11 09:27:02 +01:00
Jakub Jelinek
8e1de27693 15.2.1-4 2025-11-11 09:25:47 +01:00
Jakub Jelinek
a9e44d03b5 gcc-15.2.1-3 2025-10-22 14:00:24 +02:00
Jakub Jelinek
e30d2f7054 15.2.1-2 2025-09-24 18:47:28 +02:00
Jakub Jelinek
ec7ee8880e 15.2.1-2 2025-09-24 18:38:03 +02:00
Python Maint
a703174f5b Rebuilt for Python 3.14.0rc3 bytecode 2025-09-19 12:17:32 +02:00
Václav Kadlčík
c5384031e6 Make rpminspect in CI less loud
Configure exceptions for  rpminspect
(fedora-ci.koji-build.rpminspect.static-analysis in Fedora CI) so the
reports don't overwhelm us with failures (be it false ones or genuine
ones that we are OK with).
2025-08-15 12:47:33 +00:00
Python Maint
86392f66e3 Rebuilt for Python 3.14.0rc2 bytecode 2025-08-15 12:48:10 +02:00
Jakub Jelinek
e37f3dd922 15.2.1-1 2025-08-08 14:38:51 +02:00
Jakub Jelinek
8fdb5717b5 15.2.1-1 2025-08-08 14:34:22 +02:00
Fedora Release Engineering
e3cc379cd1 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-23 21:09:35 +00:00
Jakub Jelinek
a6bc1b37ec 15.1.1-5 2025-07-19 15:36:22 +02:00
Jakub Jelinek
17636a65a5 15.1.1-4 2025-07-18 12:25:58 +02:00
Jakub Jelinek
0176834606 15.1.1-3 2025-07-07 12:07:31 +02:00
Siddhesh Poyarekar
fcc453986e Update bug reporting URL
Use %dist_bug_report_url instead of the hardcoded URL.
2025-06-20 07:18:05 -04:00
Václav Kadlčík
81055b7d4d Downstream tests moved to CentOS 2025-05-22 10:51:03 +02:00
Jakub Jelinek
789e812095 15.1.1-2 2025-05-21 14:53:58 +02:00
Jakub Jelinek
09b578c3e5 15.1.1-1 2025-04-25 13:49:40 +02:00
Jakub Jelinek
976f3a7441 15.0.1-0.14 2025-04-18 20:33:24 +02:00
Jakub Jelinek
222db06f79 15.0.1-0.13 2025-04-17 20:40:55 +02:00
Jakub Jelinek
82d154466d 15.0.1-0.12 2025-04-10 09:23:14 +02:00
Jakub Jelinek
f4a22ed093 15.0.1-0.11 2025-03-29 19:16:28 +01:00
Jakub Jelinek
d831ac9ded 15.0.1-0.11 2025-03-29 13:04:21 +01:00
Siddhesh Poyarekar
6a75c861d4 Add version for libmudflap, etc.
Fix warnings that fedpkg prep throws whenever gcc sources are prepped.
2025-03-21 13:09:55 -04:00
Jakub Jelinek
f659fed8f8 15.0.1-0.10 2025-03-13 21:39:31 +01:00
Jakub Jelinek
2d6ea7bce2 15.0.1-0.10 2025-03-13 13:40:46 +01:00
Jakub Jelinek
f7f61ee7ea 15.0.1-0.10 2025-03-13 13:28:27 +01:00
Jakub Jelinek
264b1809f7 15.0.1-0.9 2025-03-01 13:02:22 +01:00
Jakub Jelinek
6a6af07450 15.0.1-0.8 2025-02-25 16:55:58 +01:00
Jakub Jelinek
7eefe5bcb2 Remove riscv_cmo.h, add sifive_vector.h instead. 2025-02-25 10:14:02 +01:00
Jakub Jelinek
65505a4c17 15.0.1-0.7 2025-02-04 20:28:37 +01:00
Jakub Jelinek
d634368529 15.0.1-0.6 2025-02-01 10:29:30 +01:00
Jakub Jelinek
56f71ad788 15.0.1-0.5 2025-01-30 18:48:11 +01:00
Jakub Jelinek
f97b22af10 15.0.1-0.4 2025-01-25 11:06:55 +01:00
Jakub Jelinek
46a6d80764 Fix up sed command for libstdc++ modules json. 2025-01-21 17:25:58 +01:00
Fedora Release Engineering
c142771541 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-16 19:32:58 +00:00
Jakub Jelinek
b46eae0019 Add noautorebuild. 2025-01-14 20:34:30 +01:00
Jakub Jelinek
ca394fe46b 15.0.1-0.3 2025-01-14 13:11:09 +01:00
Jakub Jelinek
2f3ea848fe 15.0.1-0.2 2025-01-14 11:45:44 +01:00
Jakub Jelinek
48a562d802 15.0.1-0.2 2025-01-14 11:45:25 +01:00
Jakub Jelinek
741ed4a5a9 15.0.1-0.1 2025-01-14 00:08:34 +01:00
Jakub Jelinek
37a3863034 15.0.1-0.1 2025-01-14 00:05:44 +01:00
Jakub Jelinek
33699f47c3 15.0.0-0.4 2025-01-11 11:38:09 +01:00
Jakub Jelinek
f7d926bced 15.0.0-0.3 2025-01-09 21:35:16 +01:00
Jakub Jelinek
130b5c0e0e Fix up PR118362 patch. 2025-01-09 09:43:05 +01:00
Jakub Jelinek
e48becc49a gcc-15.0.0-0.3 2025-01-09 09:20:53 +01:00
Jakub Jelinek
82653994cf Also revert -mearly-ldp-fusion and -mlate-ldp-fusion default hack 2024-12-05 20:15:14 +01:00
Jakub Jelinek
806e75093d Fix up #2330362 2024-12-05 20:08:15 +01:00
Jakub Jelinek
02c34dfa36 14.2.1-6 2024-11-04 16:02:03 +01:00
Jakub Jelinek
3c526fa26b 14.2.1-5 2024-10-25 17:59:54 +02:00
Jakub Jelinek
8cd5593dfc 14.2.1-5 2024-10-25 17:45:57 +02:00
Jakub Jelinek
a706a6fd25 Use https:// instead of git:// in git URLs. 2024-09-30 18:28:50 +02:00
Siddhesh Poyarekar
d021080ea7 Default tuning to power 10 for RHEL10 and later 2024-09-24 22:41:47 -04:00
Jakub Jelinek
dc203d1b77 14.2.1-3 2024-09-12 20:49:36 +02:00
Jakub Jelinek
0425b2638c 14.2.1-2 2024-09-05 12:47:04 +02:00
Jakub Jelinek
b100864ab2 14.2.1-1 2024-08-01 20:59:14 +02:00
Fedora Release Engineering
5032483c40 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-18 00:14:52 +00:00
Jakub Jelinek
4b5f87d836 14.1.1-7 2024-07-01 10:54:56 +02:00
Zbigniew Jędrzejewski-Szmek
5551c1491d Replace homegrown byte compilation with %py_byte_compile
Resolves https://bugzilla.redhat.com/show_bug.cgi?id=2294381.

Note that the 'touch -r' calls should not be necessary since
https://fedoraproject.org/wiki/Changes/ReproducibleBuildsClampMtimes.
2024-06-27 21:56:16 +02:00
Jakub Jelinek
467c94cde8 14.1.1-6 2024-06-20 13:48:15 +02:00
Jakub Jelinek
73893f6935 14.1.1-5 2024-06-07 11:06:03 +02:00
Jakub Jelinek
c6f99ecd74 gcc-14.1.1-4 2024-05-22 11:58:56 +02:00
Siddhesh Poyarekar
face1955f5 Update new SPDX identifiers from all outstanding issues. 2024-05-21 13:37:31 -04:00
Marek Polacek
150f0ee915 14.1.1-2 2024-05-17 10:04:53 -04:00
Marek Polacek
7b746958a3 14.1.1-2 2024-05-17 09:50:05 -04:00
Jakub Jelinek
8e7867c2d3 14.1.1-1 2024-05-08 10:49:53 +02:00
Jakub Jelinek
551363d0e2 14.1.1-1 2024-05-08 10:47:09 +02:00
Marek Polacek
13569d0f04 Don't require rocm-runtime on RHEL 2024-05-07 13:20:04 -04:00
Marek Polacek
6c8229ada4 Don't build offload-amdgcn on RHEL 2024-05-03 16:09:15 -04:00
Marek Polacek
20746dd85f 14.0.1-0.17
Enable hardening and configure with --enable-host-pie --enable-host-bind-now on RHEL
2024-05-03 14:49:35 -04:00
Jakub Jelinek
d6fcb33cdc 14.0.1-0.16 2024-04-30 13:32:34 +02:00
Jakub Jelinek
e703f37eb8 14.0.1-0.16 2024-04-30 13:32:03 +02:00
Jakub Jelinek
3b5d747556 Fix last commit. 2024-04-25 12:19:59 +02:00
Jakub Jelinek
d818c7e53a Small tweaks. 2024-04-25 12:16:50 +02:00
Jakub Jelinek
7294abbf86 14.0.1-0.15 2024-04-11 17:49:48 +02:00
Jakub Jelinek
ec9e26e795 14.0.1-0.14 2024-04-10 19:07:35 +02:00
Jakub Jelinek
a36c072c54 14.0.1-0.13 2024-03-28 13:34:48 +01:00
Jakub Jelinek
f10c1b3e6f Fix up %changelog entries. 2024-03-16 09:42:59 +01:00
Jakub Jelinek
888d966da3 14.0.1-0.11 2024-03-16 09:27:37 +01:00
Siddhesh Poyarekar
1bdd979db9 Update license to SPDX
Includes licenses in ISL, newlib and nvptx as well.
2024-03-07 08:05:29 -05:00
Siddhesh Poyarekar
493fbf28af Fix changelogs in previous changes 2024-03-07 08:03:14 -05:00
Jakub Jelinek
6997e7374e add --without-clang-plugin --without-llvm-plugin to annobin configure options 2024-03-04 13:58:07 +01:00
David Abdurachmanov
496f53165b Enable support for riscv64 2024-02-29 08:48:36 +00:00
Jakub Jelinek
8ed2af4dd0 14.0.1-0.8 2024-02-28 12:56:06 +01:00
Jakub Jelinek
966f89a4b5 14.0.1-0.7 2024-02-17 22:54:49 +01:00
Jakub Jelinek
f24424aa4f 14.0.1-0.7 2024-02-17 17:36:34 +01:00
Jakub Jelinek
216b9da073 14.0.1-0.6 2024-02-08 15:21:37 +01:00
Jakub Jelinek
564bdfea3f 14.0.1-0.5 2024-02-07 16:19:23 +01:00
Jakub Jelinek
5ccff5cd88 14.0.1-0.4 2024-01-27 12:08:41 +01:00
Jakub Jelinek
d10c76f901 14.0.1-0.3 2024-01-25 13:29:52 +01:00
Fedora Release Engineering
1ff01b9f76 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-24 12:35:18 +00:00
Jakub Jelinek
1362054ff7 AMD GCN offloading support. 2024-01-23 16:24:18 +01:00
Fedora Release Engineering
41cbdc2247 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-19 20:20:52 +00:00
Jakub Jelinek
f2827fcbf7 14.0.1-0.2 2024-01-18 17:39:23 +01:00
Jakub Jelinek
592bd10bc7 14.0.1-0.2 2024-01-18 17:37:18 +01:00
Jakub Jelinek
667479a5c7 14.0.1-0.2 2024-01-18 17:03:52 +01:00
Jakub Jelinek
352f3e92ab 14.0.1-0.1 2024-01-13 12:49:39 +01:00
Jakub Jelinek
54bd293004 13.2.1-6 2023-12-05 18:33:40 +01:00
Jakub Jelinek
c741e6965d gcc-13.2.1-5 2023-11-13 18:00:18 +01:00
Václav Kadlčík
b2371a5073 Move gating tests to a different repo
Remove the gating tests from here and use the tests from
  https://src.fedoraproject.org/tests/gcc
There's more of them there, they are are more up-to-date,
maintained by RHEL QA staff and re-used in other downstreams
(CentOS Stream, RHEL, RHIVOS).
2023-11-09 10:22:15 +01:00
Jakub Jelinek
666e815832 13.2.1-4 2023-10-11 10:27:55 +02:00
Jakub Jelinek
c4ec5953ba 13.2.1-3 2023-09-18 10:06:19 +02:00
Jakub Jelinek
8eebf44373 13.2.1-2 2023-09-08 22:38:33 +02:00
Jakub Jelinek
3245329e23 13.2.1-2 2023-09-06 15:13:22 +02:00
Patsy Griffin
267dcb128b Allow for the optional removal of tzdata.
See https://fedoraproject.org/wiki/Changes/AllowRemovalOfTzdata
2023-07-31 17:05:53 -04:00
Jakub Jelinek
4e02d56d94 13.2.1-1 2023-07-28 18:57:41 +02:00
Fedora Release Engineering
31fb054039 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-19 20:52:11 +00:00
Marek Polacek
2751220912 Remove 3 gcc13-fortran-* patches 2023-06-16 14:31:24 -04:00
Jakub Jelinek
f3a804c686 Make the Fortran patches hopefully apply again. 2023-06-16 20:17:58 +02:00
Jakub Jelinek
a9552bf745 13.1.1-4 2023-06-14 18:01:04 +02:00
Jakub Jelinek
8f1aceb90b 13.1.1-3 2023-05-19 11:26:04 +02:00
Jakub Jelinek
f18f04b3fb 13.1.1-2 2023-05-11 14:38:05 +02:00
Jakub Jelinek
ca788bfdff 13.1.1-1 2023-04-26 10:58:06 +02:00
Jakub Jelinek
e31a1bddc0 13.0.1-0.16 2023-04-21 14:51:27 +02:00
Jakub Jelinek
ee018dc183 13.0.1-0.16 2023-04-21 14:38:09 +02:00
Jakub Jelinek
6fdcb2b9e5 13.0.1-0.15 2023-04-19 21:27:34 +02:00
Jakub Jelinek
52a79c17ee 13.0.1-0.14 2023-04-18 18:35:23 +02:00
Jakub Jelinek
52fa8aefa3 13.0.1-0.13 2023-04-04 17:49:54 +02:00
Jakub Jelinek
b290aa01d1 13.0.1-0.12 2023-04-01 10:33:07 +02:00
Jakub Jelinek
dc8f6e461b 13.0.1-0.11 2023-03-29 17:26:07 +02:00
Andrej Cernek
85fff34818 test-m32-m54-options: manage dependencies in fmf file
Also include updated script from the RHEL tests and fixes for rawhide.
Note: dependencies were configured for x86_64 only.
2023-03-28 14:39:35 +00:00
Shmuel Melamud
02ae2beb4c Added missing dependencies of Sanity/rebuild-glibc test. 2023-03-28 05:45:34 +00:00
Jakub Jelinek
3c30ab4799 13.0.1-0.10 2023-03-24 12:02:07 +01:00
Jakub Jelinek
8e1f20bf3a 13.0.1-0.10 2023-03-24 11:52:55 +01:00
Martin Cermak
cf965d214e CI Tests: Make the CI testplan more compact 2023-03-24 09:46:16 +01:00
Jakub Jelinek
5e48ef55f5 13.0.1-0.9 2023-03-21 22:02:15 +01:00
Jakub Jelinek
28a41d7ec1 13.0.1-0.9 2023-03-21 20:57:59 +01:00
Jakub Jelinek
99a093cb4f 13.0.1-0.8 2023-03-18 09:37:39 +01:00
Jakub Jelinek
75ecbee53f 13.0.1-0.7 2023-03-10 22:07:43 +01:00
Jakub Jelinek
19c5115980 13.0.1-0.6 2023-03-04 19:58:21 +01:00
Martin Cermak
863c72823c CI tests: Setup task for Fedora CI system 2023-02-23 18:57:40 +01:00
Jakub Jelinek
fabc85dc5d 13.0.1-0.5 2023-02-21 12:49:29 +01:00
Martin Cermak
95221c62d2 Please ignore: A testing change 2023-02-20 17:28:12 +01:00
Jakub Jelinek
5fe996562e 13.0.1-0.4 2023-02-15 16:51:32 +01:00
Jakub Jelinek
6f673bac47 13.0.1-0.3 2023-02-08 15:30:40 +01:00
Jakub Jelinek
e346cea2fb Merge branch 'rawhide' of ssh://pkgs.fedoraproject.org/rpms/gcc into rawhide 2023-01-28 00:24:26 +01:00
Jakub Jelinek
dc4418df89 13.0.1-0.2 2023-01-28 00:20:49 +01:00
Jakub Jelinek
91c863f8a9 Merge #30 add bash to ./runtest.sh 2023-01-19 11:33:46 +00:00
Dana Elfassy
d69d615083 add bash to ./runtest.sh 2023-01-19 13:22:59 +02:00
Fedora Release Engineering
0acbf54cf4 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-19 04:26:55 +00:00
Jakub Jelinek
2e2b76f57a 13.0.1-0.1 2023-01-17 21:37:23 +01:00
Jakub Jelinek
311655b816 13.0.1-0.1 2023-01-17 21:14:10 +01:00
Jakub Jelinek
d4299b940b Various small tweaks. 2023-01-17 11:02:16 +01:00
Dan Horák
0d926ffb44 drop the ancient defaults for s390x 2023-01-17 10:31:20 +01:00
Dan Horák
ec851df667 move the baseline arch to z13 for s390x in F-38+
https://fedoraproject.org/wiki/Changes/z13BaselineForIBMZ
2023-01-17 10:20:15 +01:00
Florian Weimer
3dab9de8f0 Adapt to new way of redhat-rpm-config setting fortify flags 2023-01-16 21:49:51 +01:00
Jakub Jelinek
dd92515693 13.0.0-0.9 2023-01-15 13:52:46 +01:00
Jakub Jelinek
f05a075009 13.0.0-0.9 2023-01-15 13:51:18 +01:00
Jakub Jelinek
0af622a16d 12.2.1-4 2022-11-21 11:17:13 +01:00
Jakub Jelinek
146fdc1878 12.2.1-3 2022-11-03 19:23:52 +01:00
Jakub Jelinek
78accc2a93 12.2.1-3 2022-11-03 17:10:52 +01:00
Jakub Jelinek
a492697acf 12.2.1-3 2022-11-03 17:07:37 +01:00
Kalev Lember
c9c54ba24f enable GDC on aarch64 2022-09-08 21:42:48 +02:00
Jakub Jelinek
46ce913ce6 12.2.1-1 2022-08-19 19:30:52 +02:00
Jakub Jelinek
a72281a470 Fix up gcc12-fortran-fdec-non-logical-if.patch. 2022-08-18 18:57:31 +02:00
Jakub Jelinek
bfe43bb230 12.1.1-4 2022-08-10 16:58:13 +02:00
Jakub Jelinek
2615a533b8 12.1.1-4 2022-08-10 16:57:15 +02:00
Václav Kadlčík
23a21fde25 Import a set of tests from RHEL 2022-07-29 16:27:49 +02:00
Fedora Release Engineering
e503f00450 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-21 04:12:01 +00:00
Daan De Meyer
74613be376 Use annobin-plugin-gcc instead of annobin
The "annobin" Provides was removed from the annobin rpm
so let's reflect that in the gcc spec.

See https://src.fedoraproject.org/rpms/annobin/c/2a644cdee42066841eb1dabebf32a060accb5f9f?branch=rawhide
2022-07-11 21:12:10 +02:00
Jakub Jelinek
91b3540549 Fix up RHEL/ELN Fortran patches. 2022-07-04 15:37:15 +02:00
Jakub Jelinek
c75889d28c 12.1.1-3 2022-06-30 10:37:48 +02:00
Jakub Jelinek
245908f188 12.1.1-3 2022-06-30 10:33:33 +02:00
Jakub Jelinek
b2315f360e 12.1.1-2 2022-06-28 21:07:05 +02:00
Jakub Jelinek
200ab99d30 12.1.1-2 2022-06-28 19:03:14 +02:00
Jakub Jelinek
4910c83f42 12.1.1-2 2022-06-28 18:39:38 +02:00
Jakub Jelinek
aa03effdcf 12.1.1-1 2022-05-07 08:51:49 +02:00
Stephen Gallagher
a1104fdc08
Fix annobin conditional to build for ELN
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2022-05-05 15:41:03 -04:00
Jakub Jelinek
d7e191c777 Merge #22 Import gcc-fedora-flags test from redhat-rpm-config 2022-05-03 07:54:53 +00:00
Jakub Jelinek
917a939e05 12.0.1-0.17 2022-04-29 16:53:22 +02:00
Tom Stellard
d4fb9f8ed8 Import gcc-fedora-flags test from redhat-rpm-config
Once this is committed, the version in redhat-rpm-config will be removed
and redhat-rpm-config will use this test.
2022-04-19 12:01:29 -07:00
Jakub Jelinek
7198391f75 12.0.1-0.16 2022-04-13 17:52:21 +02:00
Jakub Jelinek
665f9ff9cb gcc-12.0.1-0.15 2022-04-11 19:34:37 +02:00
Jakub Jelinek
fbdc8be2d5 12.0.1-0.14 2022-04-03 13:10:43 +02:00
Jakub Jelinek
54dca9e09d 12.0.1-0.14 2022-04-03 13:09:18 +02:00
Jakub Jelinek
d73ad6153f 12.0.1-0.14 2022-04-01 16:24:00 +02:00
Jakub Jelinek
fc9926357a 12.0.1-0.13 2022-04-01 15:19:26 +02:00
Jakub Jelinek
967fa9b141 12.0.1-0.12 2022-03-08 17:59:34 +01:00
Jakub Jelinek
ef299b80e9 12.0.1-0.11 2022-03-08 13:18:22 +01:00
Jakub Jelinek
b2fa1409e0 12.0.1-0.11 2022-03-08 12:46:44 +01:00
Jakub Jelinek
67cc6756a1 12.0.1-0.10 2022-03-06 10:34:46 +01:00
Jakub Jelinek
b0dddd2d05 12.0.1-0.9 2022-02-22 11:56:00 +01:00
Jakub Jelinek
9743a6a9b0 12.0.1-0.8 2022-02-14 19:38:05 +01:00
Jakub Jelinek
f58fc62400 12.0.1-0.7 2022-02-12 19:36:08 +01:00
Jakub Jelinek
62d2a570da 12.0.1-0.6 2022-02-05 11:37:58 +01:00
Jakub Jelinek
3628c9a446 12.0.1-0.5 2022-02-02 22:30:59 +01:00
Jakub Jelinek
398138b5f3 12.0.1-0.4 2022-01-29 11:05:44 +01:00
Jakub Jelinek
66ac9cc1b6 Fix gitrev. 2022-01-25 16:15:16 +01:00
Jakub Jelinek
f5c21772fc 12.0.1-0.3 2022-01-25 15:24:01 +01:00
Jakub Jelinek
7e47121cf7 12.0.1-0.3 2022-01-25 14:26:06 +01:00
Jakub Jelinek
0bdfca38c6 Merge branch 'rawhide' of ssh://pkgs.fedoraproject.org/rpms/gcc into rawhide 2022-01-25 14:04:28 +01:00
Jakub Jelinek
067e0a8c2e 12.0.1-0.3 2022-01-25 14:02:53 +01:00
Fedora Release Engineering
b8dc449a65 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-20 03:59:43 +00:00
Jakub Jelinek
dc6e17c8c2 Fix up gcc12-fortran-fdec-promotion.patch patch. 2022-01-19 17:00:04 +01:00
Jakub Jelinek
b2295576ca 12.0.0-0.2 2022-01-18 21:54:19 +01:00
Jakub Jelinek
1d6884964d 12.0.1-0.1.1 2022-01-18 14:52:08 +01:00
Jakub Jelinek
595f09c493 12.0.1-0.1 2022-01-18 14:22:46 +01:00
Jakub Jelinek
dca274fd43 12.0.0-0.5.1 2022-01-15 00:19:21 +01:00
Jakub Jelinek
804d4ab44b 12.0.0-0.5 2022-01-15 00:15:31 +01:00
Jakub Jelinek
b84a98262a 12.0.0-0.4 2022-01-12 19:22:01 +01:00
Jakub Jelinek
cdf92292af 12.0.0-0.3 2022-01-08 12:35:44 +01:00
Jakub Jelinek
671fc7ba16 11.2.1-7 2021-12-03 17:10:08 +01:00
Jakub Jelinek
80be3f02ea 11.2.1-6 2021-10-19 17:53:26 +02:00
Jakub Jelinek
3659d992cd 11.2.1-5 2021-10-18 19:45:26 +02:00
Jakub Jelinek
3b91dbe507 Add mwaitintrin.h. 2021-10-14 10:37:56 +02:00
Jakub Jelinek
27b6bb48cf 11.2.1-4 2021-10-12 12:35:17 +02:00
Jakub Jelinek
68a50d6964 11.2.1-4 2021-10-12 12:33:59 +02:00
Jakub Jelinek
892f8cf6be 11.2.1-3 2021-08-23 12:35:29 +02:00
Jakub Jelinek
ba0a2baa86 11.2.1-2 2021-07-30 15:40:09 +02:00
Jakub Jelinek
878cf31641 11.2.1-2 2021-07-30 14:56:24 +02:00
Jakub Jelinek
3839c55548 11.2.1-1 2021-07-28 11:23:09 +02:00
Jakub Jelinek
307b042329 - enable LTO profiledbootstrap on x86_64, i?86, ppc64le and s390x 2021-07-27 14:30:00 +02:00
Jakub Jelinek
517529187f 11.1.1-7 2021-07-26 20:08:16 +02:00
Jakub Jelinek
012193ab2c 11.1.1-7 2021-07-26 19:58:01 +02:00
Fedora Release Engineering
b492bb6d0d - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-21 23:51:54 +00:00
Václav Kadlčík
c07adb54e0 Import RHEL's regression test for #1815504 2021-07-09 15:36:20 +02:00
Václav Kadlčík
196b71d183 Import RHEL's regression test for #1852781 2021-07-09 15:36:20 +02:00
Václav Kadlčík
a191d6bffd Import RHEL's regression test for #1853900 2021-07-09 15:36:20 +02:00
Václav Kadlčík
698535f4a2 Import RHEL's regression test for #1878841 2021-07-09 15:36:20 +02:00
Václav Kadlčík
dc53defcf3 Import RHEL's regression test for #1893340 2021-07-09 15:36:20 +02:00
Václav Kadlčík
63133c7e37 Import RHEL's regression test for #1896093 2021-07-09 15:36:20 +02:00
Václav Kadlčík
3507c942bd Import RHEL's regression test for #1927579 2021-07-09 15:36:20 +02:00
Václav Kadlčík
4b84269ff6 Import RHEL's regression test for #1939638 2021-07-09 15:36:20 +02:00
Václav Kadlčík
ceebf1784f Import RHEL's regression test for #1960701 2021-07-09 15:36:20 +02:00
Václav Kadlčík
c603d84348 Import RHEL's regression test for #1965951 2021-07-09 15:36:20 +02:00
Václav Kadlčík
c19375a4b9 Replace a deprecated method in executing CI 2021-07-09 15:36:20 +02:00
Jakub Jelinek
e931d8bd48 11.1.1-6 2021-06-23 15:36:05 +02:00
Jakub Jelinek
db78d97ae5 11.1.1-5 2021-06-17 11:02:32 +02:00
Jakub Jelinek
063f63dafb 11.1.1-5 2021-06-17 10:57:18 +02:00
Florian Weimer
a2a6a491f5 NVR bump to enable rebuild in side tag 2021-06-14 12:39:20 +02:00
Jakub Jelinek
604b6369b8 11.1.1-3 2021-05-31 17:27:31 +02:00
Jakub Jelinek
a31fadcc09 11.1.1-2 2021-05-12 17:15:45 +02:00
Jakub Jelinek
f172832272 11.1.1-2 2021-05-12 15:56:07 +02:00
Martin Cermak
0177c06558 Make kernel rebuild CI gating test mandatory.
This makes baseos-qe.koji-build.scratch-build.validation a mandatory
CI gating test.  This test was requested by kernel folks and is now
in place for binutils, glibc and annobin too.
2021-04-28 14:26:47 +02:00
Jakub Jelinek
9173737427 11.1.1-1 2021-04-28 14:04:34 +02:00
Jakub Jelinek
7b59d695b5 11.0.1-0.7 2021-04-23 20:26:51 +02:00
Jakub Jelinek
72c4542d15 11.0.1-0.6 2021-04-22 19:16:42 +02:00
Jakub Jelinek
93f9e68547 11.0.1-0.6 2021-04-22 19:15:37 +02:00
Jakub Jelinek
541204d67b 11.0.1-0.5 2021-04-18 16:41:25 +02:00
Jakub Jelinek
8ad393378c Change >= 9 to == 9 for now. 2021-04-08 14:17:18 +02:00
Jakub Jelinek
c38b60d6f8 Tweak defaults for %%{rhel} >= 9. 2021-04-08 14:10:22 +02:00
Jakub Jelinek
f817c30ff8 11.0.1-0.4 2021-04-05 15:59:27 +02:00
Jakub Jelinek
cee86e0c23 11.0.1-0.4 2021-04-05 15:52:58 +02:00
Jakub Jelinek
f8c38830d9 11.0.1-0.3.fc34 2021-03-24 11:50:05 +01:00
Jakub Jelinek
eb3f14c713 11.0.1-0.2 2021-03-19 18:42:46 +01:00
Jakub Jelinek
8b3a7b2201 11.0.1-0.2 2021-03-19 15:54:46 +01:00
Jakub Jelinek
e25bc11637 11.0.1-0.2 2021-03-19 15:52:54 +01:00
Jakub Jelinek
c3f10cec8a 11.0.1-0.1 2021-03-07 10:18:50 +01:00
Jakub Jelinek
7ddd78661a 11.0.0-0.20 2021-02-25 10:41:54 +01:00
Jakub Jelinek
59cfaa7b4d Fix up help descriptions. 2021-02-12 16:58:07 +01:00
Jakub Jelinek
9b91a54819 11.0.0-0.19 2021-02-11 22:29:33 +01:00
Jakub Jelinek
7cfa254bd7 11.0.0-0.19 2021-02-10 23:12:13 +01:00
Jakub Jelinek
c8c738d102 11.0.0-0.19 2021-02-10 20:11:45 +01:00
Jakub Jelinek
89aaf2fcca 10.2.1-10 2021-01-31 12:16:46 +01:00
Jakub Jelinek
c7b83880f7 Add RHEL Fortran patchset. 2021-01-31 12:15:51 +01:00
Jakub Jelinek
931429764e 11.0.0-0.18 2021-01-30 15:22:11 +01:00
Fedora Release Engineering
9087b59fd4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-26 06:25:27 +00:00
Jakub Jelinek
2a97a4485a 11.0.0-0.17 2021-01-23 10:08:25 +01:00
Jakub Jelinek
b08544362e 11.0.0-0.16 2021-01-20 17:54:51 +01:00
Jakub Jelinek
6e2000ccdc 11.0.0-0.15 2021-01-19 14:36:34 +01:00
Jakub Jelinek
983aa76b9b 11.0.0-0.15 2021-01-19 14:28:03 +01:00
Jakub Jelinek
dd22b2a0a2 11.0.0-0.14 2021-01-16 12:34:08 +01:00
Jakub Jelinek
f49280a03b 11.0.0-0.14 2021-01-16 11:31:41 +01:00
Jakub Jelinek
93487d62ed 11.0.0-0.13 2021-01-13 16:29:47 +01:00
Jakub Jelinek
ac8f498836 11.0.0-0.12 2021-01-09 12:42:33 +01:00
Jakub Jelinek
4a41cd799a 11.0.0-0.12 2021-01-09 11:31:57 +01:00
Martin Cermak
47dcf480fc CI gating: Switch to FMF format, include a beakerlib based smoke test coming from RHEL. 2021-01-04 18:22:49 +01:00
Jakub Jelinek
23e00e261f 11.0.0-0.11 2020-12-23 14:46:14 +01:00
Jakub Jelinek
9f8a6fd894 11.0.0-0.10 2020-12-17 19:33:32 +01:00
Jakub Jelinek
8c7fac2bb2 11.0.0-0.10 2020-12-17 19:17:07 +01:00
Jakub Jelinek
d92ecedc14 11.0.0-0.9 2020-12-17 16:25:08 +01:00
Jakub Jelinek
8372e104d7 11.0.0-0.8 2020-12-16 17:29:03 +01:00
Jakub Jelinek
2dca06326f 11.0.0-0.8 2020-12-16 17:28:00 +01:00
Jakub Jelinek
f285645769 11.0.0-0.8 2020-12-16 17:24:23 +01:00
Jakub Jelinek
42f8421576 11.0.0-0.7 2020-12-04 21:38:24 +01:00
Jakub Jelinek
230cd6b217 11.0.0-0.7 2020-12-04 19:28:55 +01:00
Jakub Jelinek
94687bec15 10.2.1-9 2020-11-25 13:27:09 +01:00
Jakub Jelinek
de14d872a4 10.2.1-8 2020-11-12 11:29:08 +01:00
Jakub Jelinek
a067db068a 10.2.1-7 2020-11-02 13:32:00 +01:00
36 changed files with 2140 additions and 1414 deletions

1
.fmf/version Normal file
View file

@ -0,0 +1 @@
1

53
.gitignore vendored
View file

@ -1,21 +1,32 @@
/gcc-10.0.1-20200118.tar.xz
/newlib-cygwin-50e2a63b04bdd018484605fbb954fd1bd5147fa0.tar.xz
/nvptx-tools-5f6f343a302d620b0868edab376c00b15741e39e.tar.xz
/gcc-10.0.1-20200121.tar.xz
/gcc-10.0.1-20200123.tar.xz
/gcc-10.0.1-20200126.tar.xz
/gcc-10.0.1-20200130.tar.xz
/gcc-10.0.1-20200216.tar.xz
/gcc-10.0.1-20200311.tar.xz
/gcc-10.0.1-20200325.tar.xz
/gcc-10.0.1-20200328.tar.xz
/gcc-10.0.1-20200420.tar.xz
/gcc-10.0.1-20200501.tar.xz
/gcc-10.1.1-20200507.tar.xz
/gcc-10.1.1-20200618.tar.xz
/gcc-10.2.1-20200723.tar.xz
/gcc-10.2.1-20200804.tar.xz
/gcc-10.2.1-20200826.tar.xz
/gcc-10.2.1-20200916.tar.xz
/gcc-10.2.1-20201005.tar.xz
/gcc-10.2.1-20201016.tar.xz
/isl-0.24.tar.bz2
/nvptx-tools-87ce9dc5999e5fca2e1d3478a30888d9864c9804.tar.xz
/newlib-cygwin-2e4db338ac125579d555aeee516e48588a628a16.tar.xz
/gcc-15.0.1-20250201.tar.xz
/gcc-15.0.1-20250204.tar.xz
/gcc-15.0.1-20250225.tar.xz
/gcc-15.0.1-20250301.tar.xz
/gcc-15.0.1-20250313.tar.xz
/gcc-15.0.1-20250329.tar.xz
/gcc-15.0.1-20250410.tar.xz
/newlib-cygwin-d35cc82b5ec15bb8a5fe0fe11e183d1887992e99.tar.xz
/gcc-15.0.1-20250417.tar.xz
/gcc-15.0.1-20250418.tar.xz
/gcc-15.1.1-20250425.tar.xz
/gcc-15.1.1-20250521.tar.xz
/gcc-15.1.1-20250707.tar.xz
/gcc-15.1.1-20250718.tar.xz
/gcc-15.1.1-20250719.tar.xz
/gcc-15.2.1-20250808.tar.xz
/nvptx-tools-a0c1fff6534a4df9fb17937c3c4a4b1071212029.tar.xz
/gcc-15.2.1-20250924.tar.xz
/gcc-15.2.1-20251022.tar.xz
/gcc-15.2.1-20251111.tar.xz
/gcc-15.2.1-20251211.tar.xz
/gcc-16.0.0-20251218.tar.xz
/gcc-16.0.0-20251220.tar.xz
/gcc-16.0.0-20260103.tar.xz
/gcc-16.0.0-20260110.tar.xz
/gcc-16.0.0-20260112.tar.xz
/gcc-16.0.1-20260112.tar.xz
/gcc-16.0.1-20260113.tar.xz
/gcc-16.0.1-20260115.tar.xz

16
gating.yaml Normal file
View file

@ -0,0 +1,16 @@
--- !Policy
product_versions:
- fedora-*
decision_context: bodhi_update_push_stable
subject_type: koji_build
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
- !PassingTestCaseRule {test_case_name: baseos-qe.koji-build.scratch-build.validation}
--- !Policy
product_versions:
- rhel-9
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1-gating.functional}
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1-gating-p9.functional}
- !PassingTestCaseRule {test_case_name: baseos-qe.koji-build.scratch-build.validation}

1872
gcc.spec

File diff suppressed because it is too large Load diff

View file

@ -1,27 +0,0 @@
2017-02-25 Jakub Jelinek <jakub@redhat.com>
* configure.ac: When adding -Wno-format, also add -Wno-format-security.
* configure: Regenerated.
--- gcc/configure.ac.jj 2017-02-13 12:20:53.000000000 +0100
+++ gcc/configure.ac 2017-02-25 12:42:32.859175403 +0100
@@ -480,7 +480,7 @@ AC_ARG_ENABLE(build-format-warnings,
AS_HELP_STRING([--disable-build-format-warnings],[don't use -Wformat while building GCC]),
[],[enable_build_format_warnings=yes])
AS_IF([test $enable_build_format_warnings = no],
- [wf_opt=-Wno-format],[wf_opt=])
+ [wf_opt="-Wno-format -Wno-format-security"],[wf_opt=])
ACX_PROG_CXX_WARNING_OPTS(
m4_quote(m4_do([-W -Wall -Wno-narrowing -Wwrite-strings ],
[-Wcast-qual -Wno-error=format-diag $wf_opt])),
--- gcc/configure.jj 2017-02-13 12:20:52.000000000 +0100
+++ gcc/configure 2017-02-25 12:42:50.041946391 +0100
@@ -6647,7 +6647,7 @@ else
fi
if test $enable_build_format_warnings = no; then :
- wf_opt=-Wno-format
+ wf_opt="-Wno-format -Wno-format-security"
else
wf_opt=
fi

View file

@ -1,122 +0,0 @@
2019-01-17 Jakub Jelinek <jakub@redhat.com>
* gcc.c (offload_targets_default): New variable.
(process_command): Set it if -foffload is defaulted.
(driver::maybe_putenv_OFFLOAD_TARGETS): Add OFFLOAD_TARGET_DEFAULT=1
into environment if -foffload has been defaulted.
* lto-wrapper.c (OFFLOAD_TARGET_DEFAULT_ENV): Define.
(compile_offload_image): If OFFLOAD_TARGET_DEFAULT
is in the environment, don't fail if corresponding mkoffload
can't be found.
(compile_images_for_offload_targets): Likewise. Free and clear
offload_names if no valid offload is found.
libgomp/
* target.c (gomp_load_plugin_for_device): If a plugin can't be
dlopened, assume it has no devices silently.
--- gcc/gcc.c.jj 2017-01-17 10:28:40.000000000 +0100
+++ gcc/gcc.c 2017-01-20 16:26:29.649962902 +0100
@@ -290,6 +290,10 @@ static const char *spec_host_machine = D
static char *offload_targets = NULL;
+/* Set to true if -foffload has not been used and offload_targets
+ is set to the configured in default. */
+static bool offload_targets_default;
+
/* Nonzero if cross-compiling.
When -b is used, the value comes from the `specs' file. */
@@ -4457,7 +4461,10 @@ process_command (unsigned int decoded_op
/* If the user didn't specify any, default to all configured offload
targets. */
if (ENABLE_OFFLOADING && offload_targets == NULL)
- handle_foffload_option (OFFLOAD_TARGETS);
+ {
+ handle_foffload_option (OFFLOAD_TARGETS);
+ offload_targets_default = true;
+ }
if (output_file
&& strcmp (output_file, "-") != 0
@@ -7693,6 +7700,8 @@ driver::maybe_putenv_OFFLOAD_TARGETS ()
obstack_grow (&collect_obstack, offload_targets,
strlen (offload_targets) + 1);
xputenv (XOBFINISH (&collect_obstack, char *));
+ if (offload_targets_default)
+ xputenv ("OFFLOAD_TARGET_DEFAULT=1");
}
free (offload_targets);
--- gcc/lto-wrapper.c.jj 2017-01-01 12:45:34.000000000 +0100
+++ gcc/lto-wrapper.c 2017-01-20 16:34:18.294016997 +0100
@@ -52,6 +52,7 @@ along with GCC; see the file COPYING3.
/* Environment variable, used for passing the names of offload targets from GCC
driver to lto-wrapper. */
#define OFFLOAD_TARGET_NAMES_ENV "OFFLOAD_TARGET_NAMES"
+#define OFFLOAD_TARGET_DEFAULT_ENV "OFFLOAD_TARGET_DEFAULT"
enum lto_mode_d {
LTO_MODE_NONE, /* Not doing LTO. */
@@ -822,6 +823,12 @@ compile_offload_image (const char *targe
break;
}
+ if (!compiler && getenv (OFFLOAD_TARGET_DEFAULT_ENV))
+ {
+ free_array_of_ptrs ((void **) paths, n_paths);
+ return NULL;
+ }
+
if (!compiler)
fatal_error (input_location,
"could not find %s in %s (consider using %<-B%>)",
@@ -885,6 +892,7 @@ compile_images_for_offload_targets (unsi
unsigned num_targets = parse_env_var (target_names, &names, NULL);
int next_name_entry = 0;
+ bool hsa_seen = false;
const char *compiler_path = getenv ("COMPILER_PATH");
if (!compiler_path)
goto out;
@@ -897,18 +905,26 @@ compile_images_for_offload_targets (unsi
/* HSA does not use LTO-like streaming and a different compiler, skip
it. */
if (strcmp (names[i], "hsa") == 0)
- continue;
+ {
+ hsa_seen = true;
+ continue;
+ }
offload_names[next_name_entry]
= compile_offload_image (names[i], compiler_path, in_argc, in_argv,
compiler_opts, compiler_opt_count,
linker_opts, linker_opt_count);
if (!offload_names[next_name_entry])
- fatal_error (input_location,
- "problem with building target image for %s", names[i]);
+ continue;
next_name_entry++;
}
+ if (next_name_entry == 0 && !hsa_seen)
+ {
+ free (offload_names);
+ offload_names = NULL;
+ }
+
out:
free_array_of_ptrs ((void **) names, num_targets);
}
--- libgomp/target.c.jj 2017-01-01 12:45:52.000000000 +0100
+++ libgomp/target.c 2017-01-20 20:12:13.756710875 +0100
@@ -2356,7 +2356,7 @@ gomp_load_plugin_for_device (struct gomp
void *plugin_handle = dlopen (plugin_name, RTLD_LAZY);
if (!plugin_handle)
- goto dl_fail;
+ return 0;
/* Check if all required functions are available in the plugin and store
their handlers. None of the symbols can legitimately be NULL,

View file

@ -1,11 +0,0 @@
--- libgomp/configure.tgt.jj 2008-01-10 20:53:48.000000000 +0100
+++ libgomp/configure.tgt 2008-03-27 12:44:51.000000000 +0100
@@ -67,7 +67,7 @@ if test $enable_linux_futex = yes; then
;;
*)
if test -z "$with_arch"; then
- XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}"
+ XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic"
fi
esac
;;

View file

@ -1,236 +0,0 @@
2020-07-30 Richard Biener <rguenther@suse.de>
PR debug/96383
* langhooks-def.h (lhd_finalize_early_debug): Declare.
(LANG_HOOKS_FINALIZE_EARLY_DEBUG): Define.
(LANG_HOOKS_INITIALIZER): Amend.
* langhooks.c: Include cgraph.h and debug.h.
(lhd_finalize_early_debug): Default implementation from
former code in finalize_compilation_unit.
* langhooks.h (lang_hooks::finalize_early_debug): Add.
* cgraphunit.c (symbol_table::finalize_compilation_unit):
Call the finalize_early_debug langhook.
gcc/c-family/
* c-common.h (c_common_finalize_early_debug): Declare.
* c-common.c: Include debug.h.
(c_common_finalize_early_debug): finalize_early_debug langhook
implementation generating debug for extern declarations.
gcc/c/
* c-objc-common.h (LANG_HOOKS_FINALIZE_EARLY_DEBUG):
Define to c_common_finalize_early_debug.
gcc/cp/
* cp-objcp-common.h (LANG_HOOKS_FINALIZE_EARLY_DEBUG):
Define to c_common_finalize_early_debug.
gcc/testsuite/
* gcc.dg/debug/dwarf2/pr96383-1.c: New testcase.
* gcc.dg/debug/dwarf2/pr96383-2.c: Likewise.
libstdc++-v3/
* testsuite/20_util/assume_aligned/3.cc: Use -g0.
--- gcc/c-family/c-common.c
+++ gcc/c-family/c-common.c
@@ -50,6 +50,7 @@ along with GCC; see the file COPYING3. If not see
#include "spellcheck.h"
#include "c-spellcheck.h"
#include "selftest.h"
+#include "debug.h"
cpp_reader *parse_in; /* Declared in c-pragma.h. */
@@ -9086,4 +9087,20 @@ braced_lists_to_strings (tree type, tree ctor)
return braced_lists_to_strings (type, ctor, false);
}
+
+/* Emit debug for functions before finalizing early debug. */
+
+void
+c_common_finalize_early_debug (void)
+{
+ /* Emit early debug for reachable functions, and by consequence,
+ locally scoped symbols. Also emit debug for extern declared
+ functions that are still reachable at this point. */
+ struct cgraph_node *cnode;
+ FOR_EACH_FUNCTION (cnode)
+ if (!cnode->alias && !cnode->thunk.thunk_p
+ && (cnode->has_gimple_body_p () || !DECL_IS_BUILTIN (cnode->decl)))
+ (*debug_hooks->early_global_decl) (cnode->decl);
+}
+
#include "gt-c-family-c-common.h"
--- gcc/c-family/c-common.h
+++ gcc/c-family/c-common.h
@@ -885,6 +885,8 @@ extern bool bool_promoted_to_int_p (tree);
extern tree fold_for_warn (tree);
extern tree c_common_get_narrower (tree, int *);
extern bool get_attribute_operand (tree, unsigned HOST_WIDE_INT *);
+extern void c_common_finalize_early_debug (void);
+
#define c_sizeof(LOC, T) c_sizeof_or_alignof_type (LOC, T, true, false, 1)
#define c_alignof(LOC, T) c_sizeof_or_alignof_type (LOC, T, false, false, 1)
--- gcc/c/c-objc-common.h
+++ gcc/c/c-objc-common.h
@@ -65,6 +65,8 @@ along with GCC; see the file COPYING3. If not see
c_simulate_builtin_function_decl
#undef LANG_HOOKS_EMITS_BEGIN_STMT
#define LANG_HOOKS_EMITS_BEGIN_STMT true
+#undef LANG_HOOKS_FINALIZE_EARLY_DEBUG
+#define LANG_HOOKS_FINALIZE_EARLY_DEBUG c_common_finalize_early_debug
/* Attribute hooks. */
#undef LANG_HOOKS_COMMON_ATTRIBUTE_TABLE
--- gcc/cgraphunit.c
+++ gcc/cgraphunit.c
@@ -2998,11 +2998,9 @@ symbol_table::finalize_compilation_unit (void)
if (!seen_error ())
{
- /* Emit early debug for reachable functions, and by consequence,
- locally scoped symbols. */
- struct cgraph_node *cnode;
- FOR_EACH_FUNCTION_WITH_GIMPLE_BODY (cnode)
- (*debug_hooks->early_global_decl) (cnode->decl);
+ /* Give the frontends the chance to emit early debug based on
+ what is still reachable in the TU. */
+ (*lang_hooks.finalize_early_debug) ();
/* Clean up anything that needs cleaning up after initial debug
generation. */
--- gcc/cp/cp-objcp-common.h
+++ gcc/cp/cp-objcp-common.h
@@ -115,6 +115,8 @@ extern tree cxx_simulate_enum_decl (location_t, const char *,
#define LANG_HOOKS_BLOCK_MAY_FALLTHRU cxx_block_may_fallthru
#undef LANG_HOOKS_EMITS_BEGIN_STMT
#define LANG_HOOKS_EMITS_BEGIN_STMT true
+#undef LANG_HOOKS_FINALIZE_EARLY_DEBUG
+#define LANG_HOOKS_FINALIZE_EARLY_DEBUG c_common_finalize_early_debug
/* Attribute hooks. */
#undef LANG_HOOKS_COMMON_ATTRIBUTE_TABLE
--- gcc/langhooks-def.h
+++ gcc/langhooks-def.h
@@ -92,6 +92,7 @@ extern const char *lhd_get_substring_location (const substring_loc &,
location_t *out_loc);
extern int lhd_decl_dwarf_attribute (const_tree, int);
extern int lhd_type_dwarf_attribute (const_tree, int);
+extern void lhd_finalize_early_debug (void);
#define LANG_HOOKS_NAME "GNU unknown"
#define LANG_HOOKS_IDENTIFIER_SIZE sizeof (struct lang_identifier)
@@ -139,6 +140,7 @@ extern int lhd_type_dwarf_attribute (const_tree, int);
#define LANG_HOOKS_EMITS_BEGIN_STMT false
#define LANG_HOOKS_RUN_LANG_SELFTESTS lhd_do_nothing
#define LANG_HOOKS_GET_SUBSTRING_LOCATION lhd_get_substring_location
+#define LANG_HOOKS_FINALIZE_EARLY_DEBUG lhd_finalize_early_debug
/* Attribute hooks. */
#define LANG_HOOKS_ATTRIBUTE_TABLE NULL
@@ -364,7 +366,8 @@ extern void lhd_end_section (void);
LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS, \
LANG_HOOKS_EMITS_BEGIN_STMT, \
LANG_HOOKS_RUN_LANG_SELFTESTS, \
- LANG_HOOKS_GET_SUBSTRING_LOCATION \
+ LANG_HOOKS_GET_SUBSTRING_LOCATION, \
+ LANG_HOOKS_FINALIZE_EARLY_DEBUG \
}
#endif /* GCC_LANG_HOOKS_DEF_H */
--- gcc/langhooks.c
+++ gcc/langhooks.c
@@ -36,6 +36,8 @@ along with GCC; see the file COPYING3. If not see
#include "output.h"
#include "timevar.h"
#include "stor-layout.h"
+#include "cgraph.h"
+#include "debug.h"
/* Do nothing; in many cases the default hook. */
@@ -866,6 +868,18 @@ lhd_unit_size_without_reusable_padding (tree t)
return TYPE_SIZE_UNIT (t);
}
+/* Default implementation for the finalize_early_debug hook. */
+
+void
+lhd_finalize_early_debug (void)
+{
+ /* Emit early debug for reachable functions, and by consequence,
+ locally scoped symbols. */
+ struct cgraph_node *cnode;
+ FOR_EACH_FUNCTION_WITH_GIMPLE_BODY (cnode)
+ (*debug_hooks->early_global_decl) (cnode->decl);
+}
+
/* Returns true if the current lang_hooks represents the GNU C frontend. */
bool
--- gcc/langhooks.h
+++ gcc/langhooks.h
@@ -580,6 +580,9 @@ struct lang_hooks
const char *(*get_substring_location) (const substring_loc &,
location_t *out_loc);
+ /* Invoked before the early_finish debug hook is invoked. */
+ void (*finalize_early_debug) (void);
+
/* Whenever you add entries here, make sure you adjust langhooks-def.h
and langhooks.c accordingly. */
};
--- gcc/testsuite/gcc.dg/debug/dwarf2/pr96383-1.c
+++ gcc/testsuite/gcc.dg/debug/dwarf2/pr96383-1.c
@@ -0,0 +1,17 @@
+/* { dg-do compile } */
+/* { dg-options "-g -gdwarf -dA" } */
+
+extern void foo (int);
+extern void unusedbar (int);
+
+int main()
+{
+ foo (1);
+}
+
+/* We want subprogram DIEs for both foo and main and a DIE for
+ the formal parameter of foo. We do not want a DIE for
+ unusedbar. */
+/* { dg-final { scan-assembler-times "DW_TAG_subprogram" 4 } } */
+/* { dg-final { scan-assembler-times "DW_TAG_formal_parameter" 2 } } */
+/* { dg-final { scan-assembler-not "unusedbar" } } */
--- gcc/testsuite/gcc.dg/debug/dwarf2/pr96383-2.c
+++ gcc/testsuite/gcc.dg/debug/dwarf2/pr96383-2.c
@@ -0,0 +1,17 @@
+/* { dg-do compile } */
+/* { dg-options "-g -O2 -gdwarf -dA" } */
+
+extern void foo (int);
+extern void unusedbar (int);
+
+int main()
+{
+ foo (1);
+}
+
+/* We want subprogram DIEs for both foo and main and a DIE for
+ the formal parameter of foo. We do not want a DIE for
+ unusedbar. */
+/* { dg-final { scan-assembler-times "DW_TAG_subprogram" 4 } } */
+/* { dg-final { scan-assembler-times "DW_TAG_formal_parameter" 2 } } */
+/* { dg-final { scan-assembler-not "unusedbar" } } */
--- libstdc++-v3/testsuite/20_util/assume_aligned/3.cc
+++ libstdc++-v3/testsuite/20_util/assume_aligned/3.cc
@@ -15,7 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a -O2" }
+// { dg-options "-std=gnu++2a -O2 -g0" }
// { dg-do compile { target c++2a } }
// { dg-final { scan-assembler-not "undefined" } }

View file

@ -1,51 +0,0 @@
2020-09-09 Jakub Jelinek <jakub@redhat.com>
* config/arm/arm.c (arm_override_options_after_change_1): Add opts_set
argument, test opts_set->x_str_align_functions rather than
opts->x_str_align_functions.
(arm_override_options_after_change, arm_option_override_internal,
arm_set_current_function): Adjust callers.
--- gcc/config/arm/arm.c.jj 2020-09-09 09:19:42.911419411 +0200
+++ gcc/config/arm/arm.c 2020-09-09 09:28:02.392897384 +0200
@@ -3024,10 +3024,11 @@ static GTY(()) bool thumb_flipper;
static GTY(()) tree init_optimize;
static void
-arm_override_options_after_change_1 (struct gcc_options *opts)
+arm_override_options_after_change_1 (struct gcc_options *opts,
+ struct gcc_options *opts_set)
{
/* -falign-functions without argument: supply one. */
- if (opts->x_flag_align_functions && !opts->x_str_align_functions)
+ if (opts->x_flag_align_functions && !opts_set->x_str_align_functions)
opts->x_str_align_functions = TARGET_THUMB_P (opts->x_target_flags)
&& opts->x_optimize_size ? "2" : "4";
}
@@ -3037,7 +3038,7 @@ arm_override_options_after_change_1 (str
static void
arm_override_options_after_change (void)
{
- arm_override_options_after_change_1 (&global_options);
+ arm_override_options_after_change_1 (&global_options, &global_options_set);
}
/* Implement TARGET_OPTION_SAVE. */
@@ -3065,7 +3066,7 @@ static void
arm_option_override_internal (struct gcc_options *opts,
struct gcc_options *opts_set)
{
- arm_override_options_after_change_1 (opts);
+ arm_override_options_after_change_1 (opts, opts_set);
if (TARGET_INTERWORK && !bitmap_bit_p (arm_active_target.isa, isa_bit_thumb))
{
@@ -32335,7 +32336,7 @@ arm_set_current_function (tree fndecl)
save_restore_target_globals (new_tree);
- arm_override_options_after_change_1 (&global_options);
+ arm_override_options_after_change_1 (&global_options, &global_options_set);
}
/* Implement TARGET_OPTION_PRINT. */

View file

@ -1,111 +0,0 @@
2020-09-13 Jakub Jelinek <jakub@redhat.com>
* config/arm/arm.opt (arm_arch_specified, arm_cpu_specified,
arm_tune_specified): New TargetVariables.
* config/arm/arm.c (arm_configure_build_target): Comment out
opts_set argument name. Use opts->x_arm_*_specified instead
of opts_set->x_arm_*_string.
* common/config/arm/arm-common.c (arm_handle_option): New function.
(TARGET_HANDLE_OPTION): Redefine.
--- gcc/config/arm/arm.opt.jj 2020-09-12 13:36:27.619716335 +0200
+++ gcc/config/arm/arm.opt 2020-09-12 13:38:48.547661292 +0200
@@ -30,6 +30,15 @@ const char *x_arm_cpu_string
TargetSave
const char *x_arm_tune_string
+TargetVariable
+unsigned char arm_arch_specified = 0
+
+TargetVariable
+unsigned char arm_cpu_specified = 0
+
+TargetVariable
+unsigned char arm_tune_specified = 0
+
Enum
Name(tls_type) Type(enum arm_tls_type)
TLS dialect to use:
--- gcc/config/arm/arm.c.jj 2020-09-12 13:36:27.619716335 +0200
+++ gcc/config/arm/arm.c 2020-09-12 13:49:26.166363387 +0200
@@ -3181,7 +3181,7 @@ static sbitmap isa_quirkbits;
void
arm_configure_build_target (struct arm_build_target *target,
struct cl_target_option *opts,
- struct gcc_options *opts_set,
+ struct gcc_options */* opts_set */,
bool warn_compatible)
{
const cpu_option *arm_selected_tune = NULL;
@@ -3196,7 +3196,7 @@ arm_configure_build_target (struct arm_b
target->core_name = NULL;
target->arch_name = NULL;
- if (opts_set->x_arm_arch_string)
+ if (opts->x_arm_arch_specified)
{
arm_selected_arch = arm_parse_arch_option_name (all_architectures,
"-march",
@@ -3204,7 +3204,7 @@ arm_configure_build_target (struct arm_b
arch_opts = strchr (opts->x_arm_arch_string, '+');
}
- if (opts_set->x_arm_cpu_string)
+ if (opts->x_arm_cpu_specified)
{
arm_selected_cpu = arm_parse_cpu_option_name (all_cores, "-mcpu",
opts->x_arm_cpu_string);
@@ -3214,7 +3214,7 @@ arm_configure_build_target (struct arm_b
options for tuning. */
}
- if (opts_set->x_arm_tune_string)
+ if (opts->x_arm_tune_specified)
{
arm_selected_tune = arm_parse_cpu_option_name (all_cores, "-mtune",
opts->x_arm_tune_string);
--- gcc/common/config/arm/arm-common.c.jj 2020-07-28 15:39:09.705760394 +0200
+++ gcc/common/config/arm/arm-common.c 2020-09-12 13:50:09.021738456 +0200
@@ -1021,6 +1021,34 @@ arm_asm_auto_mfpu (int argc, const char
#undef ARM_CPU_NAME_LENGTH
+bool
+arm_handle_option (struct gcc_options *opts,
+ struct gcc_options *opts_set ATTRIBUTE_UNUSED,
+ const struct cl_decoded_option *decoded,
+ location_t loc ATTRIBUTE_UNUSED)
+{
+ size_t code = decoded->opt_index;
+ const char *arg = decoded->arg;
+ int val = decoded->value;
+
+ switch (code)
+ {
+ case OPT_march_:
+ opts->x_arm_arch_specified = true;
+ return true;
+
+ case OPT_mcpu_:
+ opts->x_arm_cpu_specified = true;
+ return true;
+
+ case OPT_mtune_:
+ opts->x_arm_tune_specified = true;
+ return true;
+
+ default:
+ return true;
+ }
+}
#undef TARGET_DEFAULT_TARGET_FLAGS
#define TARGET_DEFAULT_TARGET_FLAGS (TARGET_DEFAULT | MASK_SCHED_PROLOG)
@@ -1031,4 +1059,7 @@ arm_asm_auto_mfpu (int argc, const char
#undef TARGET_EXCEPT_UNWIND_INFO
#define TARGET_EXCEPT_UNWIND_INFO arm_except_unwind_info
+#undef TARGET_HANDLE_OPTION
+#define TARGET_HANDLE_OPTION arm_handle_option
+
struct gcc_targetm_common targetm_common = TARGETM_COMMON_INITIALIZER;

View file

@ -1,64 +0,0 @@
2020-09-07 Jakub Jelinek <jakub@redhat.com>
PR target/96939
* config/arm/arm.c (arm_override_options_after_change): Don't call
arm_configure_build_target here.
(arm_set_current_function): Call arm_override_options_after_change_1
at the end.
* gcc.target/arm/lto/pr96939_0.c: New test.
* gcc.target/arm/lto/pr96939_1.c: New file.
--- gcc/config/arm/arm.c.jj 2020-07-30 15:04:38.136293101 +0200
+++ gcc/config/arm/arm.c 2020-09-07 10:43:54.809561852 +0200
@@ -3037,10 +3037,6 @@ arm_override_options_after_change_1 (str
static void
arm_override_options_after_change (void)
{
- arm_configure_build_target (&arm_active_target,
- TREE_TARGET_OPTION (target_option_default_node),
- &global_options_set, false);
-
arm_override_options_after_change_1 (&global_options);
}
@@ -32338,6 +32334,8 @@ arm_set_current_function (tree fndecl)
cl_target_option_restore (&global_options, TREE_TARGET_OPTION (new_tree));
save_restore_target_globals (new_tree);
+
+ arm_override_options_after_change_1 (&global_options);
}
/* Implement TARGET_OPTION_PRINT. */
--- gcc/testsuite/gcc.target/arm/lto/pr96939_0.c.jj 2020-09-07 11:26:45.909937609 +0200
+++ gcc/testsuite/gcc.target/arm/lto/pr96939_0.c 2020-09-07 11:29:18.722706535 +0200
@@ -0,0 +1,15 @@
+/* PR target/96939 */
+/* { dg-lto-do link } */
+/* { dg-require-effective-target arm_arch_v8a_ok } */
+/* { dg-lto-options { { -flto -O2 } } } */
+
+extern unsigned crc (unsigned, const void *);
+typedef unsigned (*fnptr) (unsigned, const void *);
+volatile fnptr fn;
+
+int
+main ()
+{
+ fn = crc;
+ return 0;
+}
--- gcc/testsuite/gcc.target/arm/lto/pr96939_1.c.jj 2020-09-07 11:26:49.365887153 +0200
+++ gcc/testsuite/gcc.target/arm/lto/pr96939_1.c 2020-09-07 11:25:13.885281180 +0200
@@ -0,0 +1,10 @@
+/* PR target/96939 */
+/* { dg-options "-march=armv8-a+crc" } */
+
+#include <arm_acle.h>
+
+unsigned
+crc (unsigned x, const void *y)
+{
+ return __crc32cw (x, *(unsigned *) y);
+}

View file

@ -1,30 +0,0 @@
crt files and statically linked libgcc objects cause false positives
in annobin coverage, so we add the assembler flag to generate notes
for them.
The patch also adds notes to libgcc_s.so, but this is harmless because
these notes only confer that there is no other annobin markup.
2018-07-25 Florian Weimer <fweimer@redhat.com>
* Makefile.in (LIBGCC2_CFLAGS, CRTSTUFF_CFLAGS): Add
-Wa,--generate-missing-build-notes=yes.
--- libgcc/Makefile.in 2018-01-13 13:05:41.000000000 +0100
+++ libgcc/Makefile.in 2018-07-25 13:15:02.036226940 +0200
@@ -246,6 +246,7 @@ LIBGCC2_DEBUG_CFLAGS = -g
LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(HOST_LIBGCC2_CFLAGS) \
$(LIBGCC2_DEBUG_CFLAGS) -DIN_LIBGCC2 \
-fbuilding-libgcc -fno-stack-protector \
+ -Wa,--generate-missing-build-notes=yes \
$(INHIBIT_LIBC_CFLAGS)
# Additional options to use when compiling libgcc2.a.
@@ -301,6 +302,7 @@ CRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(IN
$(NO_PIE_CFLAGS) -finhibit-size-directive -fno-inline -fno-exceptions \
-fno-zero-initialized-in-bss -fno-toplevel-reorder -fno-tree-vectorize \
-fbuilding-libgcc -fno-stack-protector $(FORCE_EXPLICIT_EH_REGISTRY) \
+ -Wa,--generate-missing-build-notes=yes \
$(INHIBIT_LIBC_CFLAGS) $(USE_TM_CLONE_REGISTRY)
# Extra flags to use when compiling crt{begin,end}.o.

View file

@ -0,0 +1,66 @@
2022-01-07 Jakub Jelinek <jakub@redhat.com>
* Makefile.tpl (GOCFLAGS, GDCFLAGS): Filter out -Wformat-security.
* Makefile.in: Regenerated.
2017-02-25 Jakub Jelinek <jakub@redhat.com>
* configure.ac: When adding -Wno-format, also add -Wno-format-security.
* configure: Regenerated.
--- gcc/configure.ac.jj 2017-02-13 12:20:53.000000000 +0100
+++ gcc/configure.ac 2024-11-30 13:34:11.100296256 +0100
@@ -592,7 +592,7 @@ AC_ARG_ENABLE(build-format-warnings,
AS_HELP_STRING([--disable-build-format-warnings],[don't use -Wformat while building GCC]),
[],[enable_build_format_warnings=yes])
AS_IF([test $enable_build_format_warnings = no],
- [wf_opt=-Wno-format],[wf_opt=])
+ [wf_opt="-Wno-format -Wno-format-security"],[wf_opt=])
ACX_PROG_CXX_WARNING_OPTS(
m4_quote(m4_do([-W -Wall -Wno-error=narrowing -Wwrite-strings ],
[-Wcast-qual $wf_opt])),
--- gcc/configure.jj 2017-02-13 12:20:52.000000000 +0100
+++ gcc/configure 2017-02-25 12:42:50.041946391 +0100
@@ -7077,7 +7077,7 @@ else
fi
if test $enable_build_format_warnings = no; then :
- wf_opt=-Wno-format
+ wf_opt="-Wno-format -Wno-format-security"
else
wf_opt=
fi
--- Makefile.tpl.jj 2023-11-29 13:21:41.680292662 +0100
+++ Makefile.tpl 2024-11-30 13:35:29.303196246 +0100
@@ -450,10 +450,10 @@ LDFLAGS = @LDFLAGS@
LIBCFLAGS = $(CFLAGS)
CXXFLAGS = @CXXFLAGS@
LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
-GOCFLAGS = $(CFLAGS)
-A68FLAGS = @A68FLAGS@
-GDCFLAGS = @GDCFLAGS@
-GM2FLAGS = $(CFLAGS)
+GOCFLAGS = $(filter-out -Wformat-security,$(CFLAGS))
+A68FLAGS = $(filter-out -Wformat-security,@A68FLAGS@)
+GDCFLAGS = $(filter-out -Wformat-security,@GDCFLAGS@)
+GM2FLAGS = $(filter-out -Wformat-security,$(CFLAGS))
CRAB1_LIBS = @CRAB1_LIBS@
--- Makefile.in.jj 2023-11-29 13:21:41.691292507 +0100
+++ Makefile.in 2024-11-30 13:36:12.113594079 +0100
@@ -447,10 +447,10 @@ LDFLAGS = @LDFLAGS@
LIBCFLAGS = $(CFLAGS)
CXXFLAGS = @CXXFLAGS@
LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
-GOCFLAGS = $(CFLAGS)
-A68FLAGS = @A68FLAGS@
-GDCFLAGS = @GDCFLAGS@
-GM2FLAGS = $(CFLAGS)
+GOCFLAGS = $(filter-out -Wformat-security,$(CFLAGS))
+A68FLAGS = $(filter-out -Wformat-security,@A68FLAGS@)
+GDCFLAGS = $(filter-out -Wformat-security,@GDCFLAGS@)
+GM2FLAGS = $(filter-out -Wformat-security,$(CFLAGS))
CRAB1_LIBS = @CRAB1_LIBS@

View file

@ -0,0 +1,215 @@
From 23b1fcb104c666429451ffaf936f8da5fcd3d43a Mon Sep 17 00:00:00 2001
From: Mark Eggleston <markeggleston@gcc.gnu.org>
Date: Fri, 22 Jan 2021 12:29:47 +0000
Subject: [PATCH 01/10] Allow duplicate declarations.
Enabled by -fdec-duplicates and -fdec.
Some fixes by Jim MacArthur <jim.macarthur@codethink.co.uk>
Addition of -fdec-duplicates by Mark Eggleston <mark.eggleston@codethink.com>
---
gcc/fortran/lang.opt | 4 ++++
gcc/fortran/options.cc | 1 +
gcc/fortran/symbol.cc | 21 +++++++++++++++++--
.../gfortran.dg/duplicate_type_4.f90 | 13 ++++++++++++
.../gfortran.dg/duplicate_type_5.f90 | 13 ++++++++++++
.../gfortran.dg/duplicate_type_6.f90 | 13 ++++++++++++
.../gfortran.dg/duplicate_type_7.f90 | 13 ++++++++++++
.../gfortran.dg/duplicate_type_8.f90 | 12 +++++++++++
.../gfortran.dg/duplicate_type_9.f90 | 12 +++++++++++
9 files changed, 100 insertions(+), 2 deletions(-)
create mode 100644 gcc/testsuite/gfortran.dg/duplicate_type_4.f90
create mode 100644 gcc/testsuite/gfortran.dg/duplicate_type_5.f90
create mode 100644 gcc/testsuite/gfortran.dg/duplicate_type_6.f90
create mode 100644 gcc/testsuite/gfortran.dg/duplicate_type_7.f90
create mode 100644 gcc/testsuite/gfortran.dg/duplicate_type_8.f90
create mode 100644 gcc/testsuite/gfortran.dg/duplicate_type_9.f90
diff --git a/gcc/fortran/lang.opt b/gcc/fortran/lang.opt
index 2b1977c523b..52bd522051e 100644
--- a/gcc/fortran/lang.opt
+++ b/gcc/fortran/lang.opt
@@ -469,6 +469,10 @@ Fortran Var(flag_dec_char_conversions)
Enable the use of character literals in assignments and data statements
for non-character variables.
+fdec-duplicates
+Fortran Var(flag_dec_duplicates)
+Allow varibles to be duplicated in the type specification matches.
+
fdec-include
Fortran Var(flag_dec_include)
Enable legacy parsing of INCLUDE as statement.
diff --git a/gcc/fortran/options.cc b/gcc/fortran/options.cc
index 3a0b98bf1ec..f19ba87f8a0 100644
--- a/gcc/fortran/options.cc
+++ b/gcc/fortran/options.cc
@@ -77,6 +77,7 @@ set_dec_flags (int value)
SET_BITFLAG (flag_dec_format_defaults, value, value);
SET_BITFLAG (flag_dec_blank_format_item, value, value);
SET_BITFLAG (flag_dec_char_conversions, value, value);
+ SET_BITFLAG (flag_dec_duplicates, value, value);
}
/* Finalize DEC flags. */
diff --git a/gcc/fortran/symbol.cc b/gcc/fortran/symbol.cc
index 3b988d1be22..9843175cc2a 100644
--- a/gcc/fortran/symbol.cc
+++ b/gcc/fortran/symbol.cc
@@ -1995,6 +1995,8 @@ gfc_add_type (gfc_symbol *sym, gfc_typespec *ts, locus *where)
if (sym->attr.result && type == BT_UNKNOWN && sym->ns->proc_name)
type = sym->ns->proc_name->ts.type;
+ flavor = sym->attr.flavor;
+
if (type != BT_UNKNOWN && !(sym->attr.function && sym->attr.implicit_type)
&& !(gfc_state_stack->previous && gfc_state_stack->previous->previous
&& gfc_state_stack->previous->previous->state == COMP_SUBMODULE)
@@ -2007,6 +2009,23 @@ gfc_add_type (gfc_symbol *sym, gfc_typespec *ts, locus *where)
else if (sym->attr.function && sym->attr.result)
gfc_error ("Symbol %qs at %L already has basic type of %s",
sym->ns->proc_name->name, where, gfc_basic_typename (type));
+ else if (flag_dec_duplicates)
+ {
+ /* Ignore temporaries and class/procedure names */
+ if (sym->ts.type == BT_DERIVED || sym->ts.type == BT_CLASS
+ || sym->ts.type == BT_PROCEDURE)
+ return false;
+
+ if (gfc_compare_types (&sym->ts, ts)
+ && (flavor == FL_UNKNOWN || flavor == FL_VARIABLE
+ || flavor == FL_PROCEDURE))
+ {
+ return gfc_notify_std (GFC_STD_LEGACY,
+ "Symbol '%qs' at %L already has "
+ "basic type of %s", sym->name, where,
+ gfc_basic_typename (type));
+ }
+ }
else
gfc_error ("Symbol %qs at %L already has basic type of %s", sym->name,
where, gfc_basic_typename (type));
@@ -2020,8 +2039,6 @@ gfc_add_type (gfc_symbol *sym, gfc_typespec *ts, locus *where)
return false;
}
- flavor = sym->attr.flavor;
-
if (flavor == FL_PROGRAM || flavor == FL_BLOCK_DATA || flavor == FL_MODULE
|| flavor == FL_LABEL
|| (flavor == FL_PROCEDURE && sym->attr.subroutine)
diff --git a/gcc/testsuite/gfortran.dg/duplicate_type_4.f90 b/gcc/testsuite/gfortran.dg/duplicate_type_4.f90
new file mode 100644
index 00000000000..cdd29ea8846
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/duplicate_type_4.f90
@@ -0,0 +1,13 @@
+! { dg-do compile }
+! { dg-options "-std=f95" }
+
+! PR fortran/30239
+! Check for errors when a symbol gets declared a type twice, even if it
+! is the same.
+
+INTEGER FUNCTION foo ()
+ IMPLICIT NONE
+ INTEGER :: x
+ INTEGER :: x ! { dg-error "basic type of" }
+ x = 42
+END FUNCTION foo
diff --git a/gcc/testsuite/gfortran.dg/duplicate_type_5.f90 b/gcc/testsuite/gfortran.dg/duplicate_type_5.f90
new file mode 100644
index 00000000000..00f931809aa
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/duplicate_type_5.f90
@@ -0,0 +1,13 @@
+! { dg-do run }
+! { dg-options "-fdec" }
+!
+! Test case contributed by Mark Eggleston <mark.eggleston@codethink.com>
+!
+
+program test
+ implicit none
+ integer :: x
+ integer :: x
+ x = 42
+ if (x /= 42) stop 1
+end program test
diff --git a/gcc/testsuite/gfortran.dg/duplicate_type_6.f90 b/gcc/testsuite/gfortran.dg/duplicate_type_6.f90
new file mode 100644
index 00000000000..f0df27e323c
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/duplicate_type_6.f90
@@ -0,0 +1,13 @@
+! { dg-do run }
+! { dg-options "-std=legacy -fdec-duplicates" }
+!
+! Test case contributed by Mark Eggleston <mark.eggleston@codethink.com>
+!
+
+program test
+ implicit none
+ integer :: x
+ integer :: x
+ x = 42
+ if (x /= 42) stop 1
+end program test
diff --git a/gcc/testsuite/gfortran.dg/duplicate_type_7.f90 b/gcc/testsuite/gfortran.dg/duplicate_type_7.f90
new file mode 100644
index 00000000000..f32472ff586
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/duplicate_type_7.f90
@@ -0,0 +1,13 @@
+! { dg-do run }
+! { dg-options "-fdec-duplicates" }
+!
+! Test case contributed by Mark Eggleston <mark.eggleston@codethink.com>
+!
+
+program test
+ implicit none
+ integer :: x
+ integer :: x! { dg-warning "Legacy Extension" }
+ x = 42
+ if (x /= 42) stop 1
+end program test
diff --git a/gcc/testsuite/gfortran.dg/duplicate_type_8.f90 b/gcc/testsuite/gfortran.dg/duplicate_type_8.f90
new file mode 100644
index 00000000000..23c94add179
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/duplicate_type_8.f90
@@ -0,0 +1,12 @@
+! { dg-do compile }
+! { dg-options "-fdec -fno-dec-duplicates" }
+!
+! Test case contributed by Mark Eggleston <mark.eggleston@codethink.com>
+!
+
+integer function foo ()
+ implicit none
+ integer :: x
+ integer :: x ! { dg-error "basic type of" }
+ x = 42
+end function foo
diff --git a/gcc/testsuite/gfortran.dg/duplicate_type_9.f90 b/gcc/testsuite/gfortran.dg/duplicate_type_9.f90
new file mode 100644
index 00000000000..d5edee4d8ee
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/duplicate_type_9.f90
@@ -0,0 +1,12 @@
+! { dg-do compile }
+! { dg-options "-fdec-duplicates -fno-dec-duplicates" }
+!
+! Test case contributed by Mark Eggleston <mark.eggleston@codethink.com>
+!
+
+integer function foo ()
+ implicit none
+ integer :: x
+ integer :: x ! { dg-error "basic type of" }
+ x = 42
+end function foo
--
2.27.0

View file

@ -64,63 +64,119 @@
+ infodir="$(infodir)" \
GOCFLAGS="$(GOCFLAGS) $${flags}" \
GDCFLAGS="$(GDCFLAGS) $${flags}" \
CXXFLAGS="$(CXXFLAGS) $${flags}" \
--- libcpp/macro.c.jj 2019-01-09 13:01:21.420552123 +0100
+++ libcpp/macro.c 2019-01-11 18:18:17.736876285 +0100
@@ -3256,8 +3256,6 @@ static cpp_macro *
A68FLAGS="$(A68FLAGS) $${flags}" \
--- libcpp/macro.cc.jj 2019-01-09 13:01:21.420552123 +0100
+++ libcpp/macro.cc 2024-11-30 13:16:41.163056391 +0100
@@ -3680,8 +3680,6 @@ static cpp_macro *
create_iso_definition (cpp_reader *pfile)
{
bool following_paste_op = false;
- const char *paste_op_error_msg =
- N_("'##' cannot appear at either end of a macro expansion");
- N_("%<##%> cannot appear at either end of a macro expansion");
unsigned int num_extra_tokens = 0;
unsigned nparms = 0;
cpp_hashnode **params = NULL;
@@ -3382,7 +3380,9 @@ create_iso_definition (cpp_reader *pfile
@@ -3809,7 +3807,9 @@ create_iso_definition (cpp_reader *pfile
function-like macros, but not at the end. */
if (following_paste_op)
{
- cpp_error (pfile, CPP_DL_ERROR, paste_op_error_msg);
+ cpp_error (pfile, CPP_DL_ERROR,
+ "'##' cannot appear at either end of a macro "
+ "%<##%> cannot appear at either end of a macro "
+ "expansion");
goto out;
}
if (!vaopt_tracker.completed ())
@@ -3397,7 +3397,9 @@ create_iso_definition (cpp_reader *pfile
@@ -3824,7 +3824,9 @@ create_iso_definition (cpp_reader *pfile
function-like macros, but not at the beginning. */
if (macro->count == 1)
{
- cpp_error (pfile, CPP_DL_ERROR, paste_op_error_msg);
+ cpp_error (pfile, CPP_DL_ERROR,
+ "'##' cannot appear at either end of a macro "
+ "%<##%> cannot appear at either end of a macro "
+ "expansion");
goto out;
}
--- libcpp/expr.c.jj 2019-01-09 13:01:22.415535734 +0100
+++ libcpp/expr.c 2019-01-11 18:16:23.444726882 +0100
@@ -788,16 +788,17 @@ cpp_classify_number (cpp_reader *pfile,
--- libcpp/expr.cc.jj 2019-01-09 13:01:22.415535734 +0100
+++ libcpp/expr.cc 2024-11-30 13:14:52.468583689 +0100
@@ -874,50 +874,54 @@ cpp_classify_number (cpp_reader *pfile,
if ((result & CPP_N_WIDTH) == CPP_N_LARGE
&& CPP_OPTION (pfile, cpp_warn_long_long))
{
- const char *message = CPP_OPTION (pfile, cplusplus)
- const char *message = CPP_OPTION (pfile, cplusplus)
- ? N_("use of C++11 long long integer constant")
- : N_("use of C99 long long integer constant");
-
if (CPP_OPTION (pfile, c99))
cpp_warning_with_line (pfile, CPP_W_LONG_LONG, virtual_location,
- cpp_warning_with_line (pfile, CPP_W_LONG_LONG, virtual_location,
- 0, message);
+ 0, CPP_OPTION (pfile, cplusplus)
+ ? N_("use of C++11 long long integer constant")
+ : N_("use of C99 long long integer constant"));
+ cpp_warning_with_line (pfile, CPP_W_LONG_LONG, virtual_location, 0,
+ CPP_OPTION (pfile, cplusplus)
+ ? N_("use of C++11 long long integer "
+ "constant")
+ : N_("use of C99 long long integer "
+ "constant"));
else
cpp_pedwarning_with_line (pfile, CPP_W_LONG_LONG,
- virtual_location, 0, message);
+ virtual_location, 0,
+ CPP_OPTION (pfile, cplusplus)
+ ? N_("use of C++11 long long integer constant")
+ : N_("use of C99 long long integer constant"));
+ ? N_("use of C++11 long long integer "
+ "constant")
+ : N_("use of C99 long long integer "
+ "constant"));
}
if ((result & CPP_N_SIZE_T) == CPP_N_SIZE_T
&& !CPP_OPTION (pfile, size_t_literals))
- {
- const char *message
- = (result & CPP_N_UNSIGNED) == CPP_N_UNSIGNED
- ? N_("use of C++23 %<size_t%> integer constant")
- : N_("use of C++23 %<make_signed_t<size_t>%> integer constant");
- cpp_warning_with_line (pfile, CPP_W_SIZE_T_LITERALS,
- virtual_location, 0, message);
- }
+ cpp_warning_with_line (pfile, CPP_W_SIZE_T_LITERALS,
+ virtual_location, 0,
+ (result & CPP_N_UNSIGNED) == CPP_N_UNSIGNED
+ ? N_("use of C++23 %<size_t%> integer "
+ "constant")
+ : N_("use of C++23 %<make_signed_t<size_t>%> "
+ "integer constant"));
if ((result & CPP_N_BITINT) != 0
&& CPP_OPTION (pfile, cpp_warn_c11_c23_compat) != 0)
{
if (CPP_OPTION (pfile, cpp_warn_c11_c23_compat) > 0)
{
- const char *message = N_("ISO C does not support literal "
- "%<wb%> suffixes before C23");
if (CPP_PEDANTIC (pfile) && !CPP_OPTION (pfile, true_false))
cpp_pedwarning_with_line (pfile, CPP_W_C11_C23_COMPAT,
- virtual_location, 0, message);
+ virtual_location, 0,
+ "ISO C does not support literal "
+ "%<wb%> suffixes before C23");
else
cpp_warning_with_line (pfile, CPP_W_C11_C23_COMPAT,
- virtual_location, 0, message);
- }
- else if (!CPP_OPTION (pfile, true_false))
- {
- const char *message = N_("ISO C does not support literal "
+ virtual_location, 0,
+ "ISO C does not support literal "
"%<wb%> suffixes before C23");
- cpp_pedwarning_with_line (pfile, CPP_W_PEDANTIC,
- virtual_location, 0, message);
}
+ else if (!CPP_OPTION (pfile, true_false))
+ cpp_pedwarning_with_line (pfile, CPP_W_PEDANTIC,
+ virtual_location, 0,
+ "ISO C does not support literal "
+ "%<wb%> suffixes before C23");
}
result |= CPP_N_INTEGER;

View file

@ -26,11 +26,11 @@
# Generate header and source files from the machine description,
# and compile them.
--- gcc/graphite.h.jj 2016-01-27 12:44:06.000000000 +0100
+++ gcc/graphite.h 2016-01-27 13:26:38.309876856 +0100
@@ -39,6 +39,590 @@ along with GCC; see the file COPYING3.
#include <isl/schedule_node.h>
#include <isl/id.h>
#include <isl/space.h>
+++ gcc/graphite.h 2022-11-03 19:14:50.369690720 +0100
@@ -24,6 +24,591 @@ along with GCC; see the file COPYING3.
#include "sese.h"
+#include <isl/version.h>
+#include <dlfcn.h>
+
@ -41,15 +41,15 @@
+ DYNSYM (isl_aff_set_coefficient_si); \
+ DYNSYM (isl_aff_set_constant_si); \
+ DYNSYM (isl_aff_zero_on_domain); \
+ DYNSYM (isl_band_free); \
+ DYNSYM (isl_band_get_children); \
+ DYNSYM (isl_band_get_partial_schedule); \
+ DYNSYM (isl_band_has_children); \
+ DYNSYM (isl_band_list_free); \
+ DYNSYM (isl_band_list_get_band); \
+ DYNSYM (isl_band_list_get_ctx); \
+ DYNSYM (isl_band_list_n_band); \
+ DYNSYM (isl_band_n_member); \
+ /* DYNSYM (isl_band_free); */ \
+ /* DYNSYM (isl_band_get_children); */ \
+ /* DYNSYM (isl_band_get_partial_schedule); */ \
+ /* DYNSYM (isl_band_has_children); */ \
+ /* DYNSYM (isl_band_list_free); */ \
+ /* DYNSYM (isl_band_list_get_band); */ \
+ /* DYNSYM (isl_band_list_get_ctx); */ \
+ /* DYNSYM (isl_band_list_n_band); */ \
+ /* DYNSYM (isl_band_n_member); */ \
+ DYNSYM (isl_basic_map_add_constraint); \
+ DYNSYM (isl_basic_map_project_out); \
+ DYNSYM (isl_basic_map_universe); \
@ -91,7 +91,7 @@
+ DYNSYM (isl_map_is_empty); \
+ DYNSYM (isl_map_lex_ge); \
+ DYNSYM (isl_map_lex_le); \
+ DYNSYM (isl_map_n_out); \
+ /* DYNSYM (isl_map_n_out); */ \
+ DYNSYM (isl_map_range); \
+ DYNSYM (isl_map_set_tuple_id); \
+ DYNSYM (isl_map_universe); \
@ -124,7 +124,7 @@
+ DYNSYM (isl_pw_aff_sub); \
+ DYNSYM (isl_pw_aff_zero_set); \
+ DYNSYM (isl_schedule_free); \
+ DYNSYM (isl_schedule_get_band_forest); \
+ /* DYNSYM (isl_schedule_get_band_forest); */ \
+ DYNSYM (isl_set_add_constraint); \
+ DYNSYM (isl_set_add_dims); \
+ DYNSYM (isl_set_apply); \
@ -615,20 +615,21 @@
+#define isl_version (*isl_pointers__.p_isl_version)
+#define isl_options_get_on_error (*isl_pointers__.p_isl_options_get_on_error)
+#define isl_ctx_reset_error (*isl_pointers__.p_isl_ctx_reset_error)
+
typedef struct poly_dr *poly_dr_p;
@@ -461,5 +1045,6 @@ extern void build_scops (vec<scop_p> *);
typedef struct poly_bb *poly_bb_p;
@@ -448,5 +1033,6 @@ extern tree cached_scalar_evolution_in_r
extern void dot_all_sese (FILE *, vec<sese_l> &);
extern void dot_sese (sese_l &);
extern void dot_cfg ();
+extern const char *get_isl_version (bool);
#endif
--- gcc/graphite.c.jj 2015-11-04 14:15:32.000000000 +0100
+++ gcc/graphite.c 2015-11-04 14:56:02.645536409 +0100
--- gcc/graphite.cc.jj 2015-11-04 14:15:32.000000000 +0100
+++ gcc/graphite.cc 2015-11-04 14:56:02.645536409 +0100
@@ -60,6 +60,35 @@ along with GCC; see the file COPYING3.
#include "tree-into-ssa.h"
#include "tree-ssa-propagate.h"
#include "graphite.h"
+__typeof (isl_pointers__) isl_pointers__;
@ -640,7 +641,7 @@
+
+ if (isl_pointers__.inited)
+ return isl_pointers__.h != NULL;
+ h = dlopen ("libisl.so.15", RTLD_LAZY);
+ h = dlopen ("libisl.so.23", RTLD_LAZY);
+ isl_pointers__.h = h;
+ if (h == NULL)
+ return false;
@ -663,7 +664,7 @@
/* Print global statistics to FILE. */
static void
@@ -365,6 +394,15 @@ graphite_transform_loops (void)
@@ -424,6 +453,15 @@ graphite_transform_loops (void)
if (parallelized_function_p (cfun->decl))
return;
@ -679,7 +680,7 @@
calculate_dominance_info (CDI_DOMINATORS);
/* We rely on post-dominators during merging of SESE regions so those
@@ -455,6 +493,14 @@ graphite_transform_loops (void)
@@ -519,6 +557,14 @@ graphite_transform_loops (void)
}
}
@ -694,17 +695,17 @@
#else /* If isl is not available: #ifndef HAVE_isl. */
static void
--- gcc/toplev.c.jj 2017-02-19 13:02:31.000000000 +0100
+++ gcc/toplev.c 2017-02-19 16:50:25.536301350 +0100
@@ -94,6 +94,7 @@ along with GCC; see the file COPYING3.
--- gcc/toplev.cc.jj 2017-02-19 13:02:31.000000000 +0100
+++ gcc/toplev.cc 2024-11-30 13:22:34.175096117 +0100
@@ -100,6 +100,7 @@ along with GCC; see the file COPYING3.
#ifdef HAVE_isl
#include <isl/version.h>
+extern const char *get_isl_version (bool);
#endif
static void general_init (const char *, bool);
@@ -683,7 +684,7 @@ print_version (FILE *file, const char *i
static void general_init (const char *, bool, unique_argv original_argv);
@@ -652,7 +653,7 @@ print_version (FILE *file, const char *i
#ifndef HAVE_isl
"none"
#else

71
gcc16-isl-dl2.patch Normal file
View file

@ -0,0 +1,71 @@
2011-04-04 Jakub Jelinek <jakub@redhat.com>
* toplev.cc (toplev_main_argv): New variable.
(toplev_main): Initialize it.
* graphite.cc (init_isl_pointers): Load libisl.so.23 from gcc's private
directory.
--- gcc/toplev.cc.jj 2008-12-09 23:59:10.000000000 +0100
+++ gcc/toplev.cc 2024-11-30 13:26:05.085132543 +0100
@@ -112,6 +112,8 @@ static void finalize ();
static void crash_signal (int) ATTRIBUTE_NORETURN;
static void compile_file (void);
+const char **toplev_main_argv;
+
/* Decoded options, and number of such options. */
struct cl_decoded_option *save_decoded_options;
unsigned int save_decoded_options_count;
@@ -2296,6 +2298,8 @@ toplev::main (int argc, char **argv)
expandargv (&argc, &argv);
+ toplev_main_argv = CONST_CAST2 (const char **, char **, argv);
+
/* Initialization of GCC's environment, and diagnostics. */
general_init (argv[0], m_init_signals, std::move (original_argv));
--- gcc/graphite.cc.jj 2010-12-01 10:24:32.000000000 -0500
+++ gcc/graphite.cc 2010-12-01 11:46:07.832118193 -0500
@@ -64,11 +64,39 @@ __typeof (isl_pointers__) isl_pointers__
static bool
init_isl_pointers (void)
{
- void *h;
+ void *h = NULL;
+ extern const char **toplev_main_argv;
+ char *buf, *p;
+ size_t len;
if (isl_pointers__.inited)
return isl_pointers__.h != NULL;
- h = dlopen ("libisl.so.23", RTLD_LAZY);
+ len = progname - toplev_main_argv[0];
+ buf = XALLOCAVAR (char, len + sizeof "libisl.so.23");
+ memcpy (buf, toplev_main_argv[0], len);
+ strcpy (buf + len, "libisl.so.23");
+ len += sizeof "libisl.so.23";
+ p = strstr (buf, "/libexec/");
+ if (p != NULL)
+ {
+ while (1)
+ {
+ char *q = strstr (p + 8, "/libexec/");
+ if (q == NULL)
+ break;
+ p = q;
+ }
+ memmove (p + 4, p + 8, len - (p + 8 - buf));
+ h = dlopen (buf, RTLD_LAZY);
+ if (h == NULL)
+ {
+ len = progname - toplev_main_argv[0];
+ memcpy (buf, toplev_main_argv[0], len);
+ strcpy (buf + len, "libisl.so.23");
+ }
+ }
+ if (h == NULL)
+ h = dlopen (buf, RTLD_LAZY);
isl_pointers__.h = h;
if (h == NULL)
return false;

View file

@ -4,21 +4,21 @@
<a class="link" href="https://www.fsf.org" target="_top">FSF
</a>
</p><p>
+ Release 10.2.1
+ Release 16.0.1
+ </p><p>
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation
License, Version 1.2 or any later version published by the
--- libstdc++-v3/doc/html/api.html.jj 2011-01-03 12:53:21.000000000 +0100
+++ libstdc++-v3/doc/html/api.html 2011-01-04 18:12:01.672757784 +0100
+++ libstdc++-v3/doc/html/api.html 2024-11-30 13:30:16.607594623 +0100
@@ -20,7 +20,9 @@
member functions for the library classes, finding out what is in a
particular include file, looking at inheritance diagrams, etc.
</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 10.2.1 release</a>,
+ <a class="link" href="api/index.html" target="_top">for the 16.0.1 release</a>,
+ online
<a class="link" href="http://gcc.gnu.org/onlinedocs/" target="_top">for each GCC release</a>
<a class="link" href="https://gcc.gnu.org/onlinedocs/" target="_top">for each GCC release</a>
and
<a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/index.html" target="_top">
<a class="link" href="https://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/index.html" target="_top">

View file

@ -5,7 +5,7 @@ libtool sucks.
rpath="$finalize_rpath"
test "$mode" != relink && rpath="$compile_rpath$rpath"
for libdir in $rpath; do
+ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
+ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64|/usr/lib/../lib64/lp64d) continue;; esac
if test -n "$hardcode_libdir_flag_spec"; then
if test -n "$hardcode_libdir_separator"; then
if test -z "$hardcode_libdirs"; then
@ -13,7 +13,7 @@ libtool sucks.
rpath=
hardcode_libdirs=
for libdir in $compile_rpath $finalize_rpath; do
+ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
+ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64|/usr/lib/../lib64/lp64d) continue;; esac
if test -n "$hardcode_libdir_flag_spec"; then
if test -n "$hardcode_libdir_separator"; then
if test -z "$hardcode_libdirs"; then
@ -21,7 +21,7 @@ libtool sucks.
rpath=
hardcode_libdirs=
for libdir in $finalize_rpath; do
+ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
+ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64|/usr/lib/../lib64/lp64d) continue;; esac
if test -n "$hardcode_libdir_flag_spec"; then
if test -n "$hardcode_libdir_separator"; then
if test -z "$hardcode_libdirs"; then

View file

@ -34,4 +34,4 @@
+#define LINK_EH_SPEC "--no-add-needed %{!static|static-pie:--eh-frame-hdr} "
#endif
#define GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC \

76
gcc16-pr119006.patch Normal file
View file

@ -0,0 +1,76 @@
2025-02-27 Jakub Jelinek <jakub@redhat.com>
PR ipa/119006
* ipa-icf-gimple.cc (func_checker::compare_operand): If t1 and t2
are ADDR_EXPRs, call operand_equal_p on their operands rather than on
the ADDR_EXPRs themselves. Formatting fix.
* g++.dg/opt/pr119006.C: New test.
--- gcc/ipa-icf-gimple.cc.jj 2025-02-01 00:50:02.080774328 +0100
+++ gcc/ipa-icf-gimple.cc 2025-02-27 14:35:19.931183246 +0100
@@ -437,12 +437,23 @@ func_checker::compare_operand (tree t1,
("compare_ao_refs failed (dependence clique difference)");
gcc_unreachable ();
}
+ else if (TREE_CODE (t1) == ADDR_EXPR && TREE_CODE (t2) == ADDR_EXPR)
+ {
+ /* For ADDR_EXPR compare the operands of the ADDR_EXPR rather than
+ the ADDR_EXPRs themselves. operand_equal_p will compare the
+ operands with OEP_ADDRESS_OF and only care about the value
+ of the ADDR_EXPR, rather than e.g. types of MEM_REFs in there.
+ Some optimizations use such details though, see PR119006. */
+ if (operand_equal_p (TREE_OPERAND (t1, 0), TREE_OPERAND (t2, 0),
+ OEP_MATCH_SIDE_EFFECTS))
+ return true;
+ return return_false_with_msg ("operand_equal_p failed");
+ }
else
{
if (operand_equal_p (t1, t2, OEP_MATCH_SIDE_EFFECTS))
return true;
- return return_false_with_msg
- ("operand_equal_p failed");
+ return return_false_with_msg ("operand_equal_p failed");
}
}
--- gcc/testsuite/g++.dg/opt/pr119006.C.jj 2025-02-27 14:37:05.952707350 +0100
+++ gcc/testsuite/g++.dg/opt/pr119006.C 2025-02-27 14:36:29.251218260 +0100
@@ -0,0 +1,36 @@
+// PR ipa/119006
+// { dg-do run { target c++11 } }
+// { dg-options "-O2 -fwhole-program" }
+
+struct A {
+ bool operator== (const char *x) const { return x && !__builtin_strcmp (a, x); }
+ char a[11];
+};
+
+struct B {
+ bool operator== (const char *x) const { return x && !__builtin_strcmp (a, x); }
+ bool operator!= (const char *x) const { return !(*this == x); }
+ char a[128];
+};
+
+[[gnu::noinline,gnu::used]] int
+foo (const A& lhs, const char* rhs)
+{
+ return lhs == rhs;
+}
+
+constexpr const char *t = "abcdefghijklmno";
+
+[[gnu::noinline,gnu::used]] void
+bar (B x)
+{
+ if (x != t) __builtin_abort ();
+}
+
+int
+main ()
+{
+ B b;
+ __builtin_strcpy (b.a, t);
+ bar (b);
+}

54
gcc16-pr123273.patch Normal file
View file

@ -0,0 +1,54 @@
2026-01-06 Jakub Jelinek <jakub@redhat.com>
PR preprocessor/123273
* lex.cc (cpp_directive_only_process): Only go to done_comment
for '/' if star is true and esc is false. When seeing '\\' with
esc set to true, clear esc as well as star instead of keeping esc
set.
* c-c++-common/cpp/dir-only-10.c: New test.
* c-c++-common/cpp/dir-only-11.c: New test.
--- libcpp/lex.cc.jj 2026-01-02 09:56:10.417332292 +0100
+++ libcpp/lex.cc 2026-01-05 16:40:26.413766032 +0100
@@ -5461,7 +5461,13 @@ cpp_directive_only_process (cpp_reader *
switch (c)
{
case '\\':
- esc = true;
+ if (esc)
+ {
+ star = false;
+ esc = false;
+ }
+ else
+ esc = true;
break;
case '\r':
@@ -5492,7 +5498,7 @@ cpp_directive_only_process (cpp_reader *
break;
case '/':
- if (star)
+ if (star && !esc)
goto done_comment;
/* FALLTHROUGH */
--- gcc/testsuite/c-c++-common/cpp/dir-only-10.c.jj 2026-01-05 17:04:26.144566116 +0100
+++ gcc/testsuite/c-c++-common/cpp/dir-only-10.c 2026-01-05 17:05:02.226946201 +0100
@@ -0,0 +1,5 @@
+/* PR preprocessor/123273 */
+/* { dg-do preprocess } */
+/* { dg-options -fdirectives-only } */
+
+/* *\/""" */
--- gcc/testsuite/c-c++-common/cpp/dir-only-11.c.jj 2026-01-05 17:05:18.498666647 +0100
+++ gcc/testsuite/c-c++-common/cpp/dir-only-11.c 2026-01-05 17:06:17.574651691 +0100
@@ -0,0 +1,6 @@
+/* PR preprocessor/123273 */
+/* { dg-do preprocess } */
+/* { dg-options -fdirectives-only } */
+
+/* *\\
+/""" */

21
gcc16-rh1574936.patch Normal file
View file

@ -0,0 +1,21 @@
crt files and statically linked libgcc objects cause false positives
in annobin coverage, so we add the assembler flag to generate notes
for them.
The patch also adds notes to libgcc_s.so, but this is harmless because
these notes only confer that there is no other annobin markup.
2018-07-25 Florian Weimer <fweimer@redhat.com>
* config/t-linux (LIBGCC2_CFLAGS, CRTSTUFF_CFLAGS): Add
-Wa,--generate-missing-build-notes=yes.
--- libgcc/config/t-linux 2022-12-15 19:25:20.581394950 +0100
+++ libgcc/config/t-linux 2023-03-21 22:00:37.054478562 +0100
@@ -1,3 +1,6 @@
# Override t-slibgcc-elf-ver to export some libgcc symbols with
# the symbol versions that glibc used.
SHLIB_MAPFILES += $(srcdir)/config/libgcc-glibc.ver
+
+LIBGCC2_CFLAGS += -Wa,--generate-missing-build-notes=yes
+CRTSTUFF_CFLAGS += -Wa,--generate-missing-build-notes=yes

View file

@ -1,21 +1,21 @@
--- gcc/config.gcc.jj 2008-04-24 15:42:46.000000000 -0500
+++ gcc/config.gcc 2008-04-24 15:44:51.000000000 -0500
@@ -2790,7 +2790,7 @@ sparc-*-rtems*)
tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
@@ -3330,7 +3330,7 @@ sparc-*-rtems*)
tm_file="${tm_file} elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
;;
-sparc-*-linux*)
+sparc-*-linux* | sparcv9-*-linux*)
tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
tm_file="${tm_file} elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
extra_options="${extra_options} sparc/long-double-switch.opt"
case ${target} in
@@ -2844,7 +2844,7 @@ sparc64-*-rtems*)
@@ -3384,7 +3384,7 @@ sparc64-*-rtems*)
extra_options="${extra_options}"
tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
;;
-sparc64-*-linux*)
+sparc64*-*-linux*)
tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/default64.h sparc/linux64.h sparc/tso.h"
tm_file="sparc/biarch64.h ${tm_file} elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/default64.h sparc/linux64.h sparc/tso.h"
extra_options="${extra_options} sparc/long-double-switch.opt"
tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
--- libgcc/config.host.jj 2008-04-24 15:46:19.000000000 -0500

85
isl-rh2155127.patch Normal file
View file

@ -0,0 +1,85 @@
From: Sven Verdoolaege <sven.verdoolaege@gmail.com>
Date: Mon, 6 Jun 2022 12:56:02 +0000 (+0200)
Subject: update m4/ax_prog_cc_for_build.m4
X-Git-Tag: isl-0.25~11
X-Git-Url: https://repo.or.cz/isl.git/commitdiff_plain/b4dcdfadc29a6c9f410a72f345f3f32725b1d38b
update m4/ax_prog_cc_for_build.m4
In particular, update to the latest version from the autoconf archive,
but preserve the changes from isl-0.22.1-358-gcd42abdf2
(m4/ax_prog_cc_for_build.m4: do not override host compiler dependency style,
Tue Jun 9 10:54:10 2020 +0200).
Signed-off-by: Sven Verdoolaege <sven.verdoolaege@gmail.com>
--- isl-0.24/m4/ax_prog_cc_for_build.m4.jj 2021-03-02 12:07:09.000000000 +0100
+++ isl-0.24/m4/ax_prog_cc_for_build.m4 2022-12-20 18:11:18.855777817 +0100
@@ -32,7 +32,7 @@
# and this notice are preserved. This file is offered as-is, without any
# warranty.
-#serial 18
+#serial 21
AU_ALIAS([AC_PROG_CC_FOR_BUILD], [AX_PROG_CC_FOR_BUILD])
AC_DEFUN([AX_PROG_CC_FOR_BUILD], [dnl
@@ -44,6 +44,8 @@ dnl Use the standard macros, but make th
dnl
pushdef([ac_cv_prog_CPP], ac_cv_build_prog_CPP)dnl
pushdef([ac_cv_prog_cc_c89], ac_cv_build_prog_cc_c89)dnl
+pushdef([ac_cv_prog_cc_c99], ac_cv_build_prog_cc_c99)dnl
+pushdef([ac_cv_prog_cc_c11], ac_cv_build_prog_cc_c11)dnl
pushdef([ac_cv_prog_gcc], ac_cv_build_prog_gcc)dnl
pushdef([ac_cv_prog_cc_works], ac_cv_build_prog_cc_works)dnl
pushdef([ac_cv_prog_cc_cross], ac_cv_build_prog_cc_cross)dnl
@@ -86,7 +88,21 @@ AS_IF([test -n "$build"], [ac_build
[test -n "$build_alias"],[ac_build_tool_prefix="$build_alias-"])
AC_LANG_PUSH([C])
+
+dnl The pushdef([ac_cv_c_compiler_gnu], ...) currently does not cover
+dnl the use of this variable in _AC_LANG_COMPILER_GNU called by
+dnl AC_PROG_CC. Unset this cache variable temporarily as a workaround.
+was_set_c_compiler_gnu=${[ac_cv_c_compiler_gnu]+y}
+AS_IF([test ${was_set_c_compiler_gnu}],
+ [saved_c_compiler_gnu=$[ac_cv_c_compiler_gnu]
+ AS_UNSET([[ac_cv_c_compiler_gnu]])])
+
AC_PROG_CC
+
+dnl Restore ac_cv_c_compiler_gnu
+AS_IF([test ${was_set_c_compiler_gnu}],
+ [[ac_cv_c_compiler_gnu]=$[saved_c_compiler_gnu]])
+
_AC_COMPILER_EXEEXT
_AC_COMPILER_OBJEXT
AC_PROG_CPP
--- isl-0.24/configure.jj 2021-04-26 11:13:19.000000000 +0200
+++ isl-0.24/configure 2022-12-20 18:11:36.882518568 +0100
@@ -5002,6 +4990,13 @@ ac_compile='$CC_FOR_BUILD -c $CFLAGS_FOR
ac_link='$CC_FOR_BUILD -o conftest$ac_build_exeext $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD $LDFLAGS_FOR_BUILD conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_build_c_compiler_gnu
+
+was_set_c_compiler_gnu=${ac_cv_c_compiler_gnu+y}
+if test ${was_set_c_compiler_gnu}; then :
+ saved_c_compiler_gnu=$ac_cv_c_compiler_gnu
+ { ac_cv_c_compiler_gnu=; unset ac_cv_c_compiler_gnu;}
+fi
+
ac_ext=c
ac_cpp='$CPP_FOR_BUILD $CPPFLAGS_FOR_BUILD'
ac_compile='$CC_FOR_BUILD -c $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD conftest.$ac_ext >&5'
@@ -5728,6 +5723,11 @@ else
fi
+
+if test ${was_set_c_compiler_gnu}; then :
+ ac_cv_c_compiler_gnu=$saved_c_compiler_gnu
+fi
+
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */

13
plans/ci.fmf Normal file
View file

@ -0,0 +1,13 @@
summary: CI Gating Plan
discover:
how: fmf
url: https://gitlab.com/redhat/centos-stream/tests/gcc.git
filter: 'tag: Fedora-CI-gating'
execute:
how: tmt
adjust:
- prepare+:
- name: Add secondary architecture RPMs
how: shell
script: ./plans/provide_secondary_arch_rpms.sh
when: arch == x86_64

View file

@ -0,0 +1,64 @@
#!/usr/bin/env bash
# Fedora CI testing systems don't provide a repository with the i686
# RPMs of the build being tested. As a consequence, most
# dnf install -y <some-gcc-rpm>.i686
# commands (whether being run by a test or by TMT's prepare) will probably
# fail on a version mismatch with the present x86_64 gcc RPMs. To prevent
# such failures we provide this script which we recommend to include in every
# Fedora CI test plan.
#
# Implementation notes:
#
# * The gcc build being tested in Fedora CI is given via KOJI_TASK_ID. See
# https://github.com/fedora-ci/dist-git-pipeline/pull/50 for details.
#
# * Currently this script just downloads and installs the i686 RPMs. It
# would not be sufficient for tests that uninstall and reinstall those
# RPMs. If such a test appears, this script should create a repository.
#
# * Fedora CI testing systems seem to have extremely small RAM-based /tmp,
# unable to host all the downloaded RPMs, and no other "real" filesystem
# than "/". That's the reason for using
# mktemp -d --tmpdir=/
set -x
true "V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V"
echo "KOJI_TASK_ID=$KOJI_TASK_ID"
. /etc/os-release
echo "ID=$ID"
echo "arch=$(arch)"
echo "KOJI_TASK_ID=$KOJI_TASK_ID"
if [[ "$ID" = fedora ]] && [[ "$(arch)" = x86_64 ]] && [[ -n "$KOJI_TASK_ID" ]]; then
if tmpd=$(mktemp -d --tmpdir=/) && pushd "$tmpd"; then
# Download
rpm -q koji || dnf -y install koji
koji download-task "$KOJI_TASK_ID" --noprogress --arch={x86_64,i686,noarch}
# Remove conflicting RPMs
rm -f ./*debuginfo* ./*debugsource*
rm -f gcc-[0-9]*.i686.*
rm -f ./*docs*.i686.*
# Install
ls
dnf -y install ./*.rpm
# Clean up
# shellcheck disable=SC2164
popd
rm -rf "$tmpd"
fi
else
echo "Not applicable"
fi
true "^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^"

37
rpminspect.yaml Normal file
View file

@ -0,0 +1,37 @@
inspections:
# GCC subpackages are inter-dependent but without requesting an explicit
# version - which rpmdeps dislikes and creates huge reports. We can't fix
# it easily and it's not a practical problem anyway. Unfortunately we
# can't tell rpmdeps to ignore just that particular warning. Switching off
# the rpmdeps checks looks like a lesser evil.
rpmdeps: off
badfuncs:
# GCC doesn't use the so called bad functions "much". If they appear then
# - it is instrumenting them in sanitizers
# - in languages that don't move further downstream.
# We are OK with that.
ignore:
- /usr/lib*/libasan.so.*.*.*
- /usr/lib*/libtsan.so.*.*.*
- /usr/lib*/libgnat-*.so
- /usr/lib*/libgphobos.so.*.*.*
- /usr/lib*/libm2iso.so.*.*.*
- /usr/lib*/libm2pim.so.*.*.*
pathmigration:
# Incomplete UsrMove, known but not planned at the moment
ignore:
- /lib*/libgcc_s-*.so.*
- /lib*/libgcc_s.so.*
debuginfo:
# Skip the Go binaries, they ship unstripped
ignore:
- /usr/bin/go.gcc
- /usr/bin/gofmt.gcc
- /usr/lib*/libgo.so.*.*.*
- /usr/libexec/gcc/*-redhat-linux/*/buildid
- /usr/libexec/gcc/*-redhat-linux/*/cgo
- /usr/libexec/gcc/*-redhat-linux/*/test2json
- /usr/libexec/gcc/*-redhat-linux/*/vet

View file

@ -1,3 +1,4 @@
SHA512 (gcc-10.2.1-20201016.tar.xz) = d324b7c872210a14aabdc117567ae6eff98d40ee8bf7a705a8caf1330d698e167016fb98f095ab56de43140e5f19932775ff3d5757434e3f78f2eec57d3dd1c4
SHA512 (newlib-cygwin-50e2a63b04bdd018484605fbb954fd1bd5147fa0.tar.xz) = 002a48a7b689a81abbf16161bcaec001a842e67dfbe372e9e109092703bfc666675f16198f60ca429370e8850d564547dc505df81bc3aaca4ce6defbc014ad6c
SHA512 (nvptx-tools-5f6f343a302d620b0868edab376c00b15741e39e.tar.xz) = f6d10db94fa1570ae0f94df073fa3c73c8e5ee16d59070b53d94f7db0de8a031bc44d7f3f1852533da04b625ce758e022263855ed43cfc6867e0708d001e53c7
SHA512 (gcc-16.0.1-20260115.tar.xz) = 51ab079dedde5547caba601ce03954d4c5b2bf687538f106d3e851a8918162017fe65817d9e22fd115cf4d4f970bfba6a70a34db183141ce28c5c203a68eec0b
SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95
SHA512 (newlib-cygwin-d35cc82b5ec15bb8a5fe0fe11e183d1887992e99.tar.xz) = ef9495745a96d1d76f9f425c4a48c807fface36a1aa92351c5d024103678d144d046e8de55d195103784472c14874e29e4b9284d5d6a2e7bb27fd98c8455a881
SHA512 (nvptx-tools-a0c1fff6534a4df9fb17937c3c4a4b1071212029.tar.xz) = 7f862986065028df70c843fc3f2c89e200a76b48ad0bd51c749ac8a5aab7be0ebdf35be182fad2407b3281615e75be1ac6833ab6a5130ae9920169a0412f94f0

View file

@ -1,9 +0,0 @@
#!/bin/bash
set -ex
gcc -x c $(rpm --eval %build_cflags) data/hello.c -o hello_c.out
./hello_c.out | grep -q "Hello World"
g++ -x c++ $(rpm --eval %build_cxxflags) data/hello.cpp -o hello_cpp.out
./hello_cpp.out | grep -q "Hello World"

View file

@ -1,5 +0,0 @@
#include <stdio.h>
int main() {
printf("Hello World!\n");
return 0;
}

View file

@ -1,5 +0,0 @@
#include <iostream>
int main() {
std::cout << "Hello World!\n";
return 0;
}

View file

@ -1,14 +0,0 @@
- hosts: localhost
roles:
- role: standard-test-basic
tags:
- classic
required_packages:
- redhat-rpm-config
- annobin
tests:
- build_hello_world:
dir: .
run: "./build_hello_world.sh"

View file

@ -1,7 +1,36 @@
#!/bin/sh
[ -d gcc-dir.tmp ] && echo gcc-dir.tmp already exists && exit 1
git clone --depth 1 git://gcc.gnu.org/git/gcc.git gcc-dir.tmp
git --git-dir=gcc-dir.tmp/.git fetch --depth 1 origin $1
if [ "$#" -eq 0 ]; then
echo "Usage: ./update-gcc.sh gcc/redhat/heads/gcc-NN-branch_commit_hash [git_reference_dir_to_speed_up]"
exit 1
fi
export LC_ALL=C
if ! [ -f gcc.spec ]; then echo Must be run in the directory with gcc.spec file.; exit 1; fi
if [ -d gcc-dir.tmp ]; then echo gcc-dir.tmp already exists.; exit 1; fi
v=`sed -n 's/^%global gcc_version //p' gcc.spec`
p=`sed -n 's/^%global gitrev //p' gcc.spec`
h=$1
if [ "$#" -ge 2 ]; then
git clone --dissociate --reference $2 https://gcc.gnu.org/git/gcc.git gcc-dir.tmp
else
git clone https://gcc.gnu.org/git/gcc.git gcc-dir.tmp
fi
git --git-dir=gcc-dir.tmp/.git fetch origin $h
d=`date --iso | sed 's/-//g'`
git --git-dir=gcc-dir.tmp/.git archive --prefix=gcc-10.2.1-$d/ $1 | xz -9e > gcc-10.2.1-$d.tar.xz
cd gcc-dir.tmp
git diff $p..$h > P1
git log --format=%B `git log --format='%ae %H' $p..$h | awk '/^gccadmin@gcc.gnu.org/{print $2;exit 0}'`..$h > P2
diff -up /dev/null P2 >> P1
sed -n 's,^+[[:blank:]]\+PR \([a-z0-9+-]\+/[0-9]\+\)$,\1,p' P1 | sed 's/ - .*$//;s/[: ;.]//g' | LC_ALL=C sort -u -t / -k 1,1 -k 2,2n > P3
> P4
for i in `cat P3`; do if grep -F $i ../gcc.spec >/dev/null; then echo $i already recorded.; else echo $i >> P4; fi; done
case "$v" in
*.0.*) echo "- update from trunk" > P5;;
*) echo "- update from releases/gcc-`echo $v | sed 's/\..*$//'` branch" > P5;;
esac
echo `cat P4` | sed 's/ /, /g' | fold -w 71 -s | sed '1s/^/ - PRs /;2,$s/^/ /;s/, $/,/' >> P5
echo >> P5
cd ..
sed -i -e '/^%global gitrev /s/ [0-9a-f]\+$/ '$h'/;/^%global DATE /s/ [0-9]\+$/ '$d'/;/^%changelog$/r gcc-dir.tmp/P5' gcc.spec
git --git-dir=gcc-dir.tmp/.git archive --prefix=gcc-$v-$d/ $h | xz -9e > gcc-$v-$d.tar.xz
rm -rf gcc-dir.tmp
fedpkg new-sources gcc-$v-$d.tar.xz `sed 's/SHA512 (\(.*\)) = [0-9a-f]\+$/\1/' sources | grep -v '^gcc-'`