On 28 Oct 2011, at 19:01, Iain Sandoe wrote:

The sizes of items represented in s-oscons.ads can (and do) change with the multi-lib on targets that support libada as a multi-lib.

At present, s-oscons.ads is only built once (in gcc/ada) and sym- linked to rts*/

This is causing a bunch of failures on i686-darwin9 where the m64 multi-lib has generally larger structures than the m32 native.

On m64 targets with m32 multi-libs, this tends to be hidden by the fact that (generally) the m32 entities are smaller than their m64 counterparts. However, it's still wrong (at least insofar as wasting memory - if not on any more serious scale).

The attached patch moves the generation and use of the xoscons tool to the the library makefile (as suggested by Thomas) and adjusts the libada/Makefile dependency to point to this tool. The remaining dependencies should (AFAICT) be handled by the gnatlib target - which thence depends on the required objects.

I don't have that many targets to test - and would very much welcome any more-Ada-build-system-aware eyes cast over this.

This DTRT on i686-darwin9 (no unexpected fails at m64 when it's applied).

http://gcc.gnu.org/ml/gcc-patches/2011-10/msg02695.html

Reply via email to