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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.