summaryrefslogtreecommitdiffstats
path: root/debian/patches/gcc-ice-apport.diff
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-14 13:58:36 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-14 13:58:36 +0000
commit1d3b23e6bdbf53eb74161c37d8c355c2ec858a19 (patch)
treee279a67ec4f447e99b0754e7964666f7b48b5c05 /debian/patches/gcc-ice-apport.diff
parentAdding upstream version 14-20240201. (diff)
downloadgcc-14-debian.tar.xz
gcc-14-debian.zip
Adding debian version 14-20240201-3.debian/14-20240201-3debian
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'debian/patches/gcc-ice-apport.diff')
-rw-r--r--debian/patches/gcc-ice-apport.diff39
1 files changed, 39 insertions, 0 deletions
diff --git a/debian/patches/gcc-ice-apport.diff b/debian/patches/gcc-ice-apport.diff
new file mode 100644
index 0000000..fca0d23
--- /dev/null
+++ b/debian/patches/gcc-ice-apport.diff
@@ -0,0 +1,39 @@
+# DP: Report an ICE to apport (if apport is available
+# DP: and the environment variable GCC_NOAPPORT is not set)
+
+--- a/src/gcc/gcc.cc
++++ b/src/gcc/gcc.cc
+@@ -8090,13 +8090,16 @@ do_report_bug (const char **new_argv, co
+ if (status == ATTEMPT_STATUS_SUCCESS)
+ {
+ const bool gcc_dump = has_deb_build_options ("gcc-ice", "nodump");
++ const bool gcc_apport
++ = !env.get ("GCC_NOAPPORT")
++ && !access ("/usr/share/apport/gcc_ice_hook", R_OK | X_OK);
+
+ if (gcc_dump)
+ fnotice (stderr,
+ "Preprocessed source stored into %s file,"
+ " please attach this to your bugreport.\n",
+ *out_file);
+- if (gcc_dump)
++ if (gcc_dump || gcc_apport)
+ {
+ char *cmd = XNEWVEC (char, 50 + strlen (*out_file));
+
+@@ -8110,6 +8113,15 @@ do_report_bug (const char **new_argv, co
+ fflush (stderr);
+ free (cmd);
+ }
++ if (gcc_apport)
++ {
++ char *cmd
++ = XNEWVEC (char, 50 + strlen (*out_file) + strlen (new_argv[0]));
++ sprintf (cmd, "/usr/share/apport/gcc_ice_hook %s %s", new_argv[0],
++ *out_file);
++ system (cmd);
++ free (cmd);
++ }
+ /* Make sure it is not deleted. */
+ free (*out_file);
+ *out_file = NULL;