Re: [Bug ada/64492] New: Disabling libada prevents building gnattools-cross

2015-01-05 Thread Arnaud Charlet
> Unfortunately you can???t build the cross gnattools, because
> --disable-libada
> adds gnattools to the list  of unconfigured directories, which means that
> the
> directory gcc/ada/tools is never created, let alone populated.
> gcc/ada/gcc-interface/Makefile.in touches stamp-tools, but that???s
> all.

You can actually. The way to build gnattools when using --disable-libada is
to do:

  obj $ make -C gcc cross-gnattools ada.all.cross

Arno


[Bug ada/64492] New: Disabling libada prevents building gnattools-cross

2015-01-04 Thread simon at pushface dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64492

Bug ID: 64492
   Summary: Disabling libada prevents building gnattools-cross
   Product: gcc
   Version: 4.9.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: ada
  Assignee: unassigned at gcc dot gnu.org
  Reporter: simon at pushface dot org

Created attachment 34375
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=34375&action=edit
Patch to add --enable-cross-gnattools

This is related to PR19959.

--disable-libada is necessary for targets (such as arm-eabi) where the RTS
isn’t distributed as part of GCC. Of course, you still need the cross gnattools
(such as arm-eabi-gnatls).

Unfortunately you can’t build the cross gnattools, because --disable-libada
adds gnattools to the list  of unconfigured directories, which means that the
directory gcc/ada/tools is never created, let alone populated.
gcc/ada/gcc-interface/Makefile.in touches stamp-tools, but that’s all.

You can’t say "make -C gcc gnattools-cross", because that’s in gnattools/. You
can’t say “make -C gcc cross-gnattools”, because the gcc/ada/tools directory
doesn’t exist.

Why does gcc/ada/gcc-interface/Makefile.in touch ../stamp-tools?
Where does the target cross-gnattools come into the picture?

I attach a patch to the top-level configure.ac which adds a new switch
--enable-cross-gnattools.

If you configure with --disable-libada, gnattools is removed from the list of
configured directories unless
* you give --enable-cross-gnattools
* and you are building a cross compiler
* and the target vendor is “none” or “unknown”.

With this patch, the normal configure/make runs through and builds the cross
gnattools without further ado. Tested on 4.9.1, --target=arm-eabi. The patch
applies to the gcc-5-20141228 snapshot with a 17-line offset.