Linux binaries switch from musl to glibc

The Linux release binaries of Veryl are now dynamically linked against glibc. They used to be statically linked against musl. The asset names are unchanged, veryl-x86_64-linux.zip and veryl-aarch64-linux.zip, only their contents differ, and musl builds are no longer published.

This breaks compatibility wherever a dynamically linked binary does not run as it is, so it is announced ahead of the release that carries it: the nightly toolchain switches over first.

Why

A statically linked binary carries no dynamic loader, so dlopen can never succeed. Two features were therefore dead in the official binaries.

Both work as intended on glibc-based distributions from now on.

Which glibc

The binaries need glibc 2.17 or later, which is the RHEL/CentOS 7 generation and covers mainstream distributions in current use. An environment older than that needs a build from source, and a statically linked one leaves the two features above unavailable, just as the previous official binaries did.

Affected environments

Two kinds of environment no longer run the official binaries out of the box:

A static binary you build yourself still cannot use the two features, but it now says so instead of failing obscurely: a component that fails to load reports the real cause, and veryl test warns when it falls back from the cc backend for this reason.

Timing

The nightly toolchain switches over before the next stable release. verylup downloads these same archives, so verylup install nightly gets the new binaries.