Table of Contents

Versions of LLVM

There are many versions of llvm in the ports tree.

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:

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