C++ conversion status update

Pedro Alves <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <[email protected]>
Hi all,

[Project page here: https://sourceware.org/gdb/wiki/cxx-conversion]

Good news, we've reached a significant milestone on the C++ conversion -- on
a few important hosts, GDB now builds cleanly as a C++ program with no
hacks.  These are at least:

 - Aarch64 GNU/Linux
 - ARM GNU/Linux
 - x86 GNU/Linux
 - x86_64 GNU/Linux
 - x86_64 Mingw-w64

In addition, the testsuite shows no regressions in C++ mode, compared to C mode.

Up until recently, we were still using g++'s -fpermissive switch as a shortcut.
That allowed deferring fixing a huge number boring cast and enum conversion issues.
Most of those issues are now fixed, and since the hosts above cover most of
the common, non-host-specific code, we changed the build system to no longer
use g++'s -fpermissive switch, and at the same time, made C++ mode default to
build with -Werror too, just like C mode.  Big thanks goes to Simon Marchi,
Yao Qi and others for all the help.

There's still a lot of work ahead though.  Until all supported hosts can build
with a C++ compiler, we'll have to keep supporting building GDB as a C program
as well.  It's not sufficient to say "builds cleanly on GNU/Linux", because
each architecture+OS combination (ARM GNU/Linux, x86 Windows, etc.) has it's
own set of native debugger support files (the *-nat.c files) that are not built
on any other host.

The plan I propose next is to default to building in C++ mode on hosts
that are known to build cleanly in C++ mode.  Or rather, change the default
to be C++ mode, _except_ for hosts/ports that haven't been converted yet.
Then, as ports get converted, one by one they'll be removed from
the "can't do C++ yet" list.  That gives us a defined stopping point -- when
the list becomes empty, and after a reasonable period, we can decide to remove
support for building in C mode and start making use of C++ features.

The question I have is which hosts (Architecture + OS combination) people
care about that still need C++ conversion work and thus should be on
that list?

This is where anyone can help!

I've created the "users/palves/cxx-conversion" branch (on sourceware.org)
where I committed a patch that implements the list idea.  I filled in
a set of hosts that I _thought_ wouldn't build, but I don't really know
for sure.

So I'd like to invite people to try to build master on their favorite
host with --enable-build-with-cxx, and report back the result.

Thanks,
Pedro Alves
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.