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

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