I'm encountering some obscure issues getting up and running with the new 1.30 release. I'm using the exact same hand-written installer script (via configure
) as I was with 1.29 (script and full log attached at bottom) and haven't changed any other software on the machine to my knowledge. I read the patch notes and didn't see any clues either.
psath@talos:~/chapelWorkspace/tool-installs$ uname -a
Linux talos 5.15.0-67-generic #74-Ubuntu SMP Wed Feb 22 14:14:39 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
psath@talos:~/chapelWorkspace/tool-installs$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.2 LTS
Release: 22.04
Codename: jammy
This is the reported configuration:
Currently selected Chapel configuration:
CHPL_TARGET_PLATFORM: linux64
CHPL_TARGET_COMPILER: llvm
CHPL_TARGET_ARCH: x86_64
CHPL_TARGET_CPU: native
CHPL_LOCALE_MODEL: gpu *
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
I've also exported CC=clang
and CXX=clang++
- There's some Python errors that seem to be indicating an unset environment variable,
CHPL_LLVM_GCC_PREFIX
. Is that new with 1.30?
CHPL_DEVELOPER is not set, using OFF
-- No CHPL_LLVM_GCC_PREFIX env var or value given from command line.
Traceback (most recent call last):
File "/home/psath/chapelWorkspace/tool-installs/chapel-1.30.0-src-talos/util/chplenv/printchplenv.py", line 522, in <module>
main()
File "/home/psath/chapelWorkspace/tool-installs/chapel-1.30.0-src-talos/util/chplenv/printchplenv.py", line 511, in main
compute_all_values()
File "/home/psath/chapelWorkspace/tool-installs/chapel-1.30.0-src-talos/util/chplenv/printchplenv.py", line 237, in compute_all_values
chpl_compiler.validate_compiler_settings()
File "/home/psath/chapelWorkspace/tool-installs/chapel-1.30.0-src-talos/util/chplenv/utils.py", line 43, in memoize_wrapper
cache[args] = func(*args)
File "/home/psath/chapelWorkspace/tool-installs/chapel-1.30.0-src-talos/util/chplenv/chpl_compiler.py", line 485, in validate_compiler_settings
validate_inference_matches('host', 'c')
File "/home/psath/chapelWorkspace/tool-installs/chapel-1.30.0-src-talos/util/chplenv/chpl_compiler.py", line 473, in validate_inference_matches
error("Conflicting compiler families: "
File "/home/psath/chapelWorkspace/tool-installs/chapel-1.30.0-src-talos/util/chplenv/utils.py", line 27, in error
raise exception(msg)
- It seems to be both trying to mix GCC+clang and 2.1) grabbing an ancient version of libclang (from version 8) from inside a cmake directory, rather than the systemwide clang-14 install. Doesn't CMake typically use CC and CXX to infer the host compiler family?
Exception: Conflicting compiler families: CHPL_HOST_COMPILER=gnu but CHPL_HOST_CC=['/usr/bin/clang'] but has family clang
-- Using Python: python3
Traceback (most recent call last):
File "/home/psath/chapelWorkspace/tool-installs/chapel-1.30.0-src-talos/util/config/write-git-sha", line 57, in <module>
raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT), args.chpl_home)
FileNotFoundError: [Errno 2] No such file or directory: ''
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) (Required is at least version "1.8.17")
-- Using libclang from /usr/lib/cmake/clang-8
psath@talos:~/chapelWorkspace/tool-installs$ which clang
/usr/bin/clang
psath@talos:~/chapelWorkspace/tool-installs$ clang --version
Ubuntu clang version 14.0.0-1ubuntu1
Target: x86_64-pc-linux-gnu
Thread model: posix
psath@talos:~/chapelWorkspace/tool-installs$ dpkg --list | grep libclang
ii libclang-14-dev 1:14.0.0-1ubuntu1 amd64 Clang library - Development package
...
psath@talos:~/chapelWorkspace/tool-installs$ locate libclang-14
/usr/lib/llvm-14/lib/libclang-14.0.0.so
/usr/lib/llvm-14/lib/libclang-14.so
/usr/lib/llvm-14/lib/libclang-14.so.1
/usr/lib/x86_64-linux-gnu/libclang-14.so
...
- There's a ton of unresolved LLVM symbols when linking
chpl
(the pieces of which compile without issue)... probably a side effect of cmake grabbing the oldlibclang-8
. Here's a micro subset collection, covering some pretty fundamental LLVM building blocks:
undefined reference to `llvm::DisableABIBreakingChecks
undefined reference to `llvm::SmallVectorBase<unsigned int>::grow_pod(void*, unsigned long, unsigned long)
undefined reference to `llvm::BasicBlock::BasicBlock(llvm::LLVMContext&, llvm::Twine const&, llvm::Function*, llvm::BasicBlock*)
undefined reference to `llvm::BranchInst::BranchInst(llvm::BasicBlock*, llvm::Instruction*)
undefined reference to `llvm::Module::getDataLayout()
undefined reference to `llvm::Type::getInt64Ty(llvm::LLVMContext&)
...
undefined reference to `llvm::sys::fs::create_directories(llvm::Twine const&, bool, llvm::sys::fs::perms)'
undefined reference to `llvm::sys::fs::equivalent(llvm::Twine const&, llvm::Twine const&, bool&)
llvm::sys::fs::access(llvm::Twine const&, llvm::sys::fs::AccessMode)
Any suggestions or workarounds, or if I missed a bit of new documentation, would be much appreciated. Thanks in advance!
1.30-link-errors.txt (1.5 MB)
install_chapel.sh.txt (1.4 KB)