M0 and M3 patches in linaro toolchains
Debconf13 (last week) considered the matter of bare-metal
cross-toolchains in Debian. Ideally we would have one toolchain source
package from which the existing linux native compilers, and
cross-compilers are built, including bare-metal cross-compilers. There
is already mechanism for adding patches for particular gcc builds, so
so long as the patch set is manageable and trackable, this would be
nice, and futureproof, as eventually the patch set should just
evaporate as it gets upstreamed.
The alternative it to simply repack the existing linaro
cross-toolchain sources, but them we get to keep doing that for new
releases, and we have gratuitous extra copies of gcc sources and
corresponding differences between A* and M* toolchains/versions.
The linaro embedded toolchains
good, and work, both for M0 and M3. But building nominally the same
thing from upstream gcc gets something where M3 works but M0 doesn't.
Also they are gcc 4.7 based whilst Debian is moving to a 4.8 default.
We peered at checkouts from linaro and upstream and tried to work out
what the linaro patch-set for this toolchain is, and exactly where it
branched off upstream, but it was confusing with a lot of noise due to
version skew around some actually relevant changes.
So, in order to work out if we can in fact build our bare-metal
toolchains from the same sources as the existing toolchains we need to
know what the actual patch-set you are maitaining looks like, and what
is already upstreamed in which gcc branch/release and when the
remaining patches will go upstream. Also what the 4.7 vs 4.8 status
is. Knowing how this stuff is tracked might be even more useful over
the longer term.
Is there such info online somewhere? If not please elaborate. A
mechanism for keeping the (newly-formed) Debian cross-compiler team
sufficiently in the loop is probably what's needed in the longer term,
unless this is all just about to get upstreamed anyway and the issue
will soon become moot...?
There was also discussion around the concept of making existing
linux-arm cross-compilers, with M0 and M3 support included, and using
spec-file jiggery-pokery to get them to DTRT for M* targets. This
should be possible, but advice from anyone who's every actually tried
on the gotchas would be good.
Principal hats: Linaro, Emdebian, Wookware, Balloonboard, ARM