package=native_clang # To update the Clang compiler: # - Change the versions below, and the MSYS2 version in libcxx.mk # - Run the script ./contrib/devtools/update-clang-hashes.sh # - Manually fix the versions for packages that don't exist (the LLVM project # doesn't uniformly cut binaries across releases). # The Clang compiler should use the same LLVM version as the Rust compiler. $(package)_major_version=14 $(package)_version=14.0.6 $(package)_download_path=https://github.com/llvm/llvm-project/releases/download/llvmorg-$($(package)_version) $(package)_download_path_linux=https://github.com/llvm/llvm-project/releases/download/llvmorg-14.0.0 $(package)_download_file_linux=clang+llvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz $(package)_file_name_linux=clang-llvm-$($(package)_version)-x86_64-linux-gnu-ubuntu-18.04.tar.xz $(package)_sha256_hash_linux=61582215dafafb7b576ea30cc136be92c877ba1f1c31ddbbd372d6d65622fef5 $(package)_download_path_darwin=https://github.com/llvm/llvm-project/releases/download/llvmorg-$($(package)_version) $(package)_download_file_darwin=clang+llvm-$($(package)_version)-x86_64-apple-darwin.tar.xz $(package)_file_name_darwin=clang-llvm-$($(package)_version)-x86_64-apple-darwin.tar.xz $(package)_sha256_hash_darwin=e6cc6b8279661fd4452c2847cb8e55ce1e54e1faf4ab497b37c85ffdb6685e7c $(package)_download_path_freebsd=https://github.com/llvm/llvm-project/releases/download/llvmorg-$($(package)_version) $(package)_download_file_freebsd=clang+llvm-$($(package)_version)-amd64-unknown-freebsd12.tar.xz $(package)_file_name_freebsd=clang-llvm-$($(package)_version)-amd64-unknown-freebsd12.tar.xz $(package)_sha256_hash_freebsd=b0a7b86dacb12afb8dd2ca99ea1b894d9cce84aab7711cb1964b3005dfb09af3 $(package)_download_path_aarch64_linux=https://github.com/llvm/llvm-project/releases/download/llvmorg-$($(package)_version) $(package)_download_file_aarch64_linux=clang+llvm-$($(package)_version)-aarch64-linux-gnu.tar.xz $(package)_file_name_aarch64_linux=clang-llvm-$($(package)_version)-aarch64-linux-gnu.tar.xz $(package)_sha256_hash_aarch64_linux=1a81fda984f5e607584916fdf69cf41e5385b219b983544d2c1a14950d5a65cf ifneq (,$(wildcard /etc/arch-release)) $(package)_dependencies=native_libtinfo endif # Ensure we have clang native to the builder, not the target host ifneq ($(canonical_host),$(build)) $(package)_exact_download_path=$($(package)_download_path_$(build_os)) $(package)_exact_download_file=$($(package)_download_file_$(build_os)) $(package)_exact_file_name=$($(package)_file_name_$(build_os)) $(package)_exact_sha256_hash=$($(package)_sha256_hash_$(build_os)) endif define $(package)_stage_cmds mkdir -p $($(package)_staging_prefix_dir)/bin && \ cp bin/clang-$($(package)_major_version) $($(package)_staging_prefix_dir)/bin && \ cp bin/lld $($(package)_staging_prefix_dir)/bin && \ cp bin/llvm-ar $($(package)_staging_prefix_dir)/bin && \ cp bin/llvm-config $($(package)_staging_prefix_dir)/bin && \ cp bin/llvm-nm $($(package)_staging_prefix_dir)/bin && \ cp bin/llvm-objcopy $($(package)_staging_prefix_dir)/bin && \ cp -P bin/clang $($(package)_staging_prefix_dir)/bin && \ cp -P bin/clang++ $($(package)_staging_prefix_dir)/bin && \ cp -P bin/ld.lld $($(package)_staging_prefix_dir)/bin && \ cp -P bin/ld64.lld $($(package)_staging_prefix_dir)/bin && \ cp -P bin/lld-link $($(package)_staging_prefix_dir)/bin && \ cp -P bin/llvm-ranlib $($(package)_staging_prefix_dir)/bin && \ cp -P bin/llvm-strip $($(package)_staging_prefix_dir)/bin && \ (test ! -f include/x86_64-unknown-linux-gnu/c++/v1/__config_site || \ cp include/x86_64-unknown-linux-gnu/c++/v1/__config_site include/c++/v1/__config_site) && \ mv include/ $($(package)_staging_prefix_dir) && \ mv lib/ $($(package)_staging_prefix_dir) && \ mv libexec/ $($(package)_staging_prefix_dir) endef