Re: [C++] System Requirements
Michael Veksler <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <[email protected]> |
On 17/12/13 06:02, Ben Longbons wrote: > On Mon, Dec 16, 2013 at 6:29 PM, Andrew Pinski <[email protected]> wrote: >> I think we should support anything 3.0 and above. Since we won't be >> using STL or templates that much. > Really? I can see quite a few cases where gdb will either have to use > the STL or reinvent it; the big one is vec.h but it's far from alone. > > I know there are reasons to avoid or reimplement specific *parts* of > the STL, but I haven't seen justification to avoid it in general. > > And I think that it is quite dangerous to try to support building gdb > on a platform that its developers do not regularly use. gcc 4.4 is > common; 4.[678] is rising, and 4.1 looks supportable, just not by me. > I can't even build gcc 4.2 or earlier on any of my systems, though I > admit I haven't deeply investigated what makes them different from 4.3 > > Anyway, this sounds like a topic for the not-yet written thread [C++] > Style Guide ... the only thing I've heard is that gdb is *not* going > to follow gcc, because it has different requirements, such as > exceptions (which, incidentally, must happen before anything else in > step 5). > > > But back on topic ... I started this thread intending to ask "which > versions of GCC do we *need* to support?", not "which versions of GCC > can we afford to support?" ... I never expected anyone to defend > versions before 3.4 > > A lower GCC version requirement means that gdb maintainers will have > to spend more time trying to work around the quirks of older GCC > versions and trying to badly reimplement features that are already in > later GCC versions. > Andrew was right, and I was wrong. I confused between the pain I had when I supported gcc-2.95 (or was it egcs?) with the smaller pain of supporting gcc-3.2/gcc-3.3. It was too long ago to remember all the gory details. Nevertheless, supporting pre-gcc-3.4 compilers is still a pain. Not only because language semantics is different (two-phase name lookup in templates vs. one) but because you can't easily build old compilers on modern machines. And if you don't test your code with a pre-gcc-3.4 then your code won't work with earlier compilers. Michael