Compare commits

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

116 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
21 changed files with 1160 additions and 926 deletions

146
.gitignore vendored
View file

@ -1,116 +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
/gcc-10.2.1-20201102.tar.xz
/gcc-10.2.1-20201112.tar.xz
/gcc-10.2.1-20201125.tar.xz
/gcc-11.0.0-20201204.tar.xz
/gcc-11.0.0-20201216.tar.xz
/gcc-11.0.0-20201217.tar.xz
/gcc-11.0.0-20201223.tar.xz
/gcc-11.0.0-20210109.tar.xz
/gcc-11.0.0-20210113.tar.xz
/gcc-11.0.0-20210116.tar.xz
/gcc-11.0.0-20210119.tar.xz
/gcc-11.0.0-20210123.tar.xz
/gcc-11.0.0-20210130.tar.xz
/gcc-11.0.0-20210210.tar.xz
/gcc-11.0.0-20210225.tar.xz
/gcc-11.0.1-20210307.tar.xz
/gcc-11.0.1-20210319.tar.xz
/isl-0.18.tar.bz2
/gcc-11.0.1-20210324.tar.xz
/gcc-11.0.1-20210405.tar.xz
/gcc-11.0.1-20210418.tar.xz
/gcc-11.0.1-20210422.tar.xz
/gcc-11.0.1-20210423.tar.xz
/gcc-11.1.1-20210428.tar.xz
/gcc-11.1.1-20210512.tar.xz
/gcc-11.1.1-20210531.tar.xz
/gcc-11.1.1-20210617.tar.xz
/gcc-11.1.1-20210623.tar.xz
/gcc-11.1.1-20210726.tar.xz
/gcc-11.2.1-20210728.tar.xz
/gcc-11.2.1-20210823.tar.xz
/gcc-11.2.1-20211012.tar.xz
/gcc-11.2.1-20211018.tar.xz
/gcc-11.2.1-20211019.tar.xz
/gcc-11.2.1-20211203.tar.xz
/gcc-12.0.0-20220108.tar.xz
/gcc-12.0.0-20220112.tar.xz
/gcc-12.0.0-20220115.tar.xz
/gcc-12.0.1-20220118.tar.xz
/gcc-12.0.1-20220125.tar.xz
/gcc-12.0.1-20220129.tar.xz
/gcc-12.0.1-20220202.tar.xz
/gcc-12.0.1-20220205.tar.xz
/gcc-12.0.1-20220212.tar.xz
/gcc-12.0.1-20220214.tar.xz
/gcc-12.0.1-20220222.tar.xz
/gcc-12.0.1-20220306.tar.xz
/gcc-12.0.1-20220308.tar.xz
/gcc-12.0.1-20220401.tar.xz
/gcc-12.0.1-20220411.tar.xz
/gcc-12.0.1-20220413.tar.xz
/gcc-12.0.1-20220429.tar.xz
/gcc-12.1.1-20220507.tar.xz
/gcc-12.1.1-20220628.tar.xz
/gcc-12.1.1-20220810.tar.xz
/gcc-12.2.1-20220819.tar.xz
/gcc-12.2.1-20221103.tar.xz
/isl-0.24.tar.bz2
/newlib-cygwin-a8526cb52bedabd4d6ba4b227a5185627f871aa1.tar.xz
/nvptx-tools-472b6e78b3ba918d727698f79911360b7c808247.tar.xz
/gcc-12.2.1-20221121.tar.xz
/gcc-13.0.0-20221219.tar.xz
/gcc-13.0.0-20230102.tar.xz
/gcc-13.0.0-20230106.tar.xz
/gcc-13.0.0-20230112.tar.xz
/gcc-13.0.0-20230115.tar.xz
/gcc-13.0.1-20230117.tar.xz
/gcc-13.0.1-20230127.tar.xz
/newlib-cygwin-9e09d6ed83cce4777a5950412647ccc603040409.tar.xz
/gcc-13.0.1-20230208.tar.xz
/gcc-13.0.1-20230215.tar.xz
/gcc-13.0.1-20230221.tar.xz
/gcc-13.0.1-20230304.tar.xz
/gcc-13.0.1-20230310.tar.xz
/gcc-13.0.1-20230318.tar.xz
/gcc-13.0.1-20230321.tar.xz
/nvptx-tools-93e00909ceb9cbbc104f0fcba56c0361ffb3ca4b.tar.xz
/gcc-13.0.1-20230324.tar.xz
/gcc-13.0.1-20230329.tar.xz
/gcc-13.0.1-20230401.tar.xz
/gcc-13.0.1-20230404.tar.xz
/gcc-13.0.1-20230418.tar.xz
/gcc-13.0.1-20230419.tar.xz
/gcc-13.0.1-20230421.tar.xz
/gcc-13.1.1-20230426.tar.xz
/gcc-13.1.1-20230511.tar.xz
/gcc-13.1.1-20230519.tar.xz
/gcc-13.1.1-20230614.tar.xz
/gcc-13.2.1-20230728.tar.xz
/gcc-13.2.1-20230906.tar.xz
/nvptx-tools-aa3404ad5a496cda5d79a50bedb1344fd63e8763.tar.xz
/gcc-13.2.1-20230918.tar.xz
/gcc-13.2.1-20231011.tar.xz
/gcc-13.2.1-20231113.tar.xz
/gcc-13.2.1-20231205.tar.xz
/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

1403
gcc.spec

File diff suppressed because it is too large Load diff

View file

@ -1,163 +0,0 @@
PR target/110792: Early clobber issues with rot32di2_doubleword on i386.
This patch is a conservative fix for PR target/110792, a wrong-code
regression affecting doubleword rotations by BITS_PER_WORD, which
effectively swaps the highpart and lowpart words, when the source to be
rotated resides in memory. The issue is that if the register used to
hold the lowpart of the destination is mentioned in the address of
the memory operand, the current define_insn_and_split unintentionally
clobbers it before reading the highpart.
Hence, for the testcase, the incorrectly generated code looks like:
salq $4, %rdi // calculate address
movq WHIRL_S+8(%rdi), %rdi // accidentally clobber addr
movq WHIRL_S(%rdi), %rbp // load (wrong) lowpart
Traditionally, the textbook way to fix this would be to add an
explicit early clobber to the instruction's constraints.
(define_insn_and_split "<insn>32di2_doubleword"
- [(set (match_operand:DI 0 "register_operand" "=r,r,r")
+ [(set (match_operand:DI 0 "register_operand" "=r,r,&r")
(any_rotate:DI (match_operand:DI 1 "nonimmediate_operand" "0,r,o")
(const_int 32)))]
but unfortunately this currently generates significantly worse code,
due to a strange choice of reloads (effectively memcpy), which ends up
looking like:
salq $4, %rdi // calculate address
movdqa WHIRL_S(%rdi), %xmm0 // load the double word in SSE reg.
movaps %xmm0, -16(%rsp) // store the SSE reg back to the stack
movq -8(%rsp), %rdi // load highpart
movq -16(%rsp), %rbp // load lowpart
Note that reload's "&" doesn't distinguish between the memory being
early clobbered, vs the registers used in an addressing mode being
early clobbered.
The fix proposed in this patch is to remove the third alternative, that
allowed offsetable memory as an operand, forcing reload to place the
operand into a register before the rotation. This results in:
salq $4, %rdi
movq WHIRL_S(%rdi), %rax
movq WHIRL_S+8(%rdi), %rdi
movq %rax, %rbp
I believe there's a more advanced solution, by swapping the order of
the loads (if first destination register is mentioned in the address),
or inserting a lea insn (if both destination registers are mentioned
in the address), but this fix is a minimal "safe" solution, that
should hopefully be suitable for backporting.
2023-08-06 Roger Sayle <roger@nextmovesoftware.com>
gcc/testsuite/ChangeLog
PR target/110792
* gcc.target/i386/pr110792.c: Remove dg-final scan-assembler-not.
2023-08-03 Roger Sayle <roger@nextmovesoftware.com>
gcc/ChangeLog
PR target/110792
* config/i386/i386.md (<any_rotate>ti3): For rotations by 64 bits
place operand in a register before gen_<insn>64ti2_doubleword.
(<any_rotate>di3): Likewise, for rotations by 32 bits, place
operand in a register before gen_<insn>32di2_doubleword.
(<any_rotate>32di2_doubleword): Constrain operand to be in register.
(<any_rotate>64ti2_doubleword): Likewise.
gcc/testsuite/ChangeLog
PR target/110792
* g++.target/i386/pr110792.C: New 32-bit C++ test case.
* gcc.target/i386/pr110792.c: New 64-bit C test case.
--- gcc/config/i386/i386.md
+++ gcc/config/i386/i386.md
@@ -15341,7 +15341,10 @@ (define_expand "<insn>ti3"
emit_insn (gen_ix86_<insn>ti3_doubleword
(operands[0], operands[1], operands[2]));
else if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) == 64)
- emit_insn (gen_<insn>64ti2_doubleword (operands[0], operands[1]));
+ {
+ operands[1] = force_reg (TImode, operands[1]);
+ emit_insn (gen_<insn>64ti2_doubleword (operands[0], operands[1]));
+ }
else
{
rtx amount = force_reg (QImode, operands[2]);
@@ -15376,7 +15379,10 @@ (define_expand "<insn>di3"
emit_insn (gen_ix86_<insn>di3_doubleword
(operands[0], operands[1], operands[2]));
else if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) == 32)
- emit_insn (gen_<insn>32di2_doubleword (operands[0], operands[1]));
+ {
+ operands[1] = force_reg (DImode, operands[1]);
+ emit_insn (gen_<insn>32di2_doubleword (operands[0], operands[1]));
+ }
else
FAIL;
@@ -15544,8 +15550,8 @@ (define_insn_and_split "ix86_rotr<dwi>3_doubleword"
})
(define_insn_and_split "<insn>32di2_doubleword"
- [(set (match_operand:DI 0 "register_operand" "=r,r,r")
- (any_rotate:DI (match_operand:DI 1 "nonimmediate_operand" "0,r,o")
+ [(set (match_operand:DI 0 "register_operand" "=r,r")
+ (any_rotate:DI (match_operand:DI 1 "register_operand" "0,r")
(const_int 32)))]
"!TARGET_64BIT"
"#"
@@ -15562,8 +15568,8 @@ (define_insn_and_split "<insn>32di2_doubleword"
})
(define_insn_and_split "<insn>64ti2_doubleword"
- [(set (match_operand:TI 0 "register_operand" "=r,r,r")
- (any_rotate:TI (match_operand:TI 1 "nonimmediate_operand" "0,r,o")
+ [(set (match_operand:TI 0 "register_operand" "=r,r")
+ (any_rotate:TI (match_operand:TI 1 "register_operand" "0,r")
(const_int 64)))]
"TARGET_64BIT"
"#"
--- gcc/testsuite/g++.target/i386/pr110792.C
+++ gcc/testsuite/g++.target/i386/pr110792.C
@@ -0,0 +1,16 @@
+/* { dg-do compile { target ia32 } } */
+/* { dg-options "-O2" } */
+
+template <int ROT, typename T>
+inline T rotr(T input)
+{
+ return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT)));
+}
+
+unsigned long long WHIRL_S[256] = {0x18186018C07830D8};
+unsigned long long whirl(unsigned char x0)
+{
+ const unsigned long long s4 = WHIRL_S[x0&0xFF];
+ return rotr<32>(s4);
+}
+/* { dg-final { scan-assembler-not "movl\tWHIRL_S\\+4\\(,%eax,8\\), %eax" } } */
--- gcc/testsuite/gcc.target/i386/pr110792.c
+++ gcc/testsuite/gcc.target/i386/pr110792.c
@@ -0,0 +1,17 @@
+/* { dg-do compile { target int128 } } */
+/* { dg-options "-O2" } */
+
+static inline unsigned __int128 rotr(unsigned __int128 input)
+{
+ return ((input >> 64) | (input << (64)));
+}
+
+unsigned __int128 WHIRL_S[256] = {((__int128)0x18186018C07830D8) << 64 |0x18186018C07830D8};
+unsigned __int128 whirl(unsigned char x0)
+{
+ register int t __asm("rdi") = x0&0xFF;
+ const unsigned __int128 s4 = WHIRL_S[t];
+ register unsigned __int128 tt __asm("rdi") = rotr(s4);
+ asm("":::"memory");
+ return tt;
+}

View file

@ -9,15 +9,15 @@
* 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
@@ -570,7 +570,7 @@ AC_ARG_ENABLE(build-format-warnings,
+++ 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-narrowing -Wwrite-strings ],
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
@ -30,33 +30,37 @@
else
wf_opt=
fi
--- Makefile.tpl.jj 2021-12-30 15:12:42.188164847 +0100
+++ Makefile.tpl 2022-01-07 12:06:12.115550714 +0100
@@ -446,9 +446,9 @@ LDFLAGS = @LDFLAGS@
--- 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)
-GDCFLAGS = $(CFLAGS)
-A68FLAGS = @A68FLAGS@
-GDCFLAGS = @GDCFLAGS@
-GM2FLAGS = $(CFLAGS)
+GOCFLAGS = $(filter-out -Wformat-security,$(CFLAGS))
+GDCFLAGS = $(filter-out -Wformat-security,$(CFLAGS))
+A68FLAGS = $(filter-out -Wformat-security,@A68FLAGS@)
+GDCFLAGS = $(filter-out -Wformat-security,@GDCFLAGS@)
+GM2FLAGS = $(filter-out -Wformat-security,$(CFLAGS))
# Pass additional PGO and LTO compiler options to the PGO build.
BUILD_CFLAGS = $(PGO_BUILD_CFLAGS) $(PGO_BUILD_LTO_CFLAGS)
--- Makefile.in.jj 2021-12-30 15:12:42.188164847 +0100
+++ Makefile.in 2022-01-07 12:06:27.335334561 +0100
@@ -443,9 +443,9 @@ LDFLAGS = @LDFLAGS@
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)
-GDCFLAGS = $(CFLAGS)
-A68FLAGS = @A68FLAGS@
-GDCFLAGS = @GDCFLAGS@
-GM2FLAGS = $(CFLAGS)
+GOCFLAGS = $(filter-out -Wformat-security,$(CFLAGS))
+GDCFLAGS = $(filter-out -Wformat-security,$(CFLAGS))
+A68FLAGS = $(filter-out -Wformat-security,@A68FLAGS@)
+GDCFLAGS = $(filter-out -Wformat-security,@GDCFLAGS@)
+GM2FLAGS = $(filter-out -Wformat-security,$(CFLAGS))
# Pass additional PGO and LTO compiler options to the PGO build.
BUILD_CFLAGS = $(PGO_BUILD_CFLAGS) $(PGO_BUILD_LTO_CFLAGS)
CRAB1_LIBS = @CRAB1_LIBS@

View file

@ -64,63 +64,119 @@
+ infodir="$(infodir)" \
GOCFLAGS="$(GOCFLAGS) $${flags}" \
GDCFLAGS="$(GDCFLAGS) $${flags}" \
CXXFLAGS="$(CXXFLAGS) $${flags}" \
A68FLAGS="$(A68FLAGS) $${flags}" \
--- libcpp/macro.cc.jj 2019-01-09 13:01:21.420552123 +0100
+++ libcpp/macro.cc 2019-01-11 18:18:17.736876285 +0100
@@ -3256,8 +3256,6 @@ static cpp_macro *
+++ 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.cc.jj 2019-01-09 13:01:22.415535734 +0100
+++ libcpp/expr.cc 2019-01-11 18:16:23.444726882 +0100
@@ -803,16 +803,17 @@ cpp_classify_number (cpp_reader *pfile,
+++ 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

@ -696,16 +696,16 @@
static void
--- gcc/toplev.cc.jj 2017-02-19 13:02:31.000000000 +0100
+++ gcc/toplev.cc 2017-02-19 16:50:25.536301350 +0100
@@ -94,6 +94,7 @@ along with GCC; see the file COPYING3.
+++ 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

View file

@ -6,8 +6,8 @@
directory.
--- gcc/toplev.cc.jj 2008-12-09 23:59:10.000000000 +0100
+++ gcc/toplev.cc 2009-01-27 14:33:52.000000000 +0100
@@ -113,6 +113,8 @@ static void finalize (bool);
+++ 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);
@ -16,14 +16,14 @@
/* Decoded options, and number of such options. */
struct cl_decoded_option *save_decoded_options;
unsigned int save_decoded_options_count;
@@ -2239,6 +2241,8 @@ toplev::main (int argc, char **argv)
@@ -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);
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

View file

@ -4,21 +4,21 @@
<a class="link" href="https://www.fsf.org" target="_top">FSF
</a>
</p><p>
+ Release 13.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 13.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 } */
+
+/* *\\
+/""" */

View file

@ -1,7 +1,7 @@
summary: CI Gating Plan
discover:
how: fmf
url: https://src.fedoraproject.org/tests/gcc.git
url: https://gitlab.com/redhat/centos-stream/tests/gcc.git
filter: 'tag: Fedora-CI-gating'
execute:
how: tmt

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,4 +1,4 @@
SHA512 (gcc-13.2.1-20231205.tar.xz) = f132a2d35d6ea0b0d82043870f1c9f60dda119e63df6833b16d20e2c93e2978f62698d4cc72a6e2eefbaeded0683107de9ebeb93923b96c57dcd612504aa6a1b
SHA512 (gcc-16.0.1-20260115.tar.xz) = 51ab079dedde5547caba601ce03954d4c5b2bf687538f106d3e851a8918162017fe65817d9e22fd115cf4d4f970bfba6a70a34db183141ce28c5c203a68eec0b
SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95
SHA512 (newlib-cygwin-9e09d6ed83cce4777a5950412647ccc603040409.tar.xz) = bef3fa04f7b1a915fc1356ebed114698b5cc835e9fa04b0becff05a9efc76c59fb376482990873d222d7acdcfee3c4f30f5a4cb7f3be1f291f1fa5f1c7a9d983
SHA512 (nvptx-tools-aa3404ad5a496cda5d79a50bedb1344fd63e8763.tar.xz) = 33a024326426375533cb5dd9b68b2508f37540be418d2506bfa19a5f5866485e9af150469064e9059b68136ad8cb080b3b12e7eb5c6b7d1288cf6bfb3f6bb5d0
SHA512 (newlib-cygwin-d35cc82b5ec15bb8a5fe0fe11e183d1887992e99.tar.xz) = ef9495745a96d1d76f9f425c4a48c807fface36a1aa92351c5d024103678d144d046e8de55d195103784472c14874e29e4b9284d5d6a2e7bb27fd98c8455a881
SHA512 (nvptx-tools-a0c1fff6534a4df9fb17937c3c4a4b1071212029.tar.xz) = 7f862986065028df70c843fc3f2c89e200a76b48ad0bd51c749ac8a5aab7be0ebdf35be182fad2407b3281615e75be1ac6833ab6a5130ae9920169a0412f94f0

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-13.2.1-$d/ $1 | xz -9e > gcc-13.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-'`