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).

Reply via email to