OpenROAD icon indicating copy to clipboard operation
OpenROAD copied to clipboard

Compile error with newer boost version

Open piegamesde opened this issue 3 years ago • 5 comments

/build/source/src/TritonRoute/src/frBaseTypes.h:331:20: error: 'segment' in namespace 'boost::geometry::model' does not name a template type
  331 | typedef bg::model::segment<point_t> segment_t;
      |                    ^~~~~~~

See also https://github.com/The-OpenROAD-Project/OpenROAD/issues/866

The latest boost version known to work is 1.69, the earliest version reported not to work is 1.75.

Please fix compilation with newer boost versions. If you do not plan on doing this anytime soon, then please pin down the dependency so that it already fails during configuration.

piegamesde avatar Jan 10 '22 12:01 piegamesde

@piegamesde new boost version required is 1.76

./etc/DependencyInstaller.sh -help

Usage: ./etc/DependencyInstaller.sh -run[time]      # installs dependencies to run a pre-compiled binary
       ./etc/DependencyInstaller.sh -dev[elopment]  # installs dependencies to compile the openroad binary

vijayank88 avatar Jan 10 '22 13:01 vijayank88

Platform integrators complain about pinned versions

maliberty avatar Jan 10 '22 16:01 maliberty

We may want to throw an error on known bad versions of boost or bundling a known good version.

QuantamHD avatar Jan 10 '22 19:01 QuantamHD

Platform integrators complain about pinned versions

Bad wording on my side. I meant specifying the supported version range in the build system. It is better to have an error message early on that says "you are using a version we don't support" than getting a random compile error and trying to figure out its cause. But I see that this can be rather difficult, especially if the dependency does not follow SemVer.


I tried building latest master, with little success. I had to configure boost for static compilation and set -Wno-error to get somewhere at all. Now it fails after a few minutes without apparent error message. These are the last log lines:

[ 29%] Linking CXX static library liblefin.a
cd /build/source/build/src/odb/src/lefin && /nix/store/10cjb32rn1rsjhbqxbxa77s4s1p62gbc-cmake-3.22.1/bin/cmake -P CMakeFiles/lefin.dir/cmake_clean_target.cmake
cd /build/source/build/src/odb/src/lefin && /nix/store/10cjb32rn1rsjhbqxbxa77s4s1p62gbc-cmake-3.22.1/bin/cmake -E cmake_link_script CMakeFiles/lefin.dir/link.txt --verbose=1
/nix/store/cdm6zywd51mbabxhklsixwcskv4n70s3-binutils-2.35.2/bin/ar qc liblefin.a CMakeFiles/lefin.dir/lefin.cpp.o CMakeFiles/lefin.dir/reader.cpp.o CMakeFiles/lefin.dir/lefTechLayerSpacingEolParser.cpp.o CMakeFiles/lefin.dir/lefTechLayerMinStepParser.cpp.o CMakeFiles/lefin.dir/lefTechLayerCornerSpacingParser.cpp.o CMakeFiles/lefin.dir/lefTechLayerSpacingTablePrlParser.cpp.o CMakeFiles/lefin.dir/lefTechLayerRightWayOnGridOnlyParser.cpp.o CMakeFiles/lefin.dir/lefTechLayerRectOnlyParser.cpp.o CMakeFiles/lefin.dir/lefTechLayerCutClassParser.cpp.o CMakeFiles/lefin.dir/lefTechLayerCutSpacingParser.cpp.o CMakeFiles/lefin.dir/lefTechLayerCutSpacingTableParser.cpp.o CMakeFiles/lefin.dir/lefTechLayerCutEnclosureParser.cpp.o CMakeFiles/lefin.dir/lefTechLayerTypeParser.cpp.o CMakeFiles/lefin.dir/lefTechLayerEolExtensionParser.cpp.o CMakeFiles/lefin.dir/lefTechLayerEolKeepOutRuleParser.cpp.o
/nix/store/cdm6zywd51mbabxhklsixwcskv4n70s3-binutils-2.35.2/bin/ranlib liblefin.a
make[2]: Leaving directory '/build/source/build'
[ 29%] Built target lefin
make[1]: Leaving directory '/build/source/build'
make: *** [Makefile:139: all] Error 2
builder for '/nix/store/kfy59bg9v293v7kbcznyq6isa292vskx-OpenROAD.drv' failed with exit code 2

piegamesde avatar Jan 11 '22 15:01 piegamesde

We don't test with each and every boost version so its hard to know what is supported beyond the one we do test with. Usually some #ifdef can solve it if you dig a bit. Unfortunately boost changes their APIs from time to time.

maliberty avatar Jan 11 '22 16:01 maliberty

Closing due to lack of activity. Please open a new issue in case the problem is still relevant and occurring with the latest commit.

Note that we test with boost 1.76, and is known to work with boost up to 1.80.

vvbandeira avatar Nov 28 '22 10:11 vvbandeira