1 |
Hello all, |
2 |
|
3 |
For those who aren't already aware, there is a triplet (CHOST) change |
4 |
planned for the as-yet unreleased 17.0 profiles for ARM, affecting |
5 |
armv6j and armv7a hardfloat systems. Basically, the triplet will change |
6 |
from armv7a-hardfloat-linux-gnueabi to armv7a-unknown-linux-gnueabihf |
7 |
or similar. I won't bore you with the full history behind this but it |
8 |
is to fall in line with what the rest of the community are now using. |
9 |
Red Hat is one notable exception but they don't differentiate between |
10 |
hardfloat and softfp in their triplet at all. |
11 |
|
12 |
slyfox has rightly asked why we should put users through the trouble of |
13 |
migrating when GCC doesn't care either way when you build it; you have |
14 |
to explicitly request hardfloat using --with-float=hard as we do in |
15 |
toolchain.eclass. The main reason is LLVM. mgorny valiantly tried to fix |
16 |
LLVM to support our triplets but while upstream were somewhat |
17 |
supportive of this effort, he ultimately gave up because it proved too |
18 |
difficult. I have also seen issues arising from our unusual triplets |
19 |
when cross-compiling. There seems little point in fighting the trend. |
20 |
Of course, few users cross-compile and few ARM users have LLVM |
21 |
installed. I myself do not have it on my system. |
22 |
|
23 |
I therefore suggest a compromise. In the news item announcing this, |
24 |
rather than stating that users *must* migrate, not that we could force |
25 |
them to anyway, we will state that users should migrate but they can |
26 |
choose not to if they don't need LLVM and we will continue to support |
27 |
this to some extent. |
28 |
|
29 |
My initial migration guide was rather scary as changing CHOST is never |
30 |
easy and I was concerned that such a guide was never going to be |
31 |
sufficiently palatable for a news item. I didn't expect to be able to |
32 |
script it up but I gave it a shot and I'm actually quite happy with |
33 |
the result. I've run it on the newest (but quite old) glibc stage3, the |
34 |
newest musl stage3, and the newest glibc hardened stage3. All went |
35 |
well. It aborts on failure but allows you to rerun it if necessary and |
36 |
it will skip the time-consuming builds that have already completed. |
37 |
Please give it a try if you can and leave some feedback. |
38 |
|
39 |
Obviously we will need new stage tarballs so that new systems can start |
40 |
with the new triplet. The official arm stage tarballs are ancient and I |
41 |
have already prepared new stages for armv7a/glibc and armv6j/musl. |
42 |
veremitz has been busy building others. The RelEng team has agreed to |
43 |
put these up once the profiles go live. Hopefully regular stage |
44 |
auto-builds will return in the near future. |
45 |
|
46 |
I will now follow up this mail with others tagged [arm17] containing: |
47 |
|
48 |
1. The news item (including a link to the migration script) |
49 |
2. A toolchain-funcs.eclass patch |
50 |
3. A crossdev patch |
51 |
|
52 |
Catalyst will need updating too but I will leave it to the RelEng team |
53 |
to decide whether they want to update the existing specs or create new |
54 |
ones. |
55 |
|
56 |
Cheers, |
57 |
-- |
58 |
James Le Cuirot (chewi) |
59 |
Gentoo Linux Developer |