-
Notifications
You must be signed in to change notification settings - Fork 6
Description
While experimenting with VERICA, I encountered compatibility issues with different Boost versions. To clarify which versions work, I propose adding compatibility notes to the README.md.
The table below summarizes the build results for different Boost versions, using commit a7da074.
The following nix-shell configuration was used to switch between Boost versions:
{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
name = "verica-dev";
nativeBuildInputs = with pkgs; [
gnumake
gcc
];
buildInputs = with pkgs; [
boost177
cudd
];
}In the nix-shell configuration above, boost177 is replaced with the corresponding Boost version listed in the table below. For each version, a build environment was instantiated using the adapted nix-shell, and the table reflects whether the build completed successfully or failed in that environment.
| Boost Version | Build Status |
|---|---|
| 1.77 | ✅ |
| 1.80 | ✅ |
| 1.81 | ❌ |
| 1.86 | ❌ |
Logs
Boost Version 1.81
I am not aware of why the log appears as it does. The folder /home/verica/include/ does not exist.
Linking
g++ -m64 -fopenmp -march=native -O3 -fomit-frame-pointer -std=c++17 -g -I ./inc -I "/home/gitlab-runner/boost" -I "./inc/cudd" -m64 -fopenmp -Wl,-rpath=./lib -o ./bin/release/verica ./build/release/analyzer/Analyzer.o ./build/release/analyzer/ConfigurationCombinable.o ./build/release/analyzer/ConfigurationComposability.o ./build/release/analyzer/ConfigurationFaultCorrection.o ./build/release/analyzer/ConfigurationFaultDetection.o ./build/release/analyzer/ConfigurationFaultSFA.o ./build/release/analyzer/ConfigurationFaultSIFA.o ./build/release/analyzer/ConfigurationFaultVulnerability.o ./build/release/analyzer/ConfigurationProbing.o ./build/release/analyzer/ConfigurationUniformity.o ./build/release/composer/NetlistComposer.o ./build/release/Configuration.o ./build/release/context/CellLibrary.o ./build/release/context/FaultLibrary.o ./build/release/context/Logger.o ./build/release/context/Settings.o ./build/release/context/State.o ./build/release/cudd/cache.o ./build/release/cudd/cudd_ext.o ./build/release/Environment.o ./build/release/injector/Injector.o ./build/release/netlist/factory/NetlistFactoryFirrtl.o ./build/release/netlist/factory/NetlistFactoryVerilog.o ./build/release/netlist/Module.o ./build/release/netlist/Netlist.o ./build/release/netlist/Pin.o ./build/release/netlist/Wire.o ./build/release/parser/ConfigurationFirrtl.o ./build/release/parser/ConfigurationLibrary.o ./build/release/parser/ConfigurationNetlist.o ./build/release/parser/ConfigurationVerilog.o ./build/release/parser/Parser.o ./build/release/preprocessor/ConfigurationAnnotation.o ./build/release/preprocessor/ConfigurationElaborate.o ./build/release/preprocessor/ConfigurationFIA.o ./build/release/preprocessor/ConfigurationFiltering.o ./build/release/preprocessor/ConfigurationModelPostprocessing.o ./build/release/preprocessor/ConfigurationMultithreading.o ./build/release/preprocessor/ConfigurationSCA.o ./build/release/preprocessor/Preprocessor.o ./build/release/Service.o ./build/release/verica.o ./build/release/visualization/ConfigurationGraphvizDot.o ./build/release/visualization/Visualizer.o -L./lib -lcudd -lboost_program_options
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/parser/ConfigurationFirrtl.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:43: multiple definition of `boost::phoenix::placeholders::uarg10'; ./build/release/Environment.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:43: first defined here
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/parser/ConfigurationFirrtl.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:40: multiple definition of `boost::phoenix::placeholders::uarg9'; ./build/release/Environment.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:40: first defined here
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/parser/ConfigurationFirrtl.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:37: multiple definition of `boost::phoenix::placeholders::uarg8'; ./build/release/Environment.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:37: first defined here
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/parser/ConfigurationFirrtl.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:34: multiple definition of `boost::phoenix::placeholders::uarg7'; ./build/release/Environment.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:34: first defined here
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/parser/ConfigurationFirrtl.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:31: multiple definition of `boost::phoenix::placeholders::uarg6'; ./build/release/Environment.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:31: first defined here
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/parser/ConfigurationFirrtl.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:28: multiple definition of `boost::phoenix::placeholders::uarg5'; ./build/release/Environment.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:28: first defined here
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/parser/ConfigurationFirrtl.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:25: multiple definition of `boost::phoenix::placeholders::uarg4'; ./build/release/Environment.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:25: first defined here
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/parser/ConfigurationFirrtl.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:22: multiple definition of `boost::phoenix::placeholders::uarg3'; ./build/release/Environment.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:22: first defined here
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/parser/ConfigurationFirrtl.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:19: multiple definition of `boost::phoenix::placeholders::uarg2'; ./build/release/Environment.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:19: first defined here
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/parser/ConfigurationFirrtl.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:16: multiple definition of `boost::phoenix::placeholders::uarg1'; ./build/release/Environment.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:16: first defined here
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/parser/ConfigurationVerilog.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:43: multiple definition of `boost::phoenix::placeholders::uarg10'; ./build/release/Environment.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:43: first defined here
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/parser/ConfigurationVerilog.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:40: multiple definition of `boost::phoenix::placeholders::uarg9'; ./build/release/Environment.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:40: first defined here
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/parser/ConfigurationVerilog.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:37: multiple definition of `boost::phoenix::placeholders::uarg8'; ./build/release/Environment.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:37: first defined here
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/parser/ConfigurationVerilog.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:34: multiple definition of `boost::phoenix::placeholders::uarg7'; ./build/release/Environment.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:34: first defined here
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/parser/ConfigurationVerilog.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:31: multiple definition of `boost::phoenix::placeholders::uarg6'; ./build/release/Environment.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:31: first defined here
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/parser/ConfigurationVerilog.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:28: multiple definition of `boost::phoenix::placeholders::uarg5'; ./build/release/Environment.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:28: first defined here
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/parser/ConfigurationVerilog.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:25: multiple definition of `boost::phoenix::placeholders::uarg4'; ./build/release/Environment.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:25: first defined here
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/parser/ConfigurationVerilog.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:22: multiple definition of `boost::phoenix::placeholders::uarg3'; ./build/release/Environment.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:22: first defined here
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/parser/ConfigurationVerilog.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:19: multiple definition of `boost::phoenix::placeholders::uarg2'; ./build/release/Environment.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:19: first defined here
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/parser/ConfigurationVerilog.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:16: multiple definition of `boost::phoenix::placeholders::uarg1'; ./build/release/Environment.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:16: first defined here
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/preprocessor/ConfigurationAnnotation.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:43: multiple definition of `boost::phoenix::placeholders::uarg10'; ./build/release/Environment.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:43: first defined here
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/preprocessor/ConfigurationAnnotation.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:40: multiple definition of `boost::phoenix::placeholders::uarg9'; ./build/release/Environment.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:40: first defined here
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/preprocessor/ConfigurationAnnotation.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:37: multiple definition of `boost::phoenix::placeholders::uarg8'; ./build/release/Environment.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:37: first defined here
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/preprocessor/ConfigurationAnnotation.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:34: multiple definition of `boost::phoenix::placeholders::uarg7'; ./build/release/Environment.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:34: first defined here
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/preprocessor/ConfigurationAnnotation.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:31: multiple definition of `boost::phoenix::placeholders::uarg6'; ./build/release/Environment.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:31: first defined here
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/preprocessor/ConfigurationAnnotation.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:28: multiple definition of `boost::phoenix::placeholders::uarg5'; ./build/release/Environment.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:28: first defined here
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/preprocessor/ConfigurationAnnotation.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:25: multiple definition of `boost::phoenix::placeholders::uarg4'; ./build/release/Environment.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:25: first defined here
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/preprocessor/ConfigurationAnnotation.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:22: multiple definition of `boost::phoenix::placeholders::uarg3'; ./build/release/Environment.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:22: first defined here
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/preprocessor/ConfigurationAnnotation.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:19: multiple definition of `boost::phoenix::placeholders::uarg2'; ./build/release/Environment.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:19: first defined here
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/preprocessor/ConfigurationAnnotation.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:16: multiple definition of `boost::phoenix::placeholders::uarg1'; ./build/release/Environment.o:/home/verica/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:16: first defined here
collect2: error: ld returned 1 exit status
make[1]: *** [makefile:300: bin/release/verica] Error 1
make: *** [makefile:200: release] Error 2
Boost Version 1.86
Linking
g++ -m64 -fopenmp -march=native -O3 -fomit-frame-pointer -std=c++17 -g -I ./inc -I "/home/gitlab-runner/boost" -I "./inc/cudd" -m64 -fopenmp -Wl,-rpath=./lib -o ./bin/release/verica ./build/release/analyzer/Analyzer.o ./build/release/analyzer/ConfigurationCombinable.o ./build/release/analyzer/ConfigurationComposability.o ./build/release/analyzer/ConfigurationFaultCorrection.o ./build/release/analyzer/ConfigurationFaultDetection.o ./build/release/analyzer/ConfigurationFaultSFA.o ./build/release/analyzer/ConfigurationFaultSIFA.o ./build/release/analyzer/ConfigurationFaultVulnerability.o ./build/release/analyzer/ConfigurationProbing.o ./build/release/analyzer/ConfigurationUniformity.o ./build/release/composer/NetlistComposer.o ./build/release/Configuration.o ./build/release/context/CellLibrary.o ./build/release/context/FaultLibrary.o ./build/release/context/Logger.o ./build/release/context/Settings.o ./build/release/context/State.o ./build/release/cudd/cache.o ./build/release/cudd/cudd_ext.o ./build/release/Environment.o ./build/release/injector/Injector.o ./build/release/netlist/factory/NetlistFactoryFirrtl.o ./build/release/netlist/factory/NetlistFactoryVerilog.o ./build/release/netlist/Module.o ./build/release/netlist/Netlist.o ./build/release/netlist/Pin.o ./build/release/netlist/Wire.o ./build/release/parser/ConfigurationFirrtl.o ./build/release/parser/ConfigurationLibrary.o ./build/release/parser/ConfigurationNetlist.o ./build/release/parser/ConfigurationVerilog.o ./build/release/parser/Parser.o ./build/release/preprocessor/ConfigurationAnnotation.o ./build/release/preprocessor/ConfigurationElaborate.o ./build/release/preprocessor/ConfigurationFIA.o ./build/release/preprocessor/ConfigurationFiltering.o ./build/release/preprocessor/ConfigurationModelPostprocessing.o ./build/release/preprocessor/ConfigurationMultithreading.o ./build/release/preprocessor/ConfigurationSCA.o ./build/release/preprocessor/Preprocessor.o ./build/release/Service.o ./build/release/verica.o ./build/release/visualization/ConfigurationGraphvizDot.o ./build/release/visualization/Visualizer.o -L./lib -lcudd -lboost_program_options
/nix/store/vk4mlknqk9yjbqa68a7rvpfxfdw3rad7-binutils-2.43.1/bin/ld: ./build/release/context/Settings.o: in function `boost::program_options::basic_command_line_parser<char>::extra_parser(boost::function_n<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>)':
/home/verica/include/boost/program_options/detail/parsers.hpp:62:(.text._ZN5boost15program_options25basic_command_line_parserIcE12extra_parserENS_10function_nISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_EJRKSA_EEE[_ZN5boost15program_options25basic_command_line_parserIcE12extra_parserENS_10function_nISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_EJRKSA_EEE]+0x4b): undefined reference to `boost::program_options::detail::cmdline::set_additional_parser(boost::function_n<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>)'
collect2: error: ld returned 1 exit status
make[1]: *** [makefile:300: bin/release/verica] Error 1
make: *** [makefile:200: release] Error 2