SPIRV-LLVM-Translator is a tool and a library for bi-directional translation between SPIR-V and LLVM IR.
Development versions of GLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.
CMake-3.30.3, libxml2-2.13.3, LLVM-18.1.7 (with Clang), SPIRV-Headers-1.3.290.0, and SPIRV-Tools-1.3.290.0
This tarball is v18.1.4.tar.gz
.
v18.1.4.tar.gz
will extract to the
directory SPIRV-LLVM-Translator-18.1.4
.
Install SPIRV-LLVM-Translator by running the following commands:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_SKIP_INSTALL_RPATH=ON \ -D BUILD_SHARED_LIBS=ON \ -D LLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr \ -G Ninja .. && ninja
To test the results, issue: ninja test.
Now, as the root
user:
ninja install
First clean the build directory:
rm -rf *
Install lib32-SPIRV-LLVM-Translator by running the following commands:
CC="gcc -m32" CXX="g++ -m32" \ PKG_CONFIG_PATH=/usr/lib32/pkgconfig \ cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_INSTALL_LIBDIR=lib32 \ -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_SKIP_INSTALL_RPATH=ON \ -D BUILD_SHARED_LIBS=ON \ -D LLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr \ -G Ninja .. && ninja
Now, as the root
user:
DESTDIR=$PWD/DESTDIR ninja install cp -vr DESTDIR/usr/lib32/* /usr/lib32 rm -rf DESTDIR ldconfig
-DCMAKE_SKIP_INSTALL_RPATH=ON
: This
switch makes cmake
remove hardcoded library search paths (rpath) when installing a
binary executable file or a shared library. This package does not
need rpath once it's installed into the standard location, and
rpath may sometimes cause unwanted effects or even security issues.
-D BUILD_SHARED_LIBS=ON
:
This switch forces the build system to install shared libraries
instead of static libraries.
-D
LLVM_EXTERNAL_SPIRV_HEADERS_*
: These switches tells the
build system that SPIRV-Headers-1.3.290.0 is installed
in /usr. This is needed since the build system tries to download
and use the downloaded headers not on the system if the switch
isn't invoked.