http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46362
Summary: [4.6 regression] lto-plugin.c doesn't compile on IRIX 6.5 Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: bootstrap AssignedTo: unassig...@gcc.gnu.org ReportedBy: r...@gcc.gnu.org CC: dave.k...@gcc.gnu.org, i...@google.com Host: mips-sgi-irix6.5 Target: mips-sgi-irix6.5 Build: mips-sgi-irix6.5 Since the lto-plugin has been converted to the simple-object interface and is always enabled on ELF targets, mainline doesn't bootstrap any longer on IRIX 6.5: /vol/gcc/src/hg/trunk/local/lto-plugin/lto-plugin.c: In function 'claim_file_handler': /vol/gcc/src/hg/trunk/local/lto-plugin/lto-plugin.c:829: error: expected ')' before 'PRIx64' cc1: warnings being treated as errors /vol/gcc/src/hg/trunk/local/lto-plugin/lto-plugin.c:830: error: too few arguments for format make[3]: *** [lto-plugin.lo] Error 1 make[3]: Leaving directory `/var/gcc/regression/trunk/6.5-gcc/build/lto-plugin' The problem is this piece of code: int t = asprintf (&objname, "%...@0x%" PRIx64, file->name, (int64_t) file->offset); IRIX 6.5 only defines PRIx64 in <inttypes.h> inside __c99. Unless we compile the lto-plugin in C99 mode (which isn't guaranteed to be available in the bootstrap compiler), this won't work. Besides, the plugin is useless on IRIX 6.5 anyway since neither gold nor gld work (cf. PR target/43533).