weirdness with ada/Make-lang.in on 3.4 branch

Jim Wilson wilson@specifixinc.com
Tue Mar 16 20:14:00 GMT 2004


Joel Sherrill wrote:
> make                make install       if ada
>  make cross-gnattools
>  make ada.all.cross
>  make gnatlib  make install
> 
> This used to use the LANGUAGE override to avoid getting ada at all.
> Now the above procedure ends up with gnat1 installed as before the
> "if ada" and the 1st make install gets confused because there is a
> gnat1 but no gnatmake.

This idiom is used in many places in the Ada Make-lang.in file, so it 
isn't just gnatmake that is a problem.

Deleting the native gnatmake if it wasn't built seems like a generally 
useful thing to do, otherwise, you might end up with incompatible gnat1 
and gnatmake installed if you really are building a native.  So if we 
modified the Ada Makefile, I think we would have to add explicit tests 
for native/cross builds, and then it will get a bit more complicated. 
It isn't clear that the extra complexity is worthwhile.

I think the proper solution would be to reorganize the Ada support so 
that gnatlib and gnattools and separate top level directories.  One can 
then adjust the order of building them so that they build after newlib. 
  We could also then pass in flags so that they can find and use newlib 
in the build tree such as is done for other libraries.  We have been 
waiting for this for a long time already though.

Meanwhile, you could avoid the mess if you use the --enable-languages= 
configure option.  This means you have to configure and build gcc twice. 
  The first time you only build C and newlib.  The second time you build 
everything.  This has the advantage that some libgcc stuff will be built 
that otherwise might not be, such as the profiling support.  This gets 
you back something similar to what you had when you used LANGUAGES.
-- 
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com



More information about the Gcc mailing list