[Bug 461793] Review Request: spu-gcc - Cross Compiling GNU GCC targeted at spu

bugzilla at redhat.com bugzilla at redhat.com
Tue Jul 14 17:59:34 UTC 2009


Please do not reply directly to this email. All additional
comments should be made in the comments box of this bug.


https://bugzilla.redhat.com/show_bug.cgi?id=461793


Ulrich Weigand <uweigand at de.ibm.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |uweigand at de.ibm.com




--- Comment #9 from Ulrich Weigand <uweigand at de.ibm.com>  2009-07-14 13:59:32 EDT ---
Unfortunately Jochen is no longer with IBM; I'll see if I can continue the work
he has started in order to get SPU toolchain packages into Fedora.  (I did the
Cell SDK compiler packages that Jochen's Fedora packages were based on.)

As to building gcc/newlib in a combined tree, this is currently broken (there's
at least latent breakage on all platforms, and it definitely does not work on
SPU).

The reason for this is that in the combined tree, GCC attempts to use header
files from newlib sources to mimic the set of files you'd get in a real newlib
install.  This is supposed to work by adding the following include directories:
 -isystem $(build)/$(machine)/newlib/targ-include
 -isystem $(src)/newlib/libc/include

The targ-include directory is supposed to be populated by the newlib Makefile
to hold the target-specific headers as they'll be installed.

Unfortunately, it seems there is some build-order problem with the current
top-level Makefile, which causes the targ-include directory not to be populated
before the GCC target libraries are built.

Therefore, we only get machine-independent headers; all machine-dependent
headers are missing.  On the SPU, (at least) one of those headers is critical;
if it is missing, common newlib header code runs into an #error.  (On other
platforms, I guess the problem is still present in some latent form.)


I guess one could try and fix these issues to get the combined tree build
working again.  It simply looked easier for us to build the packages
separately, because it seemed the combined tree is no longer frequently used
(which explains why it tends to get broken).

Note that for a bootstrap sequence of separate packages you do not necessarily
need binary contents: you could do a "spu-newlib-headers" package that just
contains newlib headers as appropriate for the target (copied in the proper
sequence from newlib sources), followed by a "spu-gcc" that just uses this
headers package, and then build a full "spu-newlib".  (This is what OpenSUSE
currently does, IIRC.)

In the alternative, you can do a "spu-gcc-bootstrap" that is C only and does
not require any newlib (or headers), use this to build "spu-newlib", and
finally build a full "spu-gcc".  (This seems to be what Aidan proposed.)

-- 
Configure bugmail: https://bugzilla.redhat.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.




More information about the package-review mailing list