[ Based heavily on notes from
http://summit.linaro.org/lce12/meeting/21345/armv8-mini-summit-4/
but etherpad data has a lovely habit of going away over time... ]
This was an AArch64-specific distribution planning and discussion session on Tuesday morning as part of the v8 mini-summit; there was also a general cross-distro session on Monday for discussion about ARM issues. I've already posted those minutes.
Familiar faces from Debian, Red Hat, SuSe and Ubuntu lead a discussion about the where these distributions have got with thinking about AArch64, the challenges that they face and how the community can get involved
Recap of cross-distro session on Monday:
* Project is set up for sharing bugs and patches for ARMv8. * Suggested way of working is to file a bug in distro-specific bug tracker, and also one in the common bug trackers. * There is already a Linaro cross-distro mailing list - currently very low traffic.
AArch64 support in packages ===========================
Biggest issue seen to date (Fedora) is the number of packages that have not reconfigured to pick up the aarch64 target. Jon suggested using an LWN article perhaps to publicise the need for upstream code to update their config.
* There has been some discussion as happened on autoconf mailing list to try and get around the non-update of many packages config * Using autoreconf automatically for all packages is a big risk, but might kinda work for the time being? (This is what happens by default in OE, with a blacklist to disable autoreconf where it's known to break.) * There remains the issue of getting the upstream packages fixed * Identifying which packages need to be fixed is not a simple task * Suggestion: start with a list of those packages which absolutely require fixing (on Linaro wiki), handle many cases using a change to autoconf to use a config variable
Cross-distro compatibility ==========================
How do we make sure that software built on one distro can install and run on others?
* Key aspects are decided already: the GNU triplet and the runtime linker path (phew!) * Jon suggests using LSB to provide that compatibility baseline. It might be a large piece of work. Some ARMv8 market segments are likely to require LSB, so this work will have to be done.
* Need regular (monthly) testing of sets of binaries across other distros - don't wait for LSB. Contents of the test set TBD later, but start from something simple. Perhaps hello-world, binutils, gcc, perl, python, ruby. Maybe run a regular bake-off/plug-fest?
* How do we get distro images while the distros are under construction? Should Linaro do this or should each distro run the tests from other distros on their own images?
Consensus seems to be that Linaro can help with the testing, writing scripts etc. to do some of the work, but it's up to the distros to share their images and software periodically then do the N-way testing.
Fedora has a git repo of the file system, and plans to provide tarballs of this in the future.
Issues/problems? ================
Is anything blocking progress for the building?
* What's the timeline for QEMU?
+ It requires enough details about the instruction set (ARMv8 Architecture Architecture Manual) + Who would do this work? + Linaro could/should provide some coordination of the effort.
* There's (obviously) no hardware available yet. Using models to build software is not very attractive!
+ How much do you need before you can use a highly parallel build system (lots of models)? Generally, the number seems to be 300 packages (except Fedora with systemd's 1500 dependencies - some tinkering may be needed!). + Parallel building is still some time away...
* A decent bootloader. When will we have UEFI working?
+ People are working on it, coming Real Soon Now! + It would be nice to avoid the proliferation of boot loaders common on 32-bit ARM now
Involvement ===========
How can other developers get involved?
* The availability of the Foundation model and the initial images makes this possible
* In reality most packages do not need significant work to make them build, a small number will have to be ported to AArch64, and a larger numer will benefit from AArch64 specific code.
* With the public model and code, it makes sense to start publishing the distro code for wider use ASAP.
Next steps ==========
* At the next Connect, there should be distro code that runs on ARMv8.
* Linaro should coordinate and help with the cross-distro testing.
* Planning will be done via the cross-distro mailing list.
Cheers,