mirror of
https://github.com/xenios-jp/XeniOS.git
synced 2026-07-11 15:19:09 -07:00
[Build] Ensure clang/lld are pinned to the correct version
This commit is contained in:
@@ -35,11 +35,18 @@ jobs:
|
||||
wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc
|
||||
sudo apt-add-repository "deb http://apt.llvm.org/${{ env.UBUNTU_BASE }}/ llvm-toolchain-${{ env.UBUNTU_BASE }}-${{ env.LLVM_VERSION }} main"
|
||||
sudo apt-get -y update
|
||||
sudo apt-get -y install mesa-vulkan-drivers valgrind libc++-dev libc++abi-dev libgtk-3-dev libsdl2-dev libvulkan-dev libx11-xcb-dev clang-${{ env.LLVM_VERSION }} lld-${{ env.LLVM_VERSION }} ninja-build cmake spirv-tools
|
||||
sudo apt-get -y install mesa-vulkan-drivers valgrind libc++-dev libc++abi-dev libgtk-3-dev libsdl2-dev libvulkan-dev libx11-xcb-dev clang-${{ env.LLVM_VERSION }} lld-${{ env.LLVM_VERSION }} ninja-build cmake spirv-tools libfuse2
|
||||
|
||||
# Pin LLVM tools to the correct version so system ar/ranlib/lld
|
||||
# don't use the older LLVM 17 gold plugin with clang-20 LTO bitcode
|
||||
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-${{ env.LLVM_VERSION }} 200
|
||||
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-${{ env.LLVM_VERSION }} 200
|
||||
sudo update-alternatives --install /usr/bin/lld lld /usr/bin/lld-${{ env.LLVM_VERSION }} 200
|
||||
sudo update-alternatives --install /usr/bin/ld.lld ld.lld /usr/bin/ld.lld-${{ env.LLVM_VERSION }} 200
|
||||
sudo update-alternatives --install /usr/bin/llvm-ar llvm-ar /usr/bin/llvm-ar-${{ env.LLVM_VERSION }} 200
|
||||
sudo update-alternatives --install /usr/bin/llvm-ranlib llvm-ranlib /usr/bin/llvm-ranlib-${{ env.LLVM_VERSION }} 200
|
||||
sudo update-alternatives --install /usr/bin/llvm-nm llvm-nm /usr/bin/llvm-nm-${{ env.LLVM_VERSION }} 200
|
||||
|
||||
# Pin clang to the correct version
|
||||
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-${{ env.LLVM_VERSION }} 200
|
||||
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-${{ env.LLVM_VERSION }} 200
|
||||
- name: Install Vulkan SDK
|
||||
run: |
|
||||
# Install Vulkan SDK
|
||||
|
||||
+10
-1
@@ -283,10 +283,19 @@ else()
|
||||
$<$<CONFIG:Release>:_NO_DEBUG_HEAP=1>
|
||||
)
|
||||
add_compile_options($<$<CONFIG:Release>:-O3>)
|
||||
# Link-time optimization (use lld to avoid system linker LTO plugin version mismatch)
|
||||
# Link-time optimization (use lld and llvm-ar/ranlib to avoid system
|
||||
# linker/archiver LTO plugin version mismatch with clang's bitcode)
|
||||
add_compile_options($<$<CONFIG:Release>:-flto=thin>)
|
||||
add_link_options($<$<CONFIG:Release>:-flto=thin>)
|
||||
add_link_options($<$<CONFIG:Release>:-fuse-ld=lld>)
|
||||
find_program(LLVM_AR NAMES llvm-ar)
|
||||
find_program(LLVM_RANLIB NAMES llvm-ranlib)
|
||||
if(LLVM_AR)
|
||||
set(CMAKE_AR "${LLVM_AR}" CACHE FILEPATH "" FORCE)
|
||||
endif()
|
||||
if(LLVM_RANLIB)
|
||||
set(CMAKE_RANLIB "${LLVM_RANLIB}" CACHE FILEPATH "" FORCE)
|
||||
endif()
|
||||
# No symbols in release on non-Windows
|
||||
string(REPLACE "-g" "" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
|
||||
string(REPLACE "-g" "" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
|
||||
|
||||
Reference in New Issue
Block a user