PR81878: fix --disable-bootstrap --enable-languages=ada
authorAlexandre Oliva <oliva@adacore.com>
Tue, 20 Nov 2018 00:07:47 +0000 (00:07 +0000)
committerAlexandre Oliva <aoliva@gcc.gnu.org>
Tue, 20 Nov 2018 00:07:47 +0000 (00:07 +0000)
commitf4c53af18b727109faac7203eeb192bbbac2903d
tree44ef6ef0fd997ec5a8a98c4e447f94a4e7823ae2
parent502e897d1afa16df33326d255120d7cd15df9363
PR81878: fix --disable-bootstrap --enable-languages=ada

gnattools build machinery uses just-build xgcc and xg++ as $(CC) and
$(CXX) in native builds.  However, if C and C++ languages are not
enabled, it won't find them.  So, enable C and C++ if Ada is enabled.
Most of the time, this is probably no big deal: C is always enabled
anyway, and C++ is already enabled for bootstraps.

We need not enable those for cross builds, however.  At first I just
took the logic from gnattools/configure, but found it to be lacking:
it would use the just-built tools even in cross-back settings, whose
tools just built for the host would not run on the build machine.  So
I've narrowed down the test to rely on autoconf-detected cross-ness
(build->host only), but also to ensure that host matches build, and
that target matches host.

I've considered sourcing ada/config-lang.in from within
gnattools/configure, and testing lang_requires as set by it, so as to
avoid a duplication of tests that ought to remain in sync, but decided
it would be too fragile, as ada/config-lang.in does not expect srcdir
to refer to gnattools.

for  gcc/ada/ChangeLog

PR ada/81878
* gcc-interface/config-lang.in (lang_requires): Set to "c c++"
when gnattools wants it.

for  gnattools/ChangeLog

PR ada/81878
* configure.ac (default_gnattools_target): Do not mistake
just-built host tools as native in cross-back toolchains.
* configure: Rebuilt.

From-SVN: r266290
gcc/ada/ChangeLog
gcc/ada/gcc-interface/config-lang.in
gnattools/ChangeLog
gnattools/configure
gnattools/configure.ac