This is an old revision of the document!


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.

:!: 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
llmv35 lang/pure and dependents obsolete tracking bug for removal
llvm60 fallback via USES=xyz for GCC-based archs obsolete defined in Uses/compiler.mk
llvm70 USES=obj (mostly gnustep-derived ports) obsolete defined in Mk/Uses/objc.mk
llvm80 tree-wide default supported defined in Mk/bsd.default-versions.mk
llvm90 brand new PR to test llvm90 as the new default in individual ports

Processing INDEX-12 20190805 (and deleting self-references) produces:

 13 /tmp/llvm3
  0 /tmp/llvm4
  0 /tmp/llvm5
 31 /tmp/llvm6
127 /tmp/llvm7
250 /tmp/llvm8
  0 /tmp/llvm9

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.

:!: 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.

llvm35 15 same as above
llvm40 5
llvm60 169
llvm70 13

  • obsoletellvmversions.1565166227.txt.gz
  • Last modified: 2019/08/07 08:23
  • by MarkLinimon