Skip to content

Releases: swift-nav/swift-toolchains

bullseye-sysroot-v3: sysroot: fix missing symlinks for blas and lapack [IO-60] (#25)

19 Jan 21:57
9576a06
Compare
Choose a tag to compare
To support cross-compiling from x86_64 to aarch64 debian targets - we're
using some scripts from the chromium
project for building sysroots directly from debian (`.deb`) packages.

A caveat of using these scripts is they rely on very low level plumbing
commands (i.e. `dpkg-deb`) to handle unpacking
and installing the package contents (libs and headers), into "jail" (the
sysroot).

These commands don't handle many details of the full install process. In
the case of blas and lapack - they don't handle the post install step of
creating symlinks at `/usr/lib/${TRIPLE}/libblas.so`. This is important
because this location is on the linkers default search path. The reason
these symlinks are not part of the package by default is because blas
and lapack are virtual packages, there are several different "concrete"
packages that can satisfy the dependency (i.e. `libblas-dev`,
`libopenblas-dev`, etc..). It's up the the debian alternatives system (&
system administrators) to handle the detail of which concrete library
the `libblas` and `liblapack` symlinks actually point to.

I explored a couple of routes to try to do this in a less janky way then
manually creating the links, but this ended up being a rabbit hole.
Ideally we revisit the way we're building these sysroots in a more
robust way.

In the meantime we can now remove the hardcoded linker paths in
libraries that depend on `blas` and `lapack`:

https://github.com/swift-nav/rules_swiftnav/blob/d10814e9b8f3d3b948e3ea9c1aed9c80c2fd74cc/third_party/suitesparse.BUILD#L25.
Trying to handle all the different conditions (os, arch, sysroot or no
sysroot, etc..) was becoming untenable, and just didn't work at all in
some cases.

## Testing

I've tested the resulting sysroot build locally to verify that this
mechanism of creating the links works.

bullseye-sysroot-v2

29 Sep 05:09
9e03c6b
Compare
Choose a tag to compare
Add blas and lapack to sysroot

GCC ARM Linux toolchain v11.3

21 Aug 04:24
42031f2
Compare
Choose a tag to compare

GCC Arm toolchain for Linux : Downloaded from here

bullseye-x86_64-sysroot-v1: Fix debian bullseye x86_64 sysroot [CLARM-39] (#20)

16 Jun 08:50
42031f2
Compare
Choose a tag to compare
The fix makes the script retry 4 times if the checksum of the
downloaded package is wrong. The issue is caused by a server
that sometimes breaks the connection without delivering all the data.
curl: (18) transfer closed with 8605775 bytes remaining to read

bullseye-aarch64-sysroot-v1: Add debian bullseye aarch64 sysroot [CLARM-13] (#18)

24 May 05:35
3910f85
Compare
Choose a tag to compare

This PR adds the aarch64 bulseye sysroot with the following packages:

  • libc6
  • libc6-dev
  • libstdc++-10-dev
  • libstdc++6
  • linux-libc-dev
  • uuid-dev
  • libgcc-10-dev
  • libgcc-s1

musl-test-2

26 Apr 01:51
Compare
Choose a tag to compare

musl-test

26 Apr 00:41
Compare
Choose a tag to compare
add release

musl-cross-11.2.0: rust compatible musl cross toolchains

26 Apr 20:41
10fe5d8
Compare
Choose a tag to compare
Custom builds of musl cross toolchains that are compatible with rustc

gcc v11.2.0
musl v1.1.24

gcc-arm-gnu-8.3: add builds for rust compatible musl toolchains (#17)

08 May 09:05
10fe5d8
Compare
Choose a tag to compare
Adds builds of several musl cross toolchains that are compatible with rustc.

The rust musl libc is based on version 1.1.24, which is incompatible with
prebuilt versions of these toolchains that are available online.

This build is based off of the following two projects:
- https://github.com/richfelker/musl-cross-make
- https://github.com/rust-cross/rust-musl-cross

LLVM 14.0.0

02 Mar 08:56
67ffdf1
Compare
Choose a tag to compare
llvm-14.0.0

Add info on how to add a new tool chain