Devtools darwin (#46910)

* stacks: add a stack for devtools on darwin

After getting this whole mess building on darwin, let's keep it that
way, and maybe make it so we have some non-ML darwin binaries in spack
as well.

* reuse: false for devtools

* dtc: fix darwin dylib name and id

On mac the convention is `lib<name>.<num>.dylib`, while the makefile
creates a num suffixed one by default. The id in the file is also a
local name rather than rewritten to the full path, this fixes both
problems.

* node-js: make whereis more deterministic

* relocation(darwin): catch Mach-O load failure

The MachO library can throw an exception rather than return no headers,
this happened in an elf file in the test data of go-bootstrap.  Trying
catching the exception and moving on for now.  May also need to look
into why we're trying to rewrite an elf file.

* qemu: add darwin flags to clear out warnings

There's a build failure for qemu in CI, but it's invisible because of
the immense mass of warning output.  Explicitly specify the target macos
version and remove the extraneous unknown-warning-option flag.

* dtc: libyaml is also a link dependency

libyaml is required at runtime to run the dtc binary, lack of it caused
the ci for qemu to fail when the library wasn't found.
This commit is contained in:
Tom Scogland
2024-10-21 10:32:14 -07:00
committed by GitHub
parent 19ad29a690
commit a07d42d35b
7 changed files with 133 additions and 4 deletions

View File

@@ -508,6 +508,30 @@ developer-tools-manylinux2014-build:
- artifacts: True
job: developer-tools-manylinux2014-generate
###########################################
# Build tests for different developer tools
# darwin
###########################################
.developer-tools-darwin:
extends: [ ".darwin_aarch64" ]
variables:
SPACK_CI_STACK_NAME: developer-tools-darwin
developer-tools-darwin-generate:
tags: [ "macos-ventura", "apple-clang-15", "aarch64-macos" ]
extends: [ ".developer-tools-darwin", ".generate-base"]
developer-tools-darwin-build:
extends: [ ".developer-tools-darwin", ".build" ]
trigger:
include:
- artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
job: developer-tools-darwin-generate
strategy: depend
needs:
- artifacts: True
job: developer-tools-darwin-generate
#########################################
# RADIUSS
#########################################

View File

@@ -0,0 +1,75 @@
spack:
view: false
packages:
all:
require:
- target=aarch64
concretizer:
unify: true
reuse: false
specs:
# editors
- neovim~no_luajit
- py-pynvim
- emacs+json~native+treesitter # TODO native not supported until gcc builds on darwin
# - tree-sitter is a dep, should also have cli but no package
- nano # just in case
# tags and scope search helpers
- universal-ctags # only maintained ctags, works better with c++
- direnv
# runtimes and compilers
- python
- llvm+link_llvm_dylib+lld~lldb~polly+python build_type=MinSizeRel # for clangd, clang-format
- node-js # for editor plugins etc., pyright language server
- npm
- cmake
- libtool
- go # to build fzf, gh, hub
- rust+dev # fd, ripgrep, hyperfine, exa, rust-analyzer
# styling and lints
- astyle
- cppcheck
- uncrustify
- py-fprettify
- py-fortran-language-server
- py-python-lsp-server
# cli dev tools
- ripgrep
- gh
- fd
# - bfs # liburing: /usr/include/linux/ipv6.h:19:8: error: redefinition of 'struct in6_pktinfo'
- fzf
- tree
- jq
- py-yq
- hub
- ncdu
- eza
- lsd
- hyperfine
- htop
- tmux
- ccache
# ensure we can use a jobserver build and do this fast
- gmake
- ninja # should be @kitware, can't be because of meson requirement
- libtree
- sed
- which
- flex
- graphviz
- doxygen
- meson
- lima
ci:
pipeline-gen:
- build-job-remove:
tags: [ spack, public ]
- build-job:
variables:
CI_GPG_KEY_ROOT: /etc/protected-runner
tags: [ "macos-ventura", "apple-clang-15", "aarch64-macos" ]
cdash:
build-group: Developer Tools Darwin

View File

@@ -5,6 +5,7 @@ spack:
require: target=x86_64_v3
concretizer:
unify: true
reuse: false
definitions:
- default_specs:
# editors