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