I hit an error using g++ 3.3 to bootstrap on Darwin/ppc and configure -enable-build-with-cxx -enable-checking=... ../../gcc-4.5/gcc/alias.c: In function `rtx_def* find_base_value(rtx_def*)': ../../gcc-4.5/gcc/alias.c:1008: error: cannot convert `rtx_def*' to `const case PLUS: case MINUS: { rtx temp, src_0 = XEXP (src, 0), src_1 = XEXP (src, 1); <== this line I suggest therefore rtl.h: < #if defined ENABLE_RTL_FLAG_CHECKING && GCC_VERSION > 2007 > #if defined ENABLE_RTL_FLAG_CHECKING && ((!defined(__cplusplus) && GCC_VERSION > 2007) || GCC_VERSION > 3003) #define RTL_FLAG_CHECK1(NAME, RTX, C1) __extension__ \ or even just: > #if defined ENABLE_RTL_FLAG_CHECKING && GCC_VERSION > 3003 or like, not necessarily in rtl.h: #if GCC_VERSION <= 3003 #undef ENABLE_RTL_FLAG_CHECKING or #if GCC_VERSION <= 3003 && defined(__cplusplus) #undef ENABLE_RTL_FLAG_CHECKING Some allowance might be made for other compilers that implement the extensions though? Or, in C++, maybe use extensions less? e.g. inline functions might suit? Thanks, - Jay
I put #define ENABLE_CHECKING_GCC_VERSION ((GCC_VERSION > 3003) || (!defined(__cplusplus) && (GCC_VERSION > 2007))) in include/ansidecl.h after #define GCC_VERSION and I && this with the #if FOO_CHECKING in rtl.h, tree.h, ira-int.h. Alternatively, reject g++ < 3.4 entirely, or if enable-checking. Or, well, I'm using -disable-bootstrap, and probably checking is never enabled in the first phase anyway, so this all would just work if I didn't use that. The patch is ok, but it might never make a difference if I didn't -disable-bootstrap. But I really really really like -disable-bootstrap, given how little I build, which is still a very useful amount, it saves a ton (just libbackend.a and a small frontend, no libraries, and I patched out gmp/mpfr/mpc dependencies, so overall build is short even on slower machines (we run a range of machines..)).
It's been over 6 years since this report was raised and GCC 4.5 is no longer maintained Have things improved with a currently supported version (GCC 4.8 or preferably later)?
You cannot build GCC 11+ without C++11 support so this is a won't fix at this point.