This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [C++] System Requirements


On 17/12/13 06:02, Ben Longbons wrote:
On Mon, Dec 16, 2013 at 6:29 PM, Andrew Pinski <pinskia@gmail.com> 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]