> --enable-stage1-languages=go. (Mail to the OP is bouncing for me, by > the way.)
I don't know why. I'm getting them, at least via the list. > Since the OP is apparently seeing Go build in stage 1, I assume that the > OP is configuring with --disable-bootstrap or with Right. I thought I was clear on that. So I guess there is nothing to see here..move along..but..why the use of -fno-rtti? It seems like a guess of "more work for less good"? i.e. remove those lines in configure and more fairly reasonable stuff works? I can see maybe the opposite though. Maybe the point is to avoid poor rtti implementations in old gcc bootstrap?? Or maybe the point was to compile C, really C code, with g++, and turn off "gratituitous" C++ features that the code "doesn't even come near" (i.e. the bulk of gcc really is C that is compatible with gcc, vs. the go frontend that is currently a rare case of "actual C++". If that's the rationale, again, maybe the lines should just be removed. I understand this is much to do about very little. Heck maybe rtti and exceptions are decent enough out there that stage1 could use them?? I "always" use -disable-bootstrap. So much gain for acceptable pain. I know I'm cutting corners, but I'm in active development of very small changes. My bootstrap compiler isn't super wierd/bad, just a somewhat old gcc/g++. (I have relatively recently bootstrapped from K&R cc on HP-UX though gcc 3.x to get to gcc 4.x, and buggy compilers I think on Irix that slightly miscompile GNU make, forcing one to loop back with gcc and rebuild make and then rebuild gcc (maybe in-tree the first time, I forget..I should check my notes..).. But anyway... I don't want to change a header and have make go through and build the compiler multiple times. I have enough problems with incrementality building way too much..that I should look into.. I really just wanted to step through gccgo to understand its implementation to inform my own front end work. (Yes, go is certainly an interesting hybrid -- native code + static compilation + static typing + C-like syntax + garbage collection + fast compilation via a good module system instead of the C preprocessor toiling over the same million lines repeatedly... -- you don't see that often. :) Thank you, - Jay ---------------------------------------- > From: i...@google.com > To: g...@integrable-solutions.net > CC: jwakely....@gmail.com; jay.kr...@cornell.edu; gcc@gcc.gnu.org > Subject: Re: -fno-rtti in configure.ac breaks building go? (older g++, > -disable-bootstrap) > Date: Sun, 20 May 2012 22:41:08 -0700 > > Gabriel Dos Reis <g...@integrable-solutions.net> writes: > > > On Mon, May 21, 2012 at 12:08 AM, Ian Lance Taylor <i...@google.com> wrote: > >> Gabriel Dos Reis <g...@integrable-solutions.net> writes: > >> > >>> On Sun, May 20, 2012 at 10:30 PM, Ian Lance Taylor <i...@google.com> > >>> wrote: > >>> > >>>> To be clear, as far as I can see the Go frontend isn't doing anything > >>>> wrong or dubious. It just happens to #include <tr1/unordered_map> when > >>>> it is available but <unordered_map> is not. It looks like in gcc 4.0 > >>>> you can not #include <tr1/unordered_map> when using -fno-rtti. > >>>> > >>>> We could work around this by changing gcc/configure.ac to check whether > >>>> that #include <tr1/unordered_map> works with -fno-rtti. If that fails, > >>>> the Go frontend will next try <ext/hash_map>. > >>> > >>> Is it unacceptable for the Go front-end to use the stage1 g++, especially > >>> as we are moving toward switching to C++? > >> > >> The Go frontend does use the stage1 g++. > >> > >> I assume that this error can only occur when using --disable-bootstrap > >> or when building Go in stage 1. I don't see how this error could occur > >> when building stages 2 or 3 of a bootstrap. > > > > OK. In that case, maybe make Go build only in stage2. > > > By default, Go will only build in stages 2 and 3. > > Since the OP is apparently seeing Go build in stage 1, I assume that the > OP is configuring with --disable-bootstrap or with > --enable-stage1-languages=go. (Mail to the OP is bouncing for me, by > the way.) > > That is, normally, everything should be fine. But if you use unusual > configure options you can definitely get into unusual cases. Ideally > those cases should be made to work if possible. It's not very > important, though. > > Ian