Skip to content

Document Boost compatibility in README #3

@FelixUhle

Description

@FelixUhle

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions