External Issue: Clang prerequisite unclear in docs

19797, "ghbrown", "Clang prerequisite unclear in docs", "2022-05-12T06:09:50Z"

Summary of Problem

setting CHPL_ENV=system then running /util/printchplenv --all gives error

Error: CHPL_LLVM=system but could not find an installed LLVM
with one of the supported versions: 13, 12, 11

even if LLVM is installed (from main Arch repositories).

I peaked into chpl_llvm.py, and I believe this happens because the way the LLVM version check works is by probing for Clang.
Perhaps it's my unfamiliarity with LLVM and Clang, but the LLVM support page only mentioned having a system version of LLVM, as does the prose in the prerequisite list.
I now see that Clang is hiding in the *nix install commands, but that didn't help me (on Arch).

If Clang is indeed necessary with LLVM, I suggest that this be noted in at least the prerequisites list, but also perhaps elsewhere. Perhaps a prerequisites install line for Arch could also be useful?

sudo pacman -S gcc perl python bash make gawk git cmake llvm clang

I haven't tested that this covers all requirements, but these are the Arch names for the equivalent packages if they exist.

Steps to Reproduce

sudo pacman -S llvm # will get version 13 as of this post
export CHPL_LLVM=system
${CHPL_HOME}/util/printchplenv --all
<get error in previous section>
sudo pacman -S clang
${CHPL_HOME}/util/printchplenv --all
<prints environment variables with "CHPL_LLVM: system *">

Configuration Information

  • pre-compile, but version 1.26.0
  • output of $CHPL_HOME/util/printchplenv --anonymize:
CHPL_TARGET_PLATFORM: linux64
CHPL_TARGET_COMPILER: llvm
CHPL_TARGET_ARCH: x86_64
CHPL_TARGET_CPU: native
CHPL_LOCALE_MODEL: flat
CHPL_COMM: none
CHPL_TASKS: qthreads
CHPL_LAUNCHER: none
CHPL_TIMERS: generic
CHPL_UNWIND: none
CHPL_MEM: jemalloc
CHPL_ATOMICS: cstdlib
CHPL_GMP: none
CHPL_HWLOC: bundled
CHPL_RE2: none
CHPL_LLVM: system *
CHPL_AUX_FILESYS: none

(after fix)