Bug 49797 - CLooG use of LANGUAGE_C conflicts with MIPS compilers
Summary: CLooG use of LANGUAGE_C conflicts with MIPS compilers
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: bootstrap (show other bugs)
Version: 4.7.0
: P3 normal
Target Milestone: 4.7.0
Assignee: Rainer Orth
URL: http://gcc.gnu.org/ml/gcc-patches/201...
Keywords:
Depends on:
Blocks:
 
Reported: 2011-07-20 16:17 UTC by Rainer Orth
Modified: 2012-06-29 18:49 UTC (History)
2 users (show)

See Also:
Host: mips-sgi-irix6.5
Target: mips-sgi-irix6.5
Build: mips-sgi-irix6.5
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Rainer Orth 2011-07-20 16:17:16 UTC
When trying a mips-sgi-irix6.5 bootstrap with C++ in stages 2 and 3, I failed
due to an issue that had been hidden previously: I'm building with ppl/cloog.
Building ClooG initially failed since gcc (or any compiler on MIPS) predefines
LANGUAGE_C, which is also used by <cloog/pprint.h>.  As a hack, I renamed those
defines to CLOOG_LANGUAGE_C and CLOOG_LANGUAGE_FORTRAN, not noticing that
graphite-clast-to-gimple.c has a use of LANGUAGE_C and now got the wrong value.

When compiling with g++, LANGUAGE_C isn't defined any longer and the build breaks:

/vol/gcc/src/hg/trunk/local/gcc/graphite-clast-to-gimple.c: In function 'CloogOptions* set_cloog_options()':
/vol/gcc/src/hg/trunk/local/gcc/graphite-clast-to-gimple.c:1309:23: error: 'LANGUAGE_C' was not declared in this scope
make[3]: *** [graphite-clast-to-gimple.o] Error 1

The question is how best to fix this?  One might change upstream CLooG to use
CLOOG_LANGUAGE_C instead to avoid the clash, test for that in graphite-clast-to-gimple.c
and require MIPS users to upgrade or fix their local copies?
Comment 1 Rainer Orth 2011-07-22 08:49:27 UTC
Author: ro
Date: Fri Jul 22 08:49:23 2011
New Revision: 176618

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=176618
Log:
	PR bootstrap/49797
	* graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
	(set_cloog_options): Use it.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/graphite-clast-to-gimple.c
Comment 2 Rainer Orth 2011-07-22 08:50:40 UTC
Fixed for 4.7.0.
Comment 3 Matt Hargett 2012-04-23 22:19:35 UTC
Can you please back port this to 4.6 as well? Running into this on Scientific Linux 6.1 on x64 with GCC 4.6 trunk and latest cloog-isl and ppl. Thanks!
Comment 4 ro@CeBiTec.Uni-Bielefeld.DE 2012-05-08 15:54:15 UTC
> --- Comment #3 from Matt Hargett <matt at use dot net> 2012-04-23 22:19:35 UTC ---
> Can you please back port this to 4.6 as well? Running into this on Scientific
> Linux 6.1 on x64 with GCC 4.6 trunk and latest cloog-isl and ppl. Thanks!

Why would this be relevant to Linux/x64?  AFAIK use of LANGUAGE_C is a
mips-only feature.

	Rainer
Comment 5 Matt Hargett 2012-05-11 17:58:27 UTC
It's not an IRIX-specific thing AFAICS, but rather that newer versions of cloog/ppl renamed the macro to avoid conflicts on IRIX. 4.6 still checks for the old macro name, which is no longer set. I have applied the patch locally to work around the issue and can verify it solved the problem for me.

Let me know if there's anything else you'd like me to test/validate to get it back ported.
Comment 6 Matt Hargett 2012-06-29 18:49:35 UTC
Pinging on this again since this patch has been back ported to a couple of 4.6-based branches now. Anyone attempting to use a recent cloog release with GCC 4.6 will run into this problem. It is incredibly low-risk in an of itself, and I can verify that it works with both latest cloog and the previous release.