This is an old revision of the document!
Certain ports hardcode which GCC version they want.
How LLVM versions get set
By default, the Makevar LLVM_DEFAULT is globally defined by the ports infrastructure via Mk/bsd.default-versions.mk. Therefore, it should be under control of the user. MarkLinimon believes that this global Makevar should not be overridden in port Makefiles.
Some ports use the LLVM_DEFAULT Makevar, but some use their own, or, worse, hardcode a version number.
Ports That Hardcode LLVM version
This is a common case – but see ObsoleteLLVMVersions for the maintenance hassles it causes.
In general these are symbolic definitions via LLVM_VER or similar.
Example:
{ {{ LLVM_VER= 80 BUILD_DEPENDS+= clang${LLVM_VER}:devel/llvm${LLVM_VER} } }}
We should standardize on a variable name. In use: LLVM_VER LLVM_VERSION LLVMVER VBOX_LLVM_VER.
| portname | hardcoding |
| audio/csound | 60 |
| audio/faust | 60 |
| audio/faustlive | 60 |
| devel/cpp2py | 60 |
| devel/gnome-builder | 60 |
| devel/py-llvmlite | 60 |
| lang/crystal | 60 |
| devel/flang | 70 |
| devel/flang-clang | 70 |
| devel/youcompleteme | 70 |
| lang/ponyc | 70 |
| math/libpgmath | 70 |
| devel/creduce | 80 |
| devel/f18 | 80 |
| devel/ikos | 80 |
| devel/include-what-you-use | 80 |
| graphics/blender | 80 |
| graphics/openshadinglanguage | 80 |
| math/saga | 80 |
| lang/pocl | 90 |