Skip to content

Instantly share code, notes, and snippets.

@mcandre
Last active September 24, 2021 18:41
Show Gist options
  • Save mcandre/f03cbbf6def5a85b61a33dbd1602de17 to your computer and use it in GitHub Desktop.
Save mcandre/f03cbbf6def5a85b61a33dbd1602de17 to your computer and use it in GitHub Desktop.
cmake build error log
$ conan install -s compiler.cppstd=17 -s compiler=clang -s compiler.version=7.0 --build missing .
Configuration:
[settings]
arch=armv7
arch_build=armv7
build_type=Release
compiler=clang
compiler.cppstd=17
compiler.version=7.0
os=Linux
os_build=Linux
[options]
[build_requires]
[env]
Version ranges solved
Version range '>=4.3.0 <5.0' required by 'conanfile.txt' resolved to 'nanobench/4.3.5' in local cache
conanfile.txt: Installing package
Requirements
nanobench/4.3.5 from 'conancenter' - Cache
Packages
nanobench/4.3.5:5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9 - Cache
Installing (downloading, building) binaries...
nanobench/4.3.5: Already installed!
conanfile.txt: Generator cmake created conanbuildinfo.cmake
conanfile.txt: Generator txt created conanbuildinfo.txt
conanfile.txt: Aggregating env generators
conanfile.txt: Generated conaninfo.txt
conanfile.txt: Generated graphinfo
$ cmake .
-- Conan: Adjusting output directories
-- Conan: Using cmake targets configuration
-- Conan: Adjusting default RPATHs Conan policies
-- Conan: Adjusting language standard
-- Current conanbuildinfo.cmake directory: /home/pi/go/src/github.com/mcandre/swiper
-- Conan: Checking correct version: 7.0
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pi/go/src/github.com/mcandre/swiper
$ VERBOSE=1 cmake --build . --config Release
/usr/bin/cmake -S/home/pi/go/src/github.com/mcandre/swiper -B/home/pi/go/src/github.com/mcandre/swiper --check-build-system CMakeFiles/Makefile.cmake 0
/usr/bin/cmake -E cmake_progress_start /home/pi/go/src/github.com/mcandre/swiper/CMakeFiles /home/pi/go/src/github.com/mcandre/swiper/CMakeFiles/progress.marks
/usr/bin/make -f CMakeFiles/Makefile2 all
make[1]: Entering directory '/home/pi/go/src/github.com/mcandre/swiper'
/usr/bin/make -f CMakeFiles/bench-swiper-instrument.dir/build.make CMakeFiles/bench-swiper-instrument.dir/depend
make[2]: Entering directory '/home/pi/go/src/github.com/mcandre/swiper'
cd /home/pi/go/src/github.com/mcandre/swiper && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/pi/go/src/github.com/mcandre/swiper /home/pi/go/src/github.com/mcandre/swiper /home/pi/go/src/github.com/mcandre/swiper /home/pi/go/src/github.com/mcandre/swiper /home/pi/go/src/github.com/mcandre/swiper/CMakeFiles/bench-swiper-instrument.dir/DependInfo.cmake --color=
make[2]: Leaving directory '/home/pi/go/src/github.com/mcandre/swiper'
/usr/bin/make -f CMakeFiles/bench-swiper-instrument.dir/build.make CMakeFiles/bench-swiper-instrument.dir/build
make[2]: Entering directory '/home/pi/go/src/github.com/mcandre/swiper'
make[2]: Nothing to be done for 'CMakeFiles/bench-swiper-instrument.dir/build'.
make[2]: Leaving directory '/home/pi/go/src/github.com/mcandre/swiper'
[ 25%] Built target bench-swiper-instrument
/usr/bin/make -f CMakeFiles/swiper.profraw.dir/build.make CMakeFiles/swiper.profraw.dir/depend
make[2]: Entering directory '/home/pi/go/src/github.com/mcandre/swiper'
cd /home/pi/go/src/github.com/mcandre/swiper && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/pi/go/src/github.com/mcandre/swiper /home/pi/go/src/github.com/mcandre/swiper /home/pi/go/src/github.com/mcandre/swiper /home/pi/go/src/github.com/mcandre/swiper /home/pi/go/src/github.com/mcandre/swiper/CMakeFiles/swiper.profraw.dir/DependInfo.cmake --color=
make[2]: Leaving directory '/home/pi/go/src/github.com/mcandre/swiper'
/usr/bin/make -f CMakeFiles/swiper.profraw.dir/build.make CMakeFiles/swiper.profraw.dir/build
make[2]: Entering directory '/home/pi/go/src/github.com/mcandre/swiper'
/usr/bin/cmake -E env LLVM_PROFILE_FILE=swiper.profraw /home/pi/go/src/github.com/mcandre/swiper/bin/bench-swiper-instrument 00071B030141
Warning, results might be unstable:
* CPU frequency scaling enabled: CPU 0 between 600.0 and 1,500.0 MHz
* CPU governor is 'ondemand' but should be 'performance'
* Turbo is enabled, CPU frequency will fluctuate
Recommendations
* Use 'pyperf system tune' before benchmarking. See https://github.com/psf/pyperf
| ns/op | op/s | err% | total | benchmark
|--------------------:|--------------------:|--------:|----------:|:----------
| 58.25 | 17,166,768.10 | 0.0% | 11.67 | `crack`
make[2]: Leaving directory '/home/pi/go/src/github.com/mcandre/swiper'
[ 25%] Built target swiper.profraw
/usr/bin/make -f CMakeFiles/swiper.profdata.dir/build.make CMakeFiles/swiper.profdata.dir/depend
make[2]: Entering directory '/home/pi/go/src/github.com/mcandre/swiper'
cd /home/pi/go/src/github.com/mcandre/swiper && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/pi/go/src/github.com/mcandre/swiper /home/pi/go/src/github.com/mcandre/swiper /home/pi/go/src/github.com/mcandre/swiper /home/pi/go/src/github.com/mcandre/swiper /home/pi/go/src/github.com/mcandre/swiper/CMakeFiles/swiper.profdata.dir/DependInfo.cmake --color=
make[2]: Leaving directory '/home/pi/go/src/github.com/mcandre/swiper'
/usr/bin/make -f CMakeFiles/swiper.profdata.dir/build.make CMakeFiles/swiper.profdata.dir/build
make[2]: Entering directory '/home/pi/go/src/github.com/mcandre/swiper'
llvm-profdata merge -output swiper.profdata swiper.profraw
make[2]: Leaving directory '/home/pi/go/src/github.com/mcandre/swiper'
[ 25%] Built target swiper.profdata
/usr/bin/make -f CMakeFiles/bench-swiper.dir/build.make CMakeFiles/bench-swiper.dir/depend
make[2]: Entering directory '/home/pi/go/src/github.com/mcandre/swiper'
cd /home/pi/go/src/github.com/mcandre/swiper && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/pi/go/src/github.com/mcandre/swiper /home/pi/go/src/github.com/mcandre/swiper /home/pi/go/src/github.com/mcandre/swiper /home/pi/go/src/github.com/mcandre/swiper /home/pi/go/src/github.com/mcandre/swiper/CMakeFiles/bench-swiper.dir/DependInfo.cmake --color=
make[2]: Leaving directory '/home/pi/go/src/github.com/mcandre/swiper'
/usr/bin/make -f CMakeFiles/bench-swiper.dir/build.make CMakeFiles/bench-swiper.dir/build
make[2]: Entering directory '/home/pi/go/src/github.com/mcandre/swiper'
[ 33%] Building CXX object CMakeFiles/bench-swiper.dir/src/cmd/bench-swiper/main.cpp.o
/usr/bin/cmake -E __run_co_compile --tidy="clang-tidy;-header-filter=/home/pi/go/src/github.com/mcandre/swiper" --source=/home/pi/go/src/github.com/mcandre/swiper/src/cmd/bench-swiper/main.cpp -- /usr/bin/c++ -I/home/pi/go/src/github.com/mcandre/swiper/include -isystem /home/pi/.conan/data/nanobench/4.3.5/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include -O3 -Werror -std=c++17 -fno-exceptions -Wextra -Wall -pedantic -Weffc++ -Wmost -flto -fprofile-use=swiper.profdata -o CMakeFiles/bench-swiper.dir/src/cmd/bench-swiper/main.cpp.o -c /home/pi/go/src/github.com/mcandre/swiper/src/cmd/bench-swiper/main.cpp
/home/pi/go/src/github.com/mcandre/swiper/src/cmd/bench-swiper/main.cpp:12:10: error: 'nanobench.h' file not found [clang-diagnostic-error]
#include <nanobench.h>
^
Error while trying to load a compilation database:
Could not auto-detect compilation database for file "/home/pi/go/src/github.com/mcandre/swiper/src/cmd/bench-swiper/main.cpp"
No compilation database found in /home/pi/go/src/github.com/mcandre/swiper/src/cmd/bench-swiper or any parent directory
fixed-compilation-database: Error while opening fixed database: No such file or directory
json-compilation-database: Error while opening JSON database: No such file or directory
Running without flags.
6511 warnings and 1 error generated.
Error while processing /home/pi/go/src/github.com/mcandre/swiper/src/cmd/bench-swiper/main.cpp.
Suppressed 6511 warnings (6511 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
Found compiler error(s).
make[2]: *** [CMakeFiles/bench-swiper.dir/build.make:63: CMakeFiles/bench-swiper.dir/src/cmd/bench-swiper/main.cpp.o] Error 1
make[2]: Leaving directory '/home/pi/go/src/github.com/mcandre/swiper'
make[1]: *** [CMakeFiles/Makefile2:228: CMakeFiles/bench-swiper.dir/all] Error 2
make[1]: Leaving directory '/home/pi/go/src/github.com/mcandre/swiper'
make: *** [Makefile:95: all] Error 2
$ find ~/.conan -name nanobench.h
/home/pi/.conan/data/nanobench/4.3.5/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/nanobench.h
$ cmake --version
cmake version 3.16.3
CMake suite maintained and supported by Kitware (kitware.com/cmake).
$ conan --version
Conan version 1.40.2
$ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 10 (buster)
Release: 10
Codename: buster
@mcandre
Copy link
Author

mcandre commented Sep 24, 2021

Perhaps the debian buster LLVM toolchain is corrupting target triples. I'm seeing slightly different architecture names used at different stages of compilation.

@mcandre
Copy link
Author

mcandre commented Sep 24, 2021

Finally, libfuzzer is not available out of the box for Debian Buster / RaspbiOS clang & llvm.

Placing some cmake guards around PGO, tidy, and libfuzzer. Now swiper is able to build and run with the Debian Buster / RaspbiOS stable clang toolchain.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment