Low Level Virtual Machine
LLVM is a compiler infrastructure designed for compile-time, link-time, runtime, and idle-time optimization of programs from arbitrary programming languages.
The compiler infrastructure includes mirror sets of programming tools as well as libraries with equivalent functionality.
- Developed at devel:tools:compiler
-
6
derived packages
- Download package
-
Checkout Package
osc -A https://api.opensuse.org checkout openSUSE:Factory/llvm17 && cd $_
- Create Badge
Refresh
Refresh
Source Files
Filename | Size | Changed |
---|---|---|
_constraints | 0000001002 1002 Bytes | |
assume-opensuse.patch | 0000001186 1.16 KB | |
baselibs.conf | 0000000025 25 Bytes | |
check-no-llvm-exegesis.patch | 0000000276 276 Bytes | |
clang-17.0.6.src.tar.xz | 0021577596 20.6 MB | |
clang-17.0.6.src.tar.xz.sig | 0000000438 438 Bytes | |
clang-Fix-build-with-GCC-14-on-ARM.patch | 0000002708 2.64 KB | |
clang-docs-17.0.6.src.tar.xz | 0001615064 1.54 MB | |
clang-resourcedirs.patch | 0000000587 587 Bytes | |
clang-tools-extra-17.0.6.src.tar.xz | 0003269980 3.12 MB | |
clang-tools-extra-17.0.6.src.tar.xz.sig | 0000000438 438 Bytes | |
cmake-17.0.6.src.tar.xz | 0000008712 8.51 KB | |
cmake-17.0.6.src.tar.xz.sig | 0000000438 438 Bytes | |
compact_unwind_encoding.h | 0000019091 18.6 KB | |
compiler-rt-17.0.6.src.tar.xz | 0002421808 2.31 MB | |
compiler-rt-17.0.6.src.tar.xz.sig | 0000000438 438 Bytes | |
default-to-i586.patch | 0000000472 472 Bytes | |
libcxx-17.0.6.src.tar.xz | 0003946532 3.76 MB | |
libcxx-17.0.6.src.tar.xz.sig | 0000000438 438 Bytes | |
libcxx-test-library-path.patch | 0000000708 708 Bytes | |
libcxxabi-17.0.6.src.tar.xz | 0000575744 562 KB | |
libcxxabi-17.0.6.src.tar.xz.sig | 0000000438 438 Bytes | |
link-clang-shared.patch | 0000001452 1.42 KB | |
link-clang-tools-extra-shared.patch | 0000001401 1.37 KB | |
lld-17.0.6.src.tar.xz | 0001506048 1.44 MB | |
lld-17.0.6.src.tar.xz.sig | 0000000438 438 Bytes | |
lld-default-sha1.patch | 0000002564 2.5 KB | |
lldb-17.0.6.src.tar.xz | 0010493512 10 MB | |
lldb-17.0.6.src.tar.xz.sig | 0000000438 438 Bytes | |
lldb-cmake.patch | 0000000504 504 Bytes | |
llvm-17.0.6.src.tar.xz | 0059298244 56.6 MB | |
llvm-17.0.6.src.tar.xz.sig | 0000000438 438 Bytes | |
llvm-do-not-install-static-libraries.patch | 0000005826 5.69 KB | |
llvm-docs-17.0.6.src.tar.xz | 0007138248 6.81 MB | |
llvm-fix-find-gcc5-install.patch | 0000000613 613 Bytes | |
llvm-normally-versioned-libllvm.patch | 0000003317 3.24 KB | |
llvm-projects-tools-order.patch | 0000000421 421 Bytes | |
llvm-remove-clang-only-flags.patch | 0000001135 1.11 KB | |
llvm-suse-implicit-gnu.patch | 0000000625 625 Bytes | |
llvm-workaround-superfluous-branches.patch | 0000000567 567 Bytes | |
llvm17-rpmlintrc | 0000001048 1.02 KB | |
llvm17.changes | 0000117966 115 KB | |
llvm17.keyring | 0000006354 6.21 KB | |
llvm17.spec | 0000063465 62 KB | |
llvm_build_tablegen_component_as_shared_library.pa |
0000002925 2.86 KB | |
lto-disable-cache.patch | 0000001476 1.44 KB | |
openmp-17.0.6.src.tar.xz | 0001273412 1.21 MB | |
openmp-17.0.6.src.tar.xz.sig | 0000000438 438 Bytes | |
openmp-dont-run-gpu-arch.patch | 0000000587 587 Bytes | |
opt-viewer-Find-style-css-in-usr-share.patch | 0000000672 672 Bytes | |
polly-17.0.6.src.tar.xz | 0009219324 8.79 MB | |
polly-17.0.6.src.tar.xz.sig | 0000000438 438 Bytes | |
runtimes-17.0.6.src.tar.xz | 0000006240 6.09 KB | |
runtimes-17.0.6.src.tar.xz.sig | 0000000438 438 Bytes | |
tests-use-python3.patch | 0000001007 1007 Bytes | |
third-party-17.0.6.src.tar.xz | 0000383752 375 KB | |
third-party-17.0.6.src.tar.xz.sig | 0000000438 438 Bytes |
Comments 8
libomptarget.devicertl.a
shouldn't be removed but packaged whenever it gets built. It's a necessary component for linking openmp programs with offloading to an AMD or NVIDIA GPU.We usually don't ship static libraries, but if that's all that's required it would probably be fine to include it. However, it would be nice if you could check:
Done, see sr#1123592.
libomptarget.devicertl.a
is 8.4M and contains code for the offload targets (all supported AMD and NVIDIA GPUs). It certainly can't be a shared library.Here's sort of a "hello world" for openmp offloading:
Compile with
clang -fopenmp -fopenmp-targets=nvptx64-nvidia-cuda h.c
and you get a linker error, becauselibomptarget.devicertl.a
cannot be found. If you have this file, the linking stage succeeds. The executable works as expected. I've even checked (withnvprof
from the CUDA SDK) that there is really code running on the GPU.Finally, I've tested a couple of more interesting programs. Everything is fine, once the missing library is available.
That is rather large compared to the remainder of
libomp17-devel
, but I guess it's Ok.Why not?
Thanks for confirming that it works. I guess I'll include the file with the next update then.
It's LLVM IR put into object files and then packed into an archive.
Understood, so it's bitcode for the individual offload targets packaged into one archive. I always thought that the target-dependent code lived in
%{_libdir}/libomptarget-*.bc
, which we also package, since they have the usual ending for bitcode files. Do you know what role they play?If I read the build process properly, this archive is indeed directly created from the bitcode files. I don't know why they are installed, too. Backward compatibility? (Fedora and Debian also package the archive and the bitcode files.)