What for www/firefox port pulls devel/llvm90 in?

Run in the ports directory make build-depends-list, more lists in man ports(7) (run-depends-list, all-depends-list, pretty-print-run-depends-list, pretty-print-build-depends-list).
 
For I was searching mentioning llvm90 (or just llvm) in ports' directory, but found nothing, so I deinstalled llvm90 and it was rebuild again.
For many recurring and more complex dependency scenarios, ports don't set dependencies directly but rely un the port system's USES framework. Without looking into this particular port, llvm90 is probably pulled in by a USES=compiler with according options -- see also /usr/ports/Mk/Uses/compiler.mk.
 
And mesa requires llvm80 (although the system stable-11 has 80, and stable-12 has 90).

Base llvm has limited selection of backends:
Code:
% touch test.c
% clang90 --target=amdgcn-amd-amdhsa-opencl ./test.c -o /dev/null
% clang --target=amdgcn-amd-amdhsa-opencl ./test.c -o /dev/null
error: unable to create target: 'No available targets are compatible with triple "amdgcn-amd-amdhsa-opencl"'
1 error generated.
 
It probably only needs ELF utils from llvm90, but it's one package, so it pulls it all in and compiles it.

If there's a newer port than the package, Uses makes it build the newer port, even if there's no vulnerabilities in it.
 
llvm90 is probably pulled in by a USES=compiler with according options
After having a look, it's probably a USE_GECKO (see bsd.gecko.mk). LLVM_DEFAULT is currently set to 90 in bsd.default-versions.mk, so unless you override that in your make.conf, that's the version pulled in by gecko.
 
For many recurring and more complex dependency scenarios, ports don't set dependencies directly but rely un the port system's USES framework. Without looking into this particular port, llvm90 is probably pulled in by a USES=compiler with according options -- see also /usr/ports/Mk/Uses/compiler.mk.
I suppose, I found it, it is in /usr/ports/Mk/bsd.gecko.mk.
 
Back
Top