Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fails to build on CheriBSD 14.0 on Morello platform #350

Open
matbennion opened this issue Feb 23, 2023 · 3 comments
Open

Fails to build on CheriBSD 14.0 on Morello platform #350

matbennion opened this issue Feb 23, 2023 · 3 comments

Comments

@matbennion
Copy link

Fails to build on a Morello board running CheriBSD 14.0. The script fails initially with missing dependencies:

  • python
  • cmake
  • ninja
  • pkg-config

After installing these as suggested by the script, it then runs for a while then fails with compilation errors.

The following shows the problems with the missing dependencies and what I installed to get round them:


developer@cheribsd:~ $ cheribuild.py cheribsd-riscv64-purecap -d
/bin/sh: cheribuild.py: not found
...
sudo pkg64 install python
...

developer@cheribsd:~/cheribuild $ ./cheribuild.py cheribsd-riscv64-purecap -d
Checking /home/developer/.config/cheribuild.json since /usr/home/developer/cheribuild/cheribuild.json doesn't exist
Note: Configuration file /home/developer/.config/cheribuild.json does not exist, using only command line arguments.
Sources will be stored in /home/developer/cheri
Build artifacts will be stored in /home/developer/cheri/output
cd /usr/home/developer/cheribuild && git fetch
Fatal error: Dependency for llvm-native missing: Required program cmake is missing!
Possible solution: Run `pkg install cmake`
...
developer@cheribsd:~/cheribuild $ sudo pkg64 install cmake
...

developer@cheribsd:~/cheribuild $ ./cheribuild.py cheribsd-riscv64-purecap -d
Checking /home/developer/.config/cheribuild.json since /usr/home/developer/cheribuild/cheribuild.json doesn't exist
Note: Configuration file /home/developer/.config/cheribuild.json does not exist, using only command line arguments.
Sources will be stored in /home/developer/cheri
Build artifacts will be stored in /home/developer/cheri/output
cd /usr/home/developer/cheribuild && git fetch
Fatal error: Dependency for llvm-native missing: Required program ninja is missing!
Possible solution: Possibly running `pkg install ninja` fixes this. Note: package name may not be correct.
...
developer@cheribsd:~/cheribuild $ sudo pkg install ninja
...

developer@cheribsd:~/cheribuild $ ./cheribuild.py cheribsd-riscv64-purecap -d
Checking /home/developer/.config/cheribuild.json since /usr/home/developer/cheribuild/cheribuild.json doesn't exist
Note: Configuration file /home/developer/.config/cheribuild.json does not exist, using only command line arguments.
Sources will be stored in /home/developer/cheri
Build artifacts will be stored in /home/developer/cheri/output
cd /usr/home/developer/cheribuild && git fetch
Fatal error: Dependency for llvm-native missing: Required program pkg-config is missing!
Possible solution: Run `pkg install pkgconf`
...
developer@cheribsd:~/cheribuild $ sudo pkg64 install pkg-config
...

At this point the script got to work but eventually failed. Log below.

developer@cheribsd:~/cheribuild $ ./cheribuild.py cheribsd-riscv64-purecap -d
Checking /home/developer/.config/cheribuild.json since /usr/home/developer/cheribuild/cheribuild.json doesn't exist
Note: Configuration file /home/developer/.config/cheribuild.json does not exist, using only command line arguments.
Sources will be stored in /home/developer/cheri
Build artifacts will be stored in /home/developer/cheri/output
cd /usr/home/developer/cheribuild && git fetch
pkg-config --modversion zlib
/usr/local64/bin/cmake --version
/usr/bin/cc supports -fuse-ld=lld, linking should be much faster!
cd / && git clone --depth 1 --no-single-branch --recurse-submodules https://github.com/CTSRD-CHERI/llvm-project.git /home/developer/cheri/llvm-project
Cloning into '/home/developer/cheri/llvm-project'...
remote: Enumerating objects: 295355, done.
remote: Counting objects: 100% (295355/295355), done.
remote: Compressing objects: 100% (182331/182331), done.
remote: Total 295355 (delta 162566), reused 191764 (delta 105840), pack-reused 0
Receiving objects: 100% (295355/295355), 294.31 MiB | 1.67 MiB/s, done.
Resolving deltas: 100% (162566/162566), done.
Updating files: 100% (107856/107856), done.
cd /home/developer/cheri/llvm-project && git fetch
Skipping update: Current HEAD is up-to-date or ahead of upstream.
Configuring llvm-native (-native) ... 
cd /home/developer/cheri/build/llvm-project-build && env PKG_CONFIG_PATH=/home/developer/cheri/output/bootstrap/lib/pkgconfig:/home/developer/cheri/output/bootstrap/share/pkgconfig:/home/developer/cheri/output/bootstrap/libdata/pkgconfig: PKG_CONFIG_LIBDIR=/usr/local/libdata/pkgconfig:/usr/libdata/pkgconfig /usr/local64/bin/cmake -GNinja -S /home/developer/cheri/llvm-project/llvm -B /home/developer/cheri/build/llvm-project-build -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/home/developer/cheri/output/bootstrap -DCMAKE_INSTALL_PREFIX=/home/developer/cheri/output/sdk -DCMAKE_BUILD_RPATH_USE_ORIGIN=TRUE -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE '-DCMAKE_INSTALL_RPATH=$ORIGIN/../lib' -DLLVM_PARALLEL_LINK_JOBS=4 -DLLVM_CCACHE_BUILD=FALSE -DPYTHON_EXECUTABLE=/usr/local64/bin/python3 -DPython3_EXECUTABLE=/usr/local64/bin/python3 -DLLVM_INSTALL_BINUTILS_SYMLINKS=TRUE -DLLVM_ENABLE_LIBXML2=FALSE -DLLVM_ENABLE_ZLIB=FORCE_ON -DLLVM_ENABLE_OCAMLDOC=FALSE -DLLVM_ENABLE_BINDINGS=FALSE -DLLVM_INCLUDE_EXAMPLES=FALSE -DLLVM_INCLUDE_DOCS=FALSE -DLLVM_INCLUDE_BENCHMARKS=FALSE -DLLVM_INSTALL_UTILS=TRUE -DCLANG_ENABLE_STATIC_ANALYZER=FALSE -DCLANG_ENABLE_ARCMT=FALSE -DLLVM_ENABLE_Z3_SOLVER=FALSE -DLLVM_TOOL_LLVM_MCA_BUILD=FALSE -DLLVM_TOOL_LLVM_EXEGESIS_BUILD=FALSE -DLLVM_TOOL_LLVM_RC_BUILD=FALSE -DLLVM_ENABLE_LLD=TRUE -DLLVM_OPTIMIZED_TABLEGEN=FALSE -DLLVM_USE_SPLIT_DWARF=TRUE -DLLVM_ENABLE_ASSERTIONS=TRUE '-DLLVM_LIT_ARGS=--max-time 3600 --timeout 300 -s -vv' '-DLLVM_ENABLE_PROJECTS=llvm;clang;lld' '-DLLVM_TARGETS_TO_BUILD=AArch64;ARM;Mips;RISCV;X86;host' -DCLANG_ROUND_TRIP_CC1_ARGS=FALSE -DCMAKE_C_COMPILER=/usr/bin/cc -DCMAKE_CXX_COMPILER=/usr/bin/c++ -DCMAKE_ASM_COMPILER=/usr/bin/cc -DCMAKE_C_FLAGS_INIT=-Wno-cheri-inefficient -DCMAKE_CXX_FLAGS_INIT=-Wno-cheri-inefficient -DCMAKE_ASM_FLAGS_INIT=-Wno-cheri-inefficient
-- The C compiler identification is Clang 13.0.0
-- The CXX compiler identification is Clang 13.0.0
-- The ASM compiler identification is Clang with GNU-like command-line
-- Found assembler: /usr/bin/cc
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- clang project is enabled
-- clang-tools-extra project is disabled
-- compiler-rt project is disabled
-- cross-project-tests project is disabled
-- libc project is disabled
-- libclc project is disabled
-- libcxx project is disabled
-- libcxxabi project is disabled
-- libunwind project is disabled
-- lld project is enabled
-- lldb project is disabled
-- mlir project is disabled
-- openmp project is disabled
-- parallel-libs project is disabled
-- polly project is disabled
-- pstl project is disabled
-- flang project is disabled
-- Performing Test LLVM_LIBSTDCXX_MIN
-- Performing Test LLVM_LIBSTDCXX_MIN - Success
-- Performing Test LLVM_LIBSTDCXX_SOFT_ERROR
-- Performing Test LLVM_LIBSTDCXX_SOFT_ERROR - Success
-- Looking for dlfcn.h
-- Looking for dlfcn.h - found
-- Looking for errno.h
-- Looking for errno.h - found
-- Looking for fcntl.h
-- Looking for fcntl.h - found
-- Looking for link.h
-- Looking for link.h - found
-- Looking for malloc/malloc.h
-- Looking for malloc/malloc.h - not found
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for signal.h
-- Looking for signal.h - found
-- Looking for sys/ioctl.h
-- Looking for sys/ioctl.h - found
-- Looking for sys/mman.h
-- Looking for sys/mman.h - found
-- Looking for sys/param.h
-- Looking for sys/param.h - found
-- Looking for sys/resource.h
-- Looking for sys/resource.h - found
-- Looking for sys/stat.h
-- Looking for sys/stat.h - found
-- Looking for sys/time.h
-- Looking for sys/time.h - found
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for sysexits.h
-- Looking for sysexits.h - found
-- Looking for termios.h
-- Looking for termios.h - found
-- Looking for unistd.h
-- Looking for unistd.h - found
-- Looking for valgrind/valgrind.h
-- Looking for valgrind/valgrind.h - not found
-- Looking for fenv.h
-- Looking for fenv.h - found
-- Looking for FE_ALL_EXCEPT
-- Looking for FE_ALL_EXCEPT - found
-- Looking for FE_INEXACT
-- Looking for FE_INEXACT - found
-- Looking for mach/mach.h
-- Looking for mach/mach.h - not found
-- Looking for histedit.h
-- Looking for histedit.h - found
-- Looking for CrashReporterClient.h
-- Looking for CrashReporterClient.h - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Looking for pthread_getspecific in pthread
-- Looking for pthread_getspecific in pthread - found
-- Looking for pthread_rwlock_init in pthread
-- Looking for pthread_rwlock_init in pthread - found
-- Looking for pthread_mutex_lock in pthread
-- Looking for pthread_mutex_lock in pthread - found
-- Looking for dlopen in dl
-- Looking for dlopen in dl - found
-- Looking for clock_gettime in rt
-- Looking for clock_gettime in rt - found
-- Looking for pfm_initialize in pfm
-- Looking for pfm_initialize in pfm - not found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Found ZLIB: /usr/lib/libz.so (found version "1.2.12") 
-- Looking for compress2
-- Looking for compress2 - found
-- Looking for el_init in edit
-- Looking for el_init in edit - found
-- Looking for xar_open in xar
-- Looking for xar_open in xar - not found
-- Looking for arc4random
-- Looking for arc4random - found
-- Looking for backtrace
-- Looking for backtrace - not found
-- Found Backtrace: /usr/lib/libexecinfo.so  
-- Performing Test C_SUPPORTS_WERROR_UNGUARDED_AVAILABILITY_NEW
-- Performing Test C_SUPPORTS_WERROR_UNGUARDED_AVAILABILITY_NEW - Success
-- Looking for __register_frame
-- Looking for __register_frame - found
-- Looking for __deregister_frame
-- Looking for __deregister_frame - found
-- Looking for _Unwind_Backtrace
-- Looking for _Unwind_Backtrace - found
-- Looking for getpagesize
-- Looking for getpagesize - found
-- Looking for sysconf
-- Looking for sysconf - found
-- Looking for getrusage
-- Looking for getrusage - found
-- Looking for setrlimit
-- Looking for setrlimit - found
-- Looking for isatty
-- Looking for isatty - found
-- Looking for futimens
-- Looking for futimens - found
-- Looking for futimes
-- Looking for futimes - found
-- Looking for posix_fallocate
-- Looking for posix_fallocate - found
-- Looking for sigaltstack
-- Looking for sigaltstack - found
-- Looking for lseek64
-- Looking for lseek64 - not found
-- Looking for mallctl
-- Looking for mallctl - found
-- Looking for mallinfo
-- Looking for mallinfo - not found
-- Looking for mallinfo2
-- Looking for mallinfo2 - not found
-- Looking for malloc_zone_statistics
-- Looking for malloc_zone_statistics - not found
-- Looking for getrlimit
-- Looking for getrlimit - found
-- Looking for posix_spawn
-- Looking for posix_spawn - found
-- Looking for pread
-- Looking for pread - found
-- Looking for sbrk
-- Looking for sbrk - not found
-- Looking for strerror
-- Looking for strerror - found
-- Looking for strerror_r
-- Looking for strerror_r - found
-- Looking for strerror_s
-- Looking for strerror_s - not found
-- Looking for setenv
-- Looking for setenv - found
-- Looking for dlopen
-- Looking for dlopen - found
-- Looking for dladdr
-- Looking for dladdr - found
-- Performing Test HAVE_STRUCT_STAT_ST_MTIMESPEC_TV_NSEC
-- Performing Test HAVE_STRUCT_STAT_ST_MTIMESPEC_TV_NSEC - Success
-- Performing Test HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC
-- Performing Test HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC - Success
-- Looking for __GLIBC__
-- Looking for __GLIBC__ - not found
-- Looking for pthread_getname_np
-- Looking for pthread_getname_np - found
-- Looking for pthread_setname_np
-- Looking for pthread_setname_np - found
-- Looking for proc_pid_rusage
-- Looking for proc_pid_rusage - not found
-- Performing Test HAVE_STD_IS_TRIVIALLY_COPYABLE
-- Performing Test HAVE_STD_IS_TRIVIALLY_COPYABLE - Success
-- Performing Test HAVE_CXX_ATOMICS_WITHOUT_LIB
-- Performing Test HAVE_CXX_ATOMICS_WITHOUT_LIB - Success
-- Performing Test HAVE_CXX_ATOMICS64_WITHOUT_LIB
-- Performing Test HAVE_CXX_ATOMICS64_WITHOUT_LIB - Success
-- Performing Test LLVM_HAS_ATOMICS
-- Performing Test LLVM_HAS_ATOMICS - Success
-- Performing Test SUPPORTS_VARIADIC_MACROS_FLAG
-- Performing Test SUPPORTS_VARIADIC_MACROS_FLAG - Success
-- Performing Test SUPPORTS_GNU_ZERO_VARIADIC_MACRO_ARGUMENTS_FLAG
-- Performing Test SUPPORTS_GNU_ZERO_VARIADIC_MACRO_ARGUMENTS_FLAG - Success
-- Native target architecture is AArch64
-- Threads enabled.
-- Doxygen disabled.
-- Go bindings disabled.
-- Ninja version: 1.11.1
-- Could NOT find OCaml (missing: OCAMLFIND OCAML_VERSION OCAML_STDLIB_PATH) 
-- OCaml bindings disabled.
-- Could NOT find Python module pygments
-- Could NOT find Python module pygments.lexers.c_cpp
-- Could NOT find Python module yaml
-- LLVM host triple: aarch64c-unknown-freebsd14.0
-- LLVM default target triple: aarch64c-unknown-freebsd14.0
-- Performing Test CXX_SUPPORTS_CUSTOM_LINKER
-- Performing Test CXX_SUPPORTS_CUSTOM_LINKER - Success
-- Performing Test C_SUPPORTS_FPIC
-- Performing Test C_SUPPORTS_FPIC - Success
-- Performing Test CXX_SUPPORTS_FPIC
-- Performing Test CXX_SUPPORTS_FPIC - Success
-- Building with -fPIC
-- Performing Test C_SUPPORTS_FNO_SEMANTIC_INTERPOSITION
-- Performing Test C_SUPPORTS_FNO_SEMANTIC_INTERPOSITION - Success
-- Performing Test CXX_SUPPORTS_FNO_SEMANTIC_INTERPOSITION
-- Performing Test CXX_SUPPORTS_FNO_SEMANTIC_INTERPOSITION - Success
-- Performing Test SUPPORTS_FVISIBILITY_INLINES_HIDDEN_FLAG
-- Performing Test SUPPORTS_FVISIBILITY_INLINES_HIDDEN_FLAG - Success
-- Performing Test C_SUPPORTS_WERROR_DATE_TIME
-- Performing Test C_SUPPORTS_WERROR_DATE_TIME - Success
-- Performing Test CXX_SUPPORTS_WERROR_DATE_TIME
-- Performing Test CXX_SUPPORTS_WERROR_DATE_TIME - Success
-- Performing Test CXX_SUPPORTS_WERROR_UNGUARDED_AVAILABILITY_NEW
-- Performing Test CXX_SUPPORTS_WERROR_UNGUARDED_AVAILABILITY_NEW - Success
-- Performing Test CXX_SUPPORTS_MISSING_FIELD_INITIALIZERS_FLAG
-- Performing Test CXX_SUPPORTS_MISSING_FIELD_INITIALIZERS_FLAG - Success
-- Performing Test C_SUPPORTS_CXX98_COMPAT_EXTRA_SEMI_FLAG
-- Performing Test C_SUPPORTS_CXX98_COMPAT_EXTRA_SEMI_FLAG - Success
-- Performing Test CXX_SUPPORTS_CXX98_COMPAT_EXTRA_SEMI_FLAG
-- Performing Test CXX_SUPPORTS_CXX98_COMPAT_EXTRA_SEMI_FLAG - Success
-- Performing Test C_SUPPORTS_IMPLICIT_FALLTHROUGH_FLAG
-- Performing Test C_SUPPORTS_IMPLICIT_FALLTHROUGH_FLAG - Success
-- Performing Test CXX_SUPPORTS_IMPLICIT_FALLTHROUGH_FLAG
-- Performing Test CXX_SUPPORTS_IMPLICIT_FALLTHROUGH_FLAG - Success
-- Performing Test C_SUPPORTS_COVERED_SWITCH_DEFAULT_FLAG
-- Performing Test C_SUPPORTS_COVERED_SWITCH_DEFAULT_FLAG - Success
-- Performing Test CXX_SUPPORTS_COVERED_SWITCH_DEFAULT_FLAG
-- Performing Test CXX_SUPPORTS_COVERED_SWITCH_DEFAULT_FLAG - Success
-- Performing Test CXX_SUPPORTS_CLASS_MEMACCESS_FLAG
-- Performing Test CXX_SUPPORTS_CLASS_MEMACCESS_FLAG - Failed
-- Performing Test CXX_SUPPORTS_NOEXCEPT_TYPE_FLAG
-- Performing Test CXX_SUPPORTS_NOEXCEPT_TYPE_FLAG - Success
-- Performing Test CXX_WONT_WARN_ON_FINAL_NONVIRTUALDTOR
-- Performing Test CXX_WONT_WARN_ON_FINAL_NONVIRTUALDTOR - Success
-- Performing Test C_SUPPORTS_DELETE_NON_VIRTUAL_DTOR_FLAG
-- Performing Test C_SUPPORTS_DELETE_NON_VIRTUAL_DTOR_FLAG - Success
-- Performing Test CXX_SUPPORTS_DELETE_NON_VIRTUAL_DTOR_FLAG
-- Performing Test CXX_SUPPORTS_DELETE_NON_VIRTUAL_DTOR_FLAG - Success
-- Performing Test CXX_SUPPORTS_SUGGEST_OVERRIDE_FLAG
-- Performing Test CXX_SUPPORTS_SUGGEST_OVERRIDE_FLAG - Success
-- Performing Test CXX_WSUGGEST_OVERRIDE_ALLOWS_ONLY_FINAL
-- Performing Test CXX_WSUGGEST_OVERRIDE_ALLOWS_ONLY_FINAL - Success
-- Performing Test C_WCOMMENT_ALLOWS_LINE_WRAP
-- Performing Test C_WCOMMENT_ALLOWS_LINE_WRAP - Success
-- Performing Test C_SUPPORTS_STRING_CONVERSION_FLAG
-- Performing Test C_SUPPORTS_STRING_CONVERSION_FLAG - Success
-- Performing Test CXX_SUPPORTS_STRING_CONVERSION_FLAG
-- Performing Test CXX_SUPPORTS_STRING_CONVERSION_FLAG - Success
-- Performing Test C_SUPPORTS_MISLEADING_INDENTATION_FLAG
-- Performing Test C_SUPPORTS_MISLEADING_INDENTATION_FLAG - Success
-- Performing Test CXX_SUPPORTS_MISLEADING_INDENTATION_FLAG
-- Performing Test CXX_SUPPORTS_MISLEADING_INDENTATION_FLAG - Success
-- Performing Test LINKER_SUPPORTS_COLOR_DIAGNOSTICS
-- Performing Test LINKER_SUPPORTS_COLOR_DIAGNOSTICS - Success
-- Performing Test C_SUPPORTS_FNO_FUNCTION_SECTIONS
-- Performing Test C_SUPPORTS_FNO_FUNCTION_SECTIONS - Success
-- Performing Test C_SUPPORTS_FFUNCTION_SECTIONS
-- Performing Test C_SUPPORTS_FFUNCTION_SECTIONS - Success
-- Performing Test CXX_SUPPORTS_FFUNCTION_SECTIONS
-- Performing Test CXX_SUPPORTS_FFUNCTION_SECTIONS - Success
-- Performing Test C_SUPPORTS_FDATA_SECTIONS
-- Performing Test C_SUPPORTS_FDATA_SECTIONS - Success
-- Performing Test CXX_SUPPORTS_FDATA_SECTIONS
-- Performing Test CXX_SUPPORTS_FDATA_SECTIONS - Success
-- Looking for os_signpost_interval_begin
-- Looking for os_signpost_interval_begin - not found
-- Found Python3: /usr/local64/bin/python3 (found suitable version "3.9.14", minimum required is "3.6") found components: Interpreter 
-- Linker detection: LLD
-- Performing Test HAS_WERROR_GLOBAL_CTORS
-- Performing Test HAS_WERROR_GLOBAL_CTORS - Success
-- Performing Test LLVM_HAS_NOGLOBAL_CTOR_MUTEX
-- Performing Test LLVM_HAS_NOGLOBAL_CTOR_MUTEX - Failed
-- Found Git: /usr/local/bin/git (found version "2.37.3") 
-- Targeting AArch64
-- Targeting ARM
-- Targeting Mips
-- Targeting RISCV
-- Targeting X86
-- Looking for sys/resource.h
-- Looking for sys/resource.h - found
-- Clang version: 13.0.0
-- Performing Test CXX_SUPPORTS_NO_NESTED_ANON_TYPES_FLAG
-- Performing Test CXX_SUPPORTS_NO_NESTED_ANON_TYPES_FLAG - Success
-- Not building amdgpu-arch: hsa-runtime64 not found
-- LLD version: 13.0.0
-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    PYTHON_EXECUTABLE


-- Build files have been written to: /home/developer/cheri/build/llvm-project-build
Building llvm-native (-native) ... 
cd /home/developer/cheri/build/llvm-project-build && env PKG_CONFIG_PATH=/home/developer/cheri/output/bootstrap/lib/pkgconfig:/home/developer/cheri/output/bootstrap/share/pkgconfig:/home/developer/cheri/output/bootstrap/libdata/pkgconfig: PKG_CONFIG_LIBDIR=/usr/local/libdata/pkgconfig:/usr/libdata/pkgconfig nice cmake --build . --target all -- -j4
[31/3395] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CodeGenCoverage.cpp.o
FAILED: lib/Support/CMakeFiles/LLVMSupport.dir/CodeGenCoverage.cpp.o 
/usr/bin/c++ -DGTEST_HAS_RTTI=0 -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/developer/cheri/build/llvm-project-build/lib/Support -I/home/developer/cheri/llvm-project/llvm/lib/Support -I/home/developer/cheri/build/llvm-project-build/include -I/home/developer/cheri/llvm-project/llvm/include -Wno-cheri-inefficient -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -fdiagnostics-color -ffunction-sections -fdata-sections  -O3 -DNDEBUG -UNDEBUG -std=c++14  -fno-exceptions -fno-rtti -MD -MT lib/Support/CMakeFiles/LLVMSupport.dir/CodeGenCoverage.cpp.o -MF lib/Support/CMakeFiles/LLVMSupport.dir/CodeGenCoverage.cpp.o.d -o lib/Support/CMakeFiles/LLVMSupport.dir/CodeGenCoverage.cpp.o -c /home/developer/cheri/llvm-project/llvm/lib/Support/CodeGenCoverage.cpp
In file included from /home/developer/cheri/llvm-project/llvm/lib/Support/CodeGenCoverage.cpp:12:
In file included from /home/developer/cheri/llvm-project/llvm/include/llvm/Support/CodeGenCoverage.h:14:
/home/developer/cheri/llvm-project/llvm/include/llvm/ADT/BitVector.h:828:9: error: no viable conversion from 'pair<[...], ArrayRef<unsigned long>>' to 'const pair<[...], ArrayRef<unsigned __intcap>>'
        std::make_pair(V.size(), V.getData()));
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/v1/__utility/pair.h:54:5: note: candidate constructor not viable: no known conversion from 'pair<typename __unwrap_ref_decay<unsigned int>::type, typename __unwrap_ref_decay<ArrayRef<unsigned long>>::type>' (aka 'pair<unsigned int, llvm::ArrayRef<unsigned long>>') to 'const std::pair<unsigned int, llvm::ArrayRef<unsigned __intcap>> &' for 1st argument
    pair(pair const&) = default;
    ^
/usr/include/c++/v1/__utility/pair.h:55:5: note: candidate constructor not viable: no known conversion from 'pair<typename __unwrap_ref_decay<unsigned int>::type, typename __unwrap_ref_decay<ArrayRef<unsigned long>>::type>' (aka 'pair<unsigned int, llvm::ArrayRef<unsigned long>>') to 'std::pair<unsigned int, llvm::ArrayRef<unsigned __intcap>> &&' for 1st argument
    pair(pair&&) = default;
    ^
/usr/include/c++/v1/__utility/pair.h:79:62: note: candidate template ignored: disabled by 'enable_if' [with _U1 = unsigned int, _U2 = llvm::ArrayRef<unsigned long>]
    using _EnableB _LIBCPP_NODEBUG_TYPE = typename enable_if<_Val, bool>::type;
                                                             ^
/usr/include/c++/v1/__utility/pair.h:79:62: note: candidate template ignored: disabled by 'enable_if' [with _U1 = unsigned int, _U2 = llvm::ArrayRef<unsigned long>]
/usr/include/c++/v1/__utility/pair.h:79:62: note: candidate template ignored: disabled by 'enable_if' [with _Tuple = std::pair<unsigned int, llvm::ArrayRef<unsigned long>>]
/usr/include/c++/v1/__utility/pair.h:198:14: note: explicit constructor is not a candidate
    explicit pair(pair<_U1, _U2> const& __p)
             ^
/usr/include/c++/v1/__utility/pair.h:216:14: note: explicit constructor is not a candidate
    explicit pair(pair<_U1, _U2>&&__p)
             ^
/usr/include/c++/v1/__utility/pair.h:234:14: note: explicit constructor is not a candidate
    explicit pair(_Tuple&& __p)
             ^
/home/developer/cheri/llvm-project/llvm/include/llvm/ADT/DenseMapInfo.h:254:44: note: passing argument to parameter 'PairVal' here
  static unsigned getHashValue(const Pair& PairVal) {
                                           ^
1 error generated.
[34/3395] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CommandLine.cpp.o
FAILED: lib/Support/CMakeFiles/LLVMSupport.dir/CommandLine.cpp.o 
/usr/bin/c++ -DGTEST_HAS_RTTI=0 -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/developer/cheri/build/llvm-project-build/lib/Support -I/home/developer/cheri/llvm-project/llvm/lib/Support -I/home/developer/cheri/build/llvm-project-build/include -I/home/developer/cheri/llvm-project/llvm/include -Wno-cheri-inefficient -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -fdiagnostics-color -ffunction-sections -fdata-sections  -O3 -DNDEBUG -UNDEBUG -std=c++14  -fno-exceptions -fno-rtti -MD -MT lib/Support/CMakeFiles/LLVMSupport.dir/CommandLine.cpp.o -MF lib/Support/CMakeFiles/LLVMSupport.dir/CommandLine.cpp.o.d -o lib/Support/CMakeFiles/LLVMSupport.dir/CommandLine.cpp.o -c /home/developer/cheri/llvm-project/llvm/lib/Support/CommandLine.cpp
In file included from /home/developer/cheri/llvm-project/llvm/lib/Support/CommandLine.cpp:43:
In file included from /home/developer/cheri/llvm-project/llvm/include/llvm/Support/Process.h:32:
In file included from /home/developer/cheri/llvm-project/llvm/include/llvm/Support/Program.h:17:
/home/developer/cheri/llvm-project/llvm/include/llvm/ADT/BitVector.h:828:9: error: no viable conversion from 'pair<[...], ArrayRef<unsigned long>>' to 'const pair<[...], ArrayRef<unsigned __intcap>>'
        std::make_pair(V.size(), V.getData()));
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/v1/__utility/pair.h:54:5: note: candidate constructor not viable: no known conversion from 'pair<typename __unwrap_ref_decay<unsigned int>::type, typename __unwrap_ref_decay<ArrayRef<unsigned long>>::type>' (aka 'pair<unsigned int, llvm::ArrayRef<unsigned long>>') to 'const std::pair<unsigned int, llvm::ArrayRef<unsigned __intcap>> &' for 1st argument
    pair(pair const&) = default;
    ^
/usr/include/c++/v1/__utility/pair.h:55:5: note: candidate constructor not viable: no known conversion from 'pair<typename __unwrap_ref_decay<unsigned int>::type, typename __unwrap_ref_decay<ArrayRef<unsigned long>>::type>' (aka 'pair<unsigned int, llvm::ArrayRef<unsigned long>>') to 'std::pair<unsigned int, llvm::ArrayRef<unsigned __intcap>> &&' for 1st argument
    pair(pair&&) = default;
    ^
/usr/include/c++/v1/__utility/pair.h:79:62: note: candidate template ignored: disabled by 'enable_if' [with _U1 = unsigned int, _U2 = llvm::ArrayRef<unsigned long>]
    using _EnableB _LIBCPP_NODEBUG_TYPE = typename enable_if<_Val, bool>::type;
                                                             ^
/usr/include/c++/v1/__utility/pair.h:79:62: note: candidate template ignored: disabled by 'enable_if' [with _U1 = unsigned int, _U2 = llvm::ArrayRef<unsigned long>]
/usr/include/c++/v1/__utility/pair.h:79:62: note: candidate template ignored: disabled by 'enable_if' [with _Tuple = std::pair<unsigned int, llvm::ArrayRef<unsigned long>>]
/usr/include/c++/v1/__utility/pair.h:198:14: note: explicit constructor is not a candidate
    explicit pair(pair<_U1, _U2> const& __p)
             ^
/usr/include/c++/v1/__utility/pair.h:216:14: note: explicit constructor is not a candidate
    explicit pair(pair<_U1, _U2>&&__p)
             ^
/usr/include/c++/v1/__utility/pair.h:234:14: note: explicit constructor is not a candidate
    explicit pair(_Tuple&& __p)
             ^
/home/developer/cheri/llvm-project/llvm/include/llvm/ADT/DenseMapInfo.h:254:44: note: passing argument to parameter 'PairVal' here
  static unsigned getHashValue(const Pair& PairVal) {
                                           ^
1 error generated.
ninja: build stopped: subcommand failed.
Fatal error (in target llvm-native): Command `nice cmake --build . --target all -- -j4` failed with non-zero exit code 1
@jrtc27
Copy link
Member

jrtc27 commented Feb 23, 2023

The problem is that it’s defaulting to the native ABI for LLVM, which is purecap, but LLVM cannot be built as purecap yet. Though I do have to question why you want to do this, I can’t see a good reason for cross-compiling from a Morello system, any modern half-decent desktop or laptop will likely be faster (and not because of CHERI, just because the underlying core stems from one that’s designed to scale out, but Morello only has four of them).

@arichardson I thought we had native-hybrid targets to deal with this kind of thing?

@matbennion
Copy link
Author

Hi, I'm a beginner here and just trying to follow the examples at https://ctsrd-cheri.github.io/cheri-exercises/

I didn't realise it wouldn't work on the Morello. Looking at the text on the intro:

"You can use our cheribuild tool to build the CHERI-RISC-V SDK, CheriBSD, and QEMU on macOS, FreeBSD, and Linux."

I equated FreeBSD with CheriBSD but it seems that isn't the case. I can try again with Ubuntu - do you know of any restrictions here? I have Ubuntu 20.0.4 handy.

@brooksdavis
Copy link
Member

brooksdavis commented Feb 23, 2023

If you just want to build the exercises on a Morello box, make sure you've run pkg64 install llvm-base and then use the installed cc to build purecap binaries and clang-morello to build hybrid ones. We should update the cheri-exercises instructions for native Morello.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants