https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81878

--- Comment #54 from Alexandre Oliva <aoliva at gcc dot gnu.org> ---
Author: aoliva
Date: Tue Nov 20 00:07:47 2018
New Revision: 266290

URL: https://gcc.gnu.org/viewcvs?rev=266290&root=gcc&view=rev
Log:
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.

Modified:
    trunk/gcc/ada/ChangeLog
    trunk/gcc/ada/gcc-interface/config-lang.in
    trunk/gnattools/ChangeLog
    trunk/gnattools/configure
    trunk/gnattools/configure.ac

Reply via email to