This is an old revision of the document!
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.
Current versions in the tree
The usage column does not include ports that hardwire the version (except for the llvm35 entry). See HardcodedLLVMVersions for that list.
| port | usage | status | comments |
| llvm60 | fallback via USES=xyz for GCC-based systems | obsolete | defined in Uses/compiler.mk |
| llvm70 | USES=obj (mostly gnustep-derived ports) | obsolete | defined in Mk/Uses/objc.mk; last changed as of r492056 |
| llvm80 | still widely used | supported | |
| llvm90 | tree-wide default | supported | defined in Mk/bsd.default-versions.mk |
Dependency statistics
Processing INDEX-12 20190805 (and deleting self-references) produces:
0 /tmp/llvm4 0 /tmp/llvm5 31 /tmp/llvm6 127 /tmp/llvm7 250 /tmp/llvm8 0 /tmp/llvm9
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, clang60 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 Uses/compiler.mk for the code.
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 |