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.
| portname | hardcoding |
| sysutils/memtest86+ | 4.8 |
| sysutils/uefi-edk2-bhyve-csm | 4.8 |
| uefi-edk2-bhyve | 4.8 |
| cad/ghdl | 6 |
| graphics/impressive | 6 |
| lang/gnat_util | 6 |
| devel/xtensa-esp32-elf | 7 |
| graphics/bugle | 7 |