SPIRV-LLVM-Translator-18.1.4

Introduction to SPIRV-LLVM-Translator

SPIRV-LLVM-Translator is a tool and a library for bi-directional translation between SPIR-V and LLVM IR.

[Note]

Note

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.

SPIRV-LLVM-Translator Dependencies

Required

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

Installation of SPIRV-LLVM-Translator

[Note]

Note

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

32-bit Installation of SPIRV-LLVM-Translator

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

Command Explanations

-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.

Contents

Installed Programs: llvm-spirv
Installed Libraries: libLLVMSPIRVLib.so
Installed Directories: /usr/include/libLLVMSPIRVLib

Short Descriptions

llvm-spirv

translates LLVM bitcode and SPIR-V binaries

libLLVMSPIRVLib.so

contains functions for translating between SPIR-V and LLVM IR