[PATCH] Do not redirect ld stdout/stderr in collect2 with -debug
Richard Biener
rguenther@suse.de
Mon Jun 10 12:02:00 GMT 2013
This fixes one very annoying thing collect2 does when trying to
debug LTO WPA issues. Even with -v you need to wait until all
LTRANS stages completed to see the lto1 -fwpa invocation which
is because collect2 buffers and replays stdout/stderr of ld
(to avoid duplicating that in some cases). But I really want
to see the output immediately but there is no way to do that.
The easiest is to disable the buffering with -debug (that is,
-Wl,-debug to the -flto driver command line).
Tested with/without -debug.
Ok for trunk?
Thanks,
Richard.
2013-06-10 Richard Biener <rguenther@suse.de>
* collect2.c (main): Do not redirect ld stdout/stderr when
debugging.
Index: gcc/collect2.c
===================================================================
--- gcc/collect2.c (revision 199732)
+++ gcc/collect2.c (working copy)
@@ -1189,8 +1189,11 @@ main (int argc, char **argv)
#ifdef COLLECT_EXPORT_LIST
export_file = make_temp_file (".x");
#endif
- ldout = make_temp_file (".ld");
- lderrout = make_temp_file (".le");
+ if (!debug)
+ {
+ ldout = make_temp_file (".ld");
+ lderrout = make_temp_file (".le");
+ }
*c_ptr++ = c_file_name;
*c_ptr++ = "-x";
*c_ptr++ = "c";
More information about the Gcc-patches
mailing list