/usr/src/gcc-7/debian/patches/gcc-ice-dump.diff is in gcc-7-source 7.3.0-16ubuntu3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 40 41 | # DP: For ICEs, dump the preprocessed source file to stderr
# DP: when in a distro build environment.
Index: b/src/gcc/gcc.c
===================================================================
--- a/src/gcc/gcc.c
+++ b/src/gcc/gcc.c
@@ -3163,7 +3163,8 @@ execute (void)
/* For ICEs in cc1, cc1obj, cc1plus see if it is
reproducible or not. */
const char *p;
- if (flag_report_bug
+ const char *deb_build_options = env.get("DEB_BUILD_OPTIONS");
+ if ((flag_report_bug || deb_build_options)
&& WEXITSTATUS (status) == ICE_EXIT_CODE
&& i == 0
&& (p = strrchr (commands[0].argv[0], DIR_SEPARATOR))
@@ -6885,8 +6886,23 @@ do_report_bug (const char **new_argv, co
if (status == ATTEMPT_STATUS_SUCCESS)
{
+ const char *deb_build_options = env.get("DEB_BUILD_OPTIONS");
+
fnotice (stderr, "Preprocessed source stored into %s file,"
" please attach this to your bugreport.\n", *out_file);
+ if (deb_build_options)
+ {
+ char *cmd = XNEWVEC (char, 50 + strlen (*out_file));
+
+ sprintf(cmd, "/usr/bin/awk '{print \"%d:\", $0}' %s >&2", getpid(), *out_file);
+ fprintf(stderr, "=== BEGIN GCC DUMP ===\n");
+ fflush(stderr);
+ system(cmd);
+ fflush(stderr);
+ fprintf(stderr, "=== END GCC DUMP ===\n");
+ fflush(stderr);
+ free(cmd);
+ }
/* Make sure it is not deleted. */
free (*out_file);
*out_file = NULL;
|