Re: mailing list for cross build issues created
+++ Matthias Klose [2013-08-21 22:31 +0200]: > Today the debian-cr...@lists.debian.org ML was created. > Please subscribe to this list if you are interested in cross build issues. Here: https://lists.debian.org/debian-cross/ Wookey -- Principal hats: Linaro, Emdebian, Wookware, Balloonboard, ARM http://wookware.org/ -- ubuntu-devel mailing list ubuntu-devel@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
Re: arm64 Debian/Ubuntu port image available
+++ Wookey [2013-02-27 02:10 +]: > State of the Debian/Ubuntu arm64 port > = > > *** Arm64 lives! *** > > Executive summary > - > > * There is now a bootable (raring) image to download and run > * A bit more work is needed to make the rootfs useable as a native buildd Networking and apt, and various bits of breakage was fixed shortly after the initial upload. After some jolly hacking at Connect, with much help from Doko, we got the build and install dependencies of debhelper (what a lot of crap it (recursively) needs!) crossed and uploaded, and fixed some missing perl bits, so I have now successfully built the 'hello' package with the image. It's such fun to watch configure scroll by one line at a time for about an hour Cross-building stuff: Ian Campbell also got the Xen arm64/aarch64 cross-build working for raring (not yet integrated into the packaging), using the info on https://wiki.linaro.org/Platform/DevPlatform/CrossCompile/arm64bootstrap without too much aggravation (libyajl needed to be cross-fixed first), so the environment is already useful for building and getting stuff cross-ready, so long as you don't have too many build-deps. Feedback from anyone else who tries this is welcome. > The images are available for download: > http://wiki.debian.org/Arm64Port#Pre-built_Rootfs > Along with destructions there for making your own. Wookey -- Principal hats: Linaro, Emdebian, Wookware, Balloonboard, ARM http://wookware.org/ -- ubuntu-devel mailing list ubuntu-devel@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
Re: arm64 Debian/Ubuntu port image available
+++ Ian Campbell [2013-02-27 12:00 +]: > On Wed, 2013-02-27 at 02:10 +0000, Wookey wrote: > > > > Setting up an arm64 build environment is very simple. Use > > sbuild-createchroot or mk-sbuild > > and point at the bootstrap repo, with a bit of config and some updated > > tools packages from > > the repo (amd64 only supplied). Details are given on > > https://wiki.linaro.org/Platform/DevPlatform/CrossCompile/arm64bootstrap > > I think these are missing a "dpkg --add-architecture arm64" at some > point before apt-get update / install crossbuild-essential-arm64 ? Yes, good point. Now fixed on the wiki page, along with some s/quantal/raring/ Sbuild will do this for you before updating/installing, but when doing stuff manually in the chroot (as those instructions suggest for pre-installing crossbuild-essential-arm64) you do indeed need to add the foreign architecture(s). > I tried to adjust those instructions to something similar for Sid + the > debian-bootstrap repo but there were unmet dependencies of > crossbuild-essential-arm64 (libc, pkgbinarymangler), but I get the > impression that is to be expected at this stage? You won't get anywhere in Sid at the moment: No prebuilt cross-toolchain, and some of the multiarch info missing. If you actually want to _use_ this (as opposed to fix it) then it has to be raring. I had to choose between getting this working in vaguely finite time and keeping both Debian and Ubuntu bootstraps in sync, so unstable just got stuck at the 'toolchain bootstrap needed' stage. Is raring useful to you or do you need sid? Once the toolchain is done it shouldn't be _too_ much work to get Debian uptodate although there will be a _lot_ of patched packages. Wookey -- Principal hats: Linaro, Emdebian, Wookware, Balloonboard, ARM http://wookware.org/ -- ubuntu-devel mailing list ubuntu-devel@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
arm64 Debian/Ubuntu port image available
State of the Debian/Ubuntu arm64 port = *** Arm64 lives! *** Executive summary - * There is now a bootable (raring) image to download and run * Everything has been rebuilt against glibc 2.17 so it works * A bit more work is needed to make the rootfs useable as a native buildd * Multiarch crossbuilding and the build-profile mechanism is mature enough to cross-build a port from scratch (this is a big deal IMHO) * All packages, sources and tools are in a public repo and this work should be reproducible. * This image is fully multiarched so co-installing armhf for a 64/32 mix should work nicely, as should multiarch crossbuilding to legacy x86 architectures. :-) (but I haven't tried that yet...) * Linaro wants 'the distros' to take this work forward from here so people interested in Debian and Ubuntu on 64-bit arm hardware need to step up and help out. Bootable images --- A milestone was reached this week: Enough packages were built for arm64 to debootstrap an image which booted to a prompt! After a bit of fettling (and switching to multistrap) I got an image with all the packages configured which boots with upstart to a login prompt (I admit, I did get quite excited about this, as it represents the coming together of nearly 3 years work on multiarch, crossbuilding, bootstrapping, cyclic dependencies and arm64 :-) The images are available for download: http://wiki.debian.org/Arm64Port#Pre-built_Rootfs And there are destructions there for making your own. All these packages were cross-built on raring, untangling cyclic dependencies with build profiles (see wiki.debian.org/DebianBootstrap for how that works), making this the first (non x86) self-bootstrapped debian port ever (so far as I know). All (?) previous ports have been done using something else like OpenEmbedded (armel, armhf), RedHat/HardHat (arm, alpha, mips), something IBMy (s390) to get an initial linux rootfs on which debian packages are built. The new bootstrap process is (almost) just a list of sbuild commands. In practice there are still a few rough edges around cross- build-dependencies so of the 140 packages needed for the bootstrap, 9 had to be built manually with 'dpkg-buildpackage -aarm64 -d' (to skip build-dep checks) instead of 'sbuild --host arm64 '. The current bootstrap packageset status is here: http://people.linaro.org/~wookey/buildd/raring-arm64/status-bootstrap.html There is no armv8 (arm64/aarch64) hardware available yet, so this image can currently only be run in a model. ARM provide a free-beer prorietary 'Foundation model' so we do have someting to test with. It's sluggish but perfectly useable. Booting the images takes a couple of minutes on my fairly average machine. The images are using the Linaro OE release kernels which seem to work fine for this purpose. Thanks to Marcin for modified bootloader lines in .axf files. Image status I was impressed that things basically 'just worked' on first boot. There is of course plenty of breakage, I'm sure, and I haven't looked very hard yet, but it's a lot better than I expected after months of just building stuff and testing nothing. (Things that are poorly: nano can't parse it's own syntax-coluring files for example, and multiarch perl has the wrong @INC path compiled in; I'm sure there is more). Consider this alpha-grade until it's been used a bit more. Things that are not yet built which would make the images a lot more useful are apt and a dhcp client. apt needs gnupg needs curl needs nss. The nss cross-build needs fixing to unbung that. A debian chroot without apt turns out to be disappointing quite quickly :-) Expect an updated image with more packages very soon. Multiarch crossbuilding --- It's really nice to have building and crossbuilding using exactly the same mechanisms and tools, with all files having one canonical location, and dependency mechanisms that are reliable. The more I've used this, the more I've been impressed by it. There is still work to do to expand the set of cross-buildable stuff, but it's a solid base to work from. Getting this port working has been 'interesting' because it's attempting 4 new things all at once: multiarch (file layouts and dependencies), crossbuilding (tools and packaging support in a distro that historically was always natively built), arm64 (aarch64) support in packages that need it, and build-profiles to linearise the build-order. The arm64 part of this is a relatively small part as the heavy lifting has been done upstream (gcc, (e)glibc, binutils, kernel, libffi, autotools and a lot of minor fixes in various packages). Thanks are due to doko (Matthias Klose) for sterling work getting all that integrated into the deb
Installable ARMv8 cross-toolchain
After a fair amount of dicking about I have managed to build a cross-toolchain for arm64/aarch64 which installs on Ubuntu Quantal. It even builds packages, although it has at least one notable limitation, and I have no idea if it produces working code yet :-) The main limitation is that the default library search paths have come out as the old dpkg-cross ones, not the new multiarch ones. If someone can tell me where to fix that it would be very helpful and I'll try and put an updated one in the repo. In the meantime you can work round it effectively using /etc/dpkg/buildflags. (see wiki page below for details) The cross-toolchain only supports C, C++ and fortran with no extras like libssp, libmudflap etc, because there is no architecture support for them yet. I started a port page to keep track of things here: http://wiki.debian.org/Arm64Port And if you want to set up a quantal chroot and see if you can build things, details are here: https://wiki.linaro.org/Platform/DevPlatform/CrossCompile/arm64bootstrap The bottom line is that you can debootstrap (or sbuild-createchroot) a quantal chroot, add the bootstrap repo and do 'apt-get install crossbuild-essential-arm64' and get a working cross-build environment. The repo is here: http://people.debian.org/~wookey/bootstrap.html That should be useable for both dpkg-cross style bulding or multiarch-style bulding. The repo also contains updated dpkg-cross, multiarch python, multiarch perl, updated dpkg with buildprofile/staging support, sbuild (although in fact I think stock sbuild should work OK), and dose-builddebcheck which can tell you what things are currently cross-buildable from available binaries and sources. Most of that is pretty new and not very well tested but 'it works for me'. More arm64 packages will be along soon (dose3 currently indicates 40 more buildabale packages), but there is plenty still to fix for a full debootstrap-able arm64 package set. Anyone keen to help with bootstrapping the port is very welcome. There will be a session about it at UDS next week, and a more general one on distro bootrapping at the Armv8 minisummit a the co-located linaro connect. And I'll be giving a talk about this stuff at Linxconf-Europe in Barcelona the week after. I think that's all for now. Enjoy, and tell me what breaks :-) Wookey -- Principal hats: Linaro, Emdebian, Wookware, Balloonboard, ARM http://wookware.org/ -- ubuntu-devel mailing list ubuntu-devel@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
ARM porting jam on friday (right now!)
Friday is the day to come fix ARM bugs. Apparently we still have some! (110 in total, 90 FTBFS): http://people.linaro.org/~rsalveti/arm-porting-queue/arm-porting-queue-report.html And all this work is showing results: the sun came out in Debian armhf (meaning that 99% of the archive is installable): http://edos.debian.net/weather/weather.php?distro=testing&arch=armhf (Is anyone running edos-distcheck on Ubuntu?) The ongoing 'make multiarch cross-building work' process is also still running and there are still easy pickings: Logfiles: http://people.linaro.org/~wookey/buildd/precise/sbuild-ma/status.html Overview: https://wiki.linaro.org/Platform/DevPlatform/CrossCompile/MultiarchCrossBuildStatus HOWTO: http://wiki.debian.org/Multiarch/CrossDependencies (now that the release is close non-trivial fixes should go in Debian, rather than Ubuntu) Pick a bug, and come along to #linaro @ freenode to claim glory or ask advice. Wookey -- Principal hats: Linaro, Emdebian, Wookware, Balloonboard, ARM http://wookware.org/ -- ubuntu-devel mailing list ubuntu-devel@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
ARM porting jam on Friday
Still plenty of things to fix, and not long till release-time. Friday is the day to come fix some ARM bugs. You know you want to. You have a choice between the usual FTBFS issues listed here: http://people.linaro.org/~rsalveti/arm-porting-queue/arm-porting-queue-report.html and multiarch cross-dependency/cross-building issues summarised here: https://wiki.linaro.org/Platform/DevPlatform/CrossCompile/MultiarchCrossBuildStatus with logfiles here http://people.linaro.org/~wookey/buildd/precise/sbuild-ma/status.html There is a pile of stuff, much of which is _really easy_. This page tells you all you need to know for filing simple multiarch metadata bugreports: http://wiki.debian.org/Multiarch/CrossDependencies Please come along to #linaro @ freenode and get stuck in with a few bugs. Wookey -- Principal hats: Linaro, Emdebian, Wookware, Balloonboard, ARM http://wookware.org/ -- ubuntu-devel mailing list ubuntu-devel@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
Does anyone care about LSB on arm?
lse we might be fixing, and if so, who is volunteering to get involved? ( Jon Masters and I have both expressed interest but are not exactly brimming over with spare time. Any more for any more?) Opinions welcome. Wookey -- Principal hats: Linaro, Emdebian, Wookware, Balloonboard, ARM http://wookware.org/ -- ubuntu-devel mailing list ubuntu-devel@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel