Open moreati opened 8 years ago
Just a WIP, until I find a more appropriate repo to version it in binutils-2.26-3ubuntu1cloudabi1.diff.txt
That's pretty awesome. Thanks for working on this! Quick question: how do the changes to /rules
work? HOST_ARCHS_*
: does this mean that we only build these packages for amd64, i386, x32 and arm64? Because in theory this package should be buildable/installable on any system, right?
Apart from not having found the time to work on this myself, one of the issues I have is that I am not really familiar with the procedure of how we get things like this upstream. Is it just a matter of pasting this diff into bugs.debian.org
and wait until one of the maintainers picks it up?
how do the changes to /rules work? HOSTARCHS*: does this mean that we only build these packages for amd64, i386, x32 and arm64?
I'm still getting that straight in my head.
Because in theory this package should be buildable/installable on any system, right?
Agreed
Is it just a matter of pasting this diff into bugs.debian.org and wait until one of the maintainers picks it up?
It's a bit involved, there are procedures and manuals to follow. I'm not a Debian Developer/Maintainer so I need to recruit a Sponsor for the changes. I sent RFC: Packaging a toolchain for CloudABI to make first contact.
how do the changes to /rules work?
binutils's debian/rules is a bit of a monster, and comments/docs are shall we say, sparse.
CROSS_ARCHS
is a list of Debian architectures for which binary packages are can be compiled (. Each entry is normalized at build time to a Debian multiarch tuple by dpkg-architecture. So building on a 64-bit PC, with CROSS_ARCHS=cloudabi-arm64
the resulting package would be
binutils-aarch64-unknown-cloudabi_2.26-4_amd64.deb
HOSTARCHS*: does this mean that we only build these packages for amd64, i386, x32 and arm64?
Yes, I'm playing it safe to start with.
HOST_ARCHS_<host_arch> = <build_arches>
defines the list of build architectures on which binutils-HOST_ARCHS_cloudabi-arm64 = i386 amd64
would result in 2 packages
binutils-aarch64-unknown-cloudabi_2.26-4_i386.deb
andbinutils-aarch64-unknown-cloudabi_2.26-4_amd64.deb
I've finally got a symlinks package working for clang, namely moreati/llvm-cloudabi-deb. Installing the .deb files uploaded with v0.2 should pull in clang-3.7 and create the same symlinks as described in https://nuxi.nl/cloudabi/debian/.
The other source package moreati/binutils-cloudabi-debian is still in progress. Currently the resulting binary packages each try to install the same file. So only one can be installed at a time.
dpkg: error processing archive ../binutils-aarch64-unknown-cloudabi_2.26-1_amd64.deb (--install):
trying to overwrite '/usr/share/info/dir.gz', which is also in package binutils-x86-64-unknown-cloudabi 2.26-1
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
This is going to be interesting in the nearby future again, as LLVM 3.9 is getting closer to its release. We don't need Binutils anymore for LLVM 3.9.
I'm not sure why, but I used docker to build the llvm toolchain for use on my Ubuntu machine.
FWIW: https://gist.github.com/dckc/9159265bbf979fc4315e08cda2420d3a
Currently it's necessary to manually create symlinks, and compile from source to obtain a cloudabi toolchain on Debian/Ubuntu Linux. This ticket is for tracking efforts to fix that.