Compare commits
298 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
11a7615167 | ||
|
|
fa1effd14b | ||
|
|
1c7da76a52 | ||
|
|
8d258e58bd | ||
|
|
bf9047fd71 | ||
|
|
2df9f5e183 | ||
|
|
461b2c1a00 | ||
|
|
55e669d29a | ||
|
|
406a54e096 | ||
|
|
54fd0a9c60 | ||
|
|
f184fa5d6b | ||
|
|
8f8d2ea9c3 | ||
|
|
37b414b69d | ||
|
|
e938fc85e2 | ||
|
|
7d5be559db | ||
|
|
03834369ae | ||
|
|
7e1c00df08 | ||
|
|
29a83d7553 | ||
|
|
1651080f05 | ||
|
|
ecc62ec17c | ||
|
|
8e1de27693 | ||
|
|
a9e44d03b5 | ||
|
|
e30d2f7054 | ||
|
|
ec7ee8880e | ||
|
|
a703174f5b | ||
|
|
c5384031e6 | ||
|
|
86392f66e3 | ||
|
|
e37f3dd922 | ||
|
|
8fdb5717b5 | ||
|
|
e3cc379cd1 | ||
|
|
a6bc1b37ec | ||
|
|
17636a65a5 | ||
|
|
0176834606 | ||
|
|
fcc453986e | ||
|
|
81055b7d4d | ||
|
|
789e812095 | ||
|
|
09b578c3e5 | ||
|
|
976f3a7441 | ||
|
|
222db06f79 | ||
|
|
82d154466d | ||
|
|
f4a22ed093 | ||
|
|
d831ac9ded | ||
|
|
6a75c861d4 | ||
|
|
f659fed8f8 | ||
|
|
2d6ea7bce2 | ||
|
|
f7f61ee7ea | ||
|
|
264b1809f7 | ||
|
|
6a6af07450 | ||
|
|
7eefe5bcb2 | ||
|
|
65505a4c17 | ||
|
|
d634368529 | ||
|
|
56f71ad788 | ||
|
|
f97b22af10 | ||
|
|
46a6d80764 | ||
|
|
c142771541 | ||
|
|
b46eae0019 | ||
|
|
ca394fe46b | ||
|
|
2f3ea848fe | ||
|
|
48a562d802 | ||
|
|
741ed4a5a9 | ||
|
|
37a3863034 | ||
|
|
33699f47c3 | ||
|
|
f7d926bced | ||
|
|
130b5c0e0e | ||
|
|
e48becc49a | ||
|
|
82653994cf | ||
|
|
806e75093d | ||
|
|
02c34dfa36 | ||
|
|
3c526fa26b | ||
|
|
8cd5593dfc | ||
|
|
a706a6fd25 | ||
|
|
d021080ea7 | ||
|
|
dc203d1b77 | ||
|
|
0425b2638c | ||
|
|
b100864ab2 | ||
|
|
5032483c40 | ||
|
|
4b5f87d836 | ||
|
|
5551c1491d | ||
|
|
467c94cde8 | ||
|
|
73893f6935 | ||
|
|
c6f99ecd74 | ||
|
|
face1955f5 | ||
|
|
150f0ee915 | ||
|
|
7b746958a3 | ||
|
|
8e7867c2d3 | ||
|
|
551363d0e2 | ||
|
|
13569d0f04 | ||
|
|
6c8229ada4 | ||
|
|
20746dd85f | ||
|
|
d6fcb33cdc | ||
|
|
e703f37eb8 | ||
|
|
3b5d747556 | ||
|
|
d818c7e53a | ||
|
|
7294abbf86 | ||
|
|
ec9e26e795 | ||
|
|
a36c072c54 | ||
|
|
f10c1b3e6f | ||
|
|
888d966da3 | ||
|
|
1bdd979db9 | ||
|
|
493fbf28af | ||
|
|
6997e7374e | ||
|
|
496f53165b | ||
|
|
8ed2af4dd0 | ||
|
|
966f89a4b5 | ||
|
|
f24424aa4f | ||
|
|
216b9da073 | ||
|
|
564bdfea3f | ||
|
|
5ccff5cd88 | ||
|
|
d10c76f901 | ||
|
|
1ff01b9f76 | ||
|
|
1362054ff7 | ||
|
|
41cbdc2247 | ||
|
|
f2827fcbf7 | ||
|
|
592bd10bc7 | ||
|
|
667479a5c7 | ||
|
|
352f3e92ab | ||
|
|
54bd293004 | ||
|
|
c741e6965d | ||
|
|
b2371a5073 | ||
|
|
666e815832 | ||
|
|
c4ec5953ba | ||
|
|
8eebf44373 | ||
|
|
3245329e23 | ||
|
|
267dcb128b | ||
|
|
4e02d56d94 | ||
|
|
31fb054039 | ||
|
|
2751220912 | ||
|
|
f3a804c686 | ||
|
|
a9552bf745 | ||
|
|
8f1aceb90b | ||
|
|
f18f04b3fb | ||
|
|
ca788bfdff | ||
|
|
e31a1bddc0 | ||
|
|
ee018dc183 | ||
|
|
6fdcb2b9e5 | ||
|
|
52a79c17ee | ||
|
|
52fa8aefa3 | ||
|
|
b290aa01d1 | ||
|
|
dc8f6e461b | ||
|
|
85fff34818 | ||
|
|
02ae2beb4c | ||
|
|
3c30ab4799 | ||
|
|
8e1f20bf3a | ||
|
|
cf965d214e | ||
|
|
5e48ef55f5 | ||
|
|
28a41d7ec1 | ||
|
|
99a093cb4f | ||
|
|
75ecbee53f | ||
|
|
19c5115980 | ||
|
|
863c72823c | ||
|
|
fabc85dc5d | ||
|
|
95221c62d2 | ||
|
|
5fe996562e | ||
|
|
6f673bac47 | ||
|
|
e346cea2fb | ||
|
|
dc4418df89 | ||
|
|
91c863f8a9 | ||
|
|
d69d615083 | ||
|
|
0acbf54cf4 | ||
|
|
2e2b76f57a | ||
|
|
311655b816 | ||
|
|
d4299b940b | ||
|
|
0d926ffb44 | ||
|
|
ec851df667 | ||
|
|
3dab9de8f0 | ||
|
|
dd92515693 | ||
|
|
f05a075009 | ||
|
|
0af622a16d | ||
|
|
146fdc1878 | ||
|
|
78accc2a93 | ||
|
|
a492697acf | ||
|
|
c9c54ba24f | ||
|
|
46ce913ce6 | ||
|
|
a72281a470 | ||
|
|
bfe43bb230 | ||
|
|
2615a533b8 | ||
|
|
23a21fde25 | ||
|
|
e503f00450 | ||
|
|
74613be376 | ||
|
|
91b3540549 | ||
|
|
c75889d28c | ||
|
|
245908f188 | ||
|
|
b2315f360e | ||
|
|
200ab99d30 | ||
|
|
4910c83f42 | ||
|
|
aa03effdcf | ||
|
|
a1104fdc08 |
||
|
|
d7e191c777 | ||
|
|
917a939e05 | ||
|
|
d4fb9f8ed8 | ||
|
|
7198391f75 | ||
|
|
665f9ff9cb | ||
|
|
fbdc8be2d5 | ||
|
|
54dca9e09d | ||
|
|
d73ad6153f | ||
|
|
fc9926357a | ||
|
|
967fa9b141 | ||
|
|
ef299b80e9 | ||
|
|
b2fa1409e0 | ||
|
|
67cc6756a1 | ||
|
|
b0dddd2d05 | ||
|
|
9743a6a9b0 | ||
|
|
f58fc62400 | ||
|
|
62d2a570da | ||
|
|
3628c9a446 | ||
|
|
398138b5f3 | ||
|
|
66ac9cc1b6 | ||
|
|
f5c21772fc | ||
|
|
7e47121cf7 | ||
|
|
0bdfca38c6 | ||
|
|
067e0a8c2e | ||
|
|
b8dc449a65 | ||
|
|
dc6e17c8c2 | ||
|
|
b2295576ca | ||
|
|
1d6884964d | ||
|
|
595f09c493 | ||
|
|
dca274fd43 | ||
|
|
804d4ab44b | ||
|
|
b84a98262a | ||
|
|
cdf92292af | ||
|
|
671fc7ba16 | ||
|
|
80be3f02ea | ||
|
|
3659d992cd | ||
|
|
3b91dbe507 | ||
|
|
27b6bb48cf | ||
|
|
68a50d6964 | ||
|
|
892f8cf6be | ||
|
|
ba0a2baa86 | ||
|
|
878cf31641 | ||
|
|
3839c55548 | ||
|
|
307b042329 | ||
|
|
517529187f | ||
|
|
012193ab2c | ||
|
|
b492bb6d0d | ||
|
|
c07adb54e0 | ||
|
|
196b71d183 | ||
|
|
a191d6bffd | ||
|
|
698535f4a2 | ||
|
|
dc53defcf3 | ||
|
|
63133c7e37 | ||
|
|
3507c942bd | ||
|
|
4b84269ff6 | ||
|
|
ceebf1784f | ||
|
|
c603d84348 | ||
|
|
c19375a4b9 | ||
|
|
e931d8bd48 | ||
|
|
db78d97ae5 | ||
|
|
063f63dafb | ||
|
|
a2a6a491f5 | ||
|
|
604b6369b8 | ||
|
|
a31fadcc09 | ||
|
|
f172832272 | ||
|
|
0177c06558 | ||
|
|
9173737427 | ||
|
|
7b59d695b5 | ||
|
|
72c4542d15 | ||
|
|
93f9e68547 | ||
|
|
541204d67b | ||
|
|
8ad393378c | ||
|
|
c38b60d6f8 | ||
|
|
f817c30ff8 | ||
|
|
cee86e0c23 | ||
|
|
f8c38830d9 | ||
|
|
eb3f14c713 | ||
|
|
8b3a7b2201 | ||
|
|
e25bc11637 | ||
|
|
c3f10cec8a | ||
|
|
7ddd78661a | ||
|
|
59cfaa7b4d | ||
|
|
9b91a54819 | ||
|
|
7cfa254bd7 | ||
|
|
c8c738d102 | ||
|
|
89aaf2fcca | ||
|
|
c7b83880f7 | ||
|
|
931429764e | ||
|
|
9087b59fd4 | ||
|
|
2a97a4485a | ||
|
|
b08544362e | ||
|
|
6e2000ccdc | ||
|
|
983aa76b9b | ||
|
|
dd22b2a0a2 | ||
|
|
f49280a03b | ||
|
|
93487d62ed | ||
|
|
ac8f498836 | ||
|
|
4a41cd799a | ||
|
|
47dcf480fc | ||
|
|
23e00e261f | ||
|
|
9f8a6fd894 | ||
|
|
8c7fac2bb2 | ||
|
|
d92ecedc14 | ||
|
|
8372e104d7 | ||
|
|
2dca06326f | ||
|
|
f285645769 | ||
|
|
42f8421576 | ||
|
|
230cd6b217 | ||
|
|
94687bec15 | ||
|
|
de14d872a4 | ||
|
|
a067db068a |
36 changed files with 2140 additions and 1414 deletions
1
.fmf/version
Normal file
1
.fmf/version
Normal file
|
|
@ -0,0 +1 @@
|
|||
1
|
||||
53
.gitignore
vendored
53
.gitignore
vendored
|
|
@ -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
16
gating.yaml
Normal 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}
|
||||
|
|
@ -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
|
||||
|
|
@ -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,
|
||||
|
|
@ -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
|
||||
;;
|
||||
|
|
@ -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" } }
|
||||
|
||||
|
|
@ -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. */
|
||||
|
|
@ -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;
|
||||
|
|
@ -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);
|
||||
+}
|
||||
|
|
@ -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.
|
||||
66
gcc16-Wno-format-security.patch
Normal file
66
gcc16-Wno-format-security.patch
Normal 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@
|
||||
|
||||
215
gcc16-fortran-fdec-duplicates.patch
Normal file
215
gcc16-fortran-fdec-duplicates.patch
Normal 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
|
||||
|
||||
|
|
@ -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;
|
||||
|
|
@ -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
71
gcc16-isl-dl2.patch
Normal 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;
|
||||
|
|
@ -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">
|
||||
|
|
@ -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
|
||||
|
|
@ -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
76
gcc16-pr119006.patch
Normal 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
54
gcc16-pr123273.patch
Normal 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
21
gcc16-rh1574936.patch
Normal 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
|
||||
|
|
@ -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
85
isl-rh2155127.patch
Normal 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
13
plans/ci.fmf
Normal 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
|
||||
64
plans/provide_secondary_arch_rpms.sh
Executable file
64
plans/provide_secondary_arch_rpms.sh
Executable 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
37
rpminspect.yaml
Normal 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
|
||||
7
sources
7
sources
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
#include <stdio.h>
|
||||
int main() {
|
||||
printf("Hello World!\n");
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
#include <iostream>
|
||||
int main() {
|
||||
std::cout << "Hello World!\n";
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -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"
|
||||
|
|
@ -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-'`
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue