distributable: url: https://git.musl-libc.org/cgit/musl/snapshot/musl-{{ version }}.tar.gz strip-components: 1 versions: url: https://git.musl-libc.org/cgit/musl/refs/tags match: /musl-\d+\.\d+\.\d+\.tar\.gz/ strip: - /musl-/ - /.tar.gz/ relocatable: true platforms: linux provides: - bin/ld.musl-clang - bin/musl-clang dependencies: build: dependencies: script: | ./configure --prefix={{ prefix }} --syslibdir={{ prefix }}/lib make --jobs {{ hw.concurrency }} make install ln -sf libc.so {{prefix}}/lib/ld-musl-{{hw.arch}}.so.1 # fix script paths; might be a better way #FIXME probably: dynamic linker causes segfaults sed -i.bak \ -e 's/-dynamic-linker "\$ldso"//' \ -e 's/^sflags=$/sflags="-static"/' \ -e 's/^libc=".*/libc="$(dirname $(dirname $(which ld.musl-clang)))"/' \ -e 's#^libc_inc=".*#libc_inc="$libc/include"#' \ -e 's#^libc_lib=".*#libc_lib="$libc/lib"#' \ {{prefix}}/bin/musl-clang \ {{prefix}}/bin/ld.musl-clang env: CC: clang test: fixture: | #include int main() { printf("Hello World!"); return 0; } script: | mv $FIXTURE $FIXTURE.c musl-clang $FIXTURE.c test "$(./a.out)" = "Hello World!"