1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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
@@ -7935,13 +7935,16 @@ do_report_bug (const char **new_argv, const int nargs,
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));
@@ -7955,6 +7958,15 @@ do_report_bug (const char **new_argv, const int nargs,
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;
|