Skip to content

Build LLVM deps for x86_64 FreeBSD, OpenBSD, and NetBSD - #2

Draft
rtfeldman wants to merge 1 commit into
mainfrom
add-bsd-targets
Draft

Build LLVM deps for x86_64 FreeBSD, OpenBSD, and NetBSD#2
rtfeldman wants to merge 1 commit into
mainfrom
add-bsd-targets

Conversation

@rtfeldman

Copy link
Copy Markdown
Contributor

Adds x86_64-freebsd-none, x86_64-openbsd-none, and x86_64-netbsd-none to the release matrix so Roc can be built for the three major BSDs without a system LLVM. Today a BSD user has to point zig build at a ports LLVM via -Dllvm-path, and there is no way to cross-build a BSD-targeted roc from CI at all, because no BSD-targeted LLVM/LLD static libraries exist to link against.

Everything these targets need is already here: build maps freebsd/openbsd/netbsd to their CMake system names, and the repo already carries the OpenBSD llvm-config patch plus the lld findMajMinShlib() patch from OpenBSD ports, which is what lets lld resolve OpenBSD's versioned libc.so.<maj>.<min>. Each target cross-compiles from ubuntu-latest with zig cc, so no BSD runners are involved.

Draft until CI proves the three builds succeed. LLVM's CMake configure runs try_compile probes that link real executables, and that is the step most likely to need iteration on these targets. Once a release is tagged, the roc repo needs a follow-up adding the three tarballs to build.zig.zon and their triples to supported_deps_triples in build.zig.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant