Versions of LLVM
There are many versions of llvm in the ports tree.
- It is painful for builders (especially the ones using qemu) to have so many versions.
- Some only exist to satisfy dependencies.
This page discusses the list of ports that we should try to update to reduce the dependencies.
Notes on versions
devel/llvm10 is actually version 10.0, and thus is sorted here after devel/llvm90, which is version 9.0. The same caveat will apply for devel/llvm11 and all subsequent versions.
Current versions in the tree
The usage column does not include ports that hardwire the version. See HardcodedLLVMVersions for that list.
| port | usage | status | comments |
| llvm70 | USES=obj (mostly gnustep-derived ports) | obsolete | defined in Mk/Uses/objc.mk; last changed as of r492056 |
| llvm80 | supported | ||
| llvm90 | tree-wide default | supported | defined in Mk/bsd.default-versions.mk |
| llvm10 | fallback via USES=xyz for GCC-based systems | supported | defined in Uses/compiler.mk |
| llvm11 | experimental | supported |
Dependency statistics
Processing INDEX-13 20210124 (and deleting self-references) produces:
6 /tmp/llvm60 33 /tmp/llvm70 9 /tmp/llvm80 121 /tmp/llvm90 170 /tmp/llvm10 0 /tmp/llvm11
Default version
For architectures that support llvm in base, the default version is determined by whatever is installed in base.
For other architectures, if a port sets USES=compiler, llvm10 will be set if:
- COMPILER_ARGS:Mc++17-lang
- COMPILER_ARGS:Mc++14-lang
- COMPILER_ARGS:Mc++11-lang
- COMPILER_ARGS:Mc++0x
- COMPILER_ARGS:Mc11
See Mk/Uses/compiler.mk for the code.
all the below has become obsolete 20191202:
Table of obsolescence (tier-1)
| port | dependency | upstream URL | upstream at later version? | comments |
TODO add more 20190807
Table of obsolescence (tier-2)
These data are stale.
Here are the data from powerpc64 INDEX-13 built 20181214. As of this date, the base compiler is still gcc4.2.1.
| llvm40 | 5 | |
| llvm60 | 169 | |
| llvm70 | 13 |