osrm-backend icon indicating copy to clipboard operation
osrm-backend copied to clipboard

osrm-backend 5.27.1 build issue against boost 1.81.0

Open chenrui333 opened this issue 2 years ago • 9 comments

Running build issue when regression build 5.27.1 against boost 1.81.0

build issue
[ 86%] Linking CXX executable osrm-datastore
/opt/homebrew/Cellar/cmake/3.25.1/bin/cmake -E cmake_link_script CMakeFiles/osrm-datastore.dir/link.txt --verbose=1
/opt/homebrew/Library/Homebrew/shims/mac/super/clang++  -Wall -Wextra -Wpedantic -Werror -Wstrict-overflow=2 -Wsuggest-override -Wsuggest-destructor-override -Wunused -Wunreachable-code -Wdelete-incomplete -Wdisabled-optimization -Winit-self -Wlogical-not-parentheses -Wmisleading-indentation -Wodr -Wpointer-arith -Wredundant-decls -Wreorder -Wshift-negative-value -Wsizeof-array-argument -Wswitch-bool -Wtautological-compare -Wno-c++17-extensions -Wno-implicit-int-conversion -Wno-implicit-float-conversion -Wno-unused-member-function -Wno-old-style-cast -Wno-non-virtual-dtor -Wno-float-conversion -Wno-sign-conversion -Wno-shorten-64-to-32 -Wno-padded -Wno-missing-noreturn -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fPIC -fcolor-diagnostics -ftemplate-depth=1024 -std=c++17 -stdlib=libc++ -O3 -DNDEBUG -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names "CMakeFiles/osrm-datastore.dir/src/tools/store.cpp.o" CMakeFiles/MICROTAR.dir/third_party/microtar/src/microtar.c.o CMakeFiles/UTIL.dir/src/util/assert.cpp.o CMakeFiles/UTIL.dir/src/util/conditional_restrictions.cpp.o CMakeFiles/UTIL.dir/src/util/coordinate.cpp.o CMakeFiles/UTIL.dir/src/util/coordinate_calculation.cpp.o CMakeFiles/UTIL.dir/src/util/exception.cpp.o CMakeFiles/UTIL.dir/src/util/fingerprint.cpp.o CMakeFiles/UTIL.dir/src/util/geojson_debug_policies.cpp.o CMakeFiles/UTIL.dir/src/util/guidance/bearing_class.cpp.o CMakeFiles/UTIL.dir/src/util/guidance/entry_class.cpp.o CMakeFiles/UTIL.dir/src/util/guidance/turn_lanes.cpp.o CMakeFiles/UTIL.dir/src/util/log.cpp.o CMakeFiles/UTIL.dir/src/util/opening_hours.cpp.o CMakeFiles/UTIL.dir/src/util/timed_historgram.cpp.o CMakeFiles/UTIL.dir/src/util/timezones.cpp.o -o osrm-datastore  -Wl,-rpath,@loader_path libosrm_store.a /opt/homebrew/lib/libboost_program_options-mt.dylib /opt/homebrew/lib/libboost_date_time-mt.dylib /opt/homebrew/lib/libboost_chrono-mt.dylib /opt/homebrew/lib/libboost_filesystem-mt.dylib /opt/homebrew/lib/libboost_atomic-mt.dylib /opt/homebrew/lib/libboost_iostreams-mt.dylib /opt/homebrew/lib/libboost_thread-mt.dylib /opt/homebrew/lib/libboost_system-mt.dylib /opt/homebrew/lib/libtbb.12.8.dylib
duplicate symbol 'boost::phoenix::placeholders::uarg9' in:
    CMakeFiles/UTIL.dir/src/util/conditional_restrictions.cpp.o
    CMakeFiles/UTIL.dir/src/util/opening_hours.cpp.o
duplicate symbol 'boost::phoenix::placeholders::uarg8' in:
    CMakeFiles/UTIL.dir/src/util/conditional_restrictions.cpp.o
    CMakeFiles/UTIL.dir/src/util/opening_hours.cpp.o
duplicate symbol 'boost::phoenix::placeholders::uarg7' in:
    CMakeFiles/UTIL.dir/src/util/conditional_restrictions.cpp.o
    CMakeFiles/UTIL.dir/src/util/opening_hours.cpp.o
duplicate symbol 'boost::phoenix::placeholders::uarg6' in:
    CMakeFiles/UTIL.dir/src/util/conditional_restrictions.cpp.o
    CMakeFiles/UTIL.dir/src/util/opening_hours.cpp.o
duplicate symbol 'boost::phoenix::placeholders::uarg5' in:
    CMakeFiles/UTIL.dir/src/util/conditional_restrictions.cpp.o
    CMakeFiles/UTIL.dir/src/util/opening_hours.cpp.o
duplicate symbol 'boost::phoenix::placeholders::uarg4' in:
    CMakeFiles/UTIL.dir/src/util/conditional_restrictions.cpp.o
    CMakeFiles/UTIL.dir/src/util/opening_hours.cpp.o
duplicate symbol 'boost::phoenix::placeholders::uarg3' in:
    CMakeFiles/UTIL.dir/src/util/conditional_restrictions.cpp.o
    CMakeFiles/UTIL.dir/src/util/opening_hours.cpp.o
duplicate symbol 'boost::phoenix::placeholders::uarg2' in:
    CMakeFiles/UTIL.dir/src/util/conditional_restrictions.cpp.o
    CMakeFiles/UTIL.dir/src/util/opening_hours.cpp.o
duplicate symbol 'boost::phoenix::placeholders::uarg1' in:
    CMakeFiles/UTIL.dir/src/util/conditional_restrictions.cpp.o
    CMakeFiles/UTIL.dir/src/util/opening_hours.cpp.o
duplicate symbol 'boost::phoenix::placeholders::uarg10' in:
    CMakeFiles/UTIL.dir/src/util/conditional_restrictions.cpp.o
    CMakeFiles/UTIL.dir/src/util/opening_hours.cpp.o
ld: 10 duplicate symbols for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[2]: *** [CMakeFiles/osrm-datastore.dir/build.make:140: osrm-datastore] Error 1
gmake[2]: Leaving directory '/private/tmp/osrm-backend-20230102-55450-1tdeoyf/osrm-backend-5.27.1/build'
gmake[1]: *** [CMakeFiles/Makefile2:611: CMakeFiles/osrm-datastore.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....
gmake[2]: Leaving directory '/private/tmp/osrm-backend-20230102-55450-1tdeoyf/osrm-backend-5.27.1/build'
[ 86%] Built target SERVER
[ 91%] Linking CXX executable osrm-components
/opt/homebrew/Cellar/cmake/3.25.1/bin/cmake -E cmake_link_script CMakeFiles/osrm-components.dir/link.txt --verbose=1
/opt/homebrew/Library/Homebrew/shims/mac/super/clang++  -Wall -Wextra -Wpedantic -Werror -Wstrict-overflow=2 -Wsuggest-override -Wsuggest-destructor-override -Wunused -Wunreachable-code -Wdelete-incomplete -Wdisabled-optimization -Winit-self -Wlogical-not-parentheses -Wmisleading-indentation -Wodr -Wpointer-arith -Wredundant-decls -Wreorder -Wshift-negative-value -Wsizeof-array-argument -Wswitch-bool -Wtautological-compare -Wno-c++17-extensions -Wno-implicit-int-conversion -Wno-implicit-float-conversion -Wno-unused-member-function -Wno-old-style-cast -Wno-non-virtual-dtor -Wno-float-conversion -Wno-sign-conversion -Wno-shorten-64-to-32 -Wno-padded -Wno-missing-noreturn -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fPIC -fcolor-diagnostics -ftemplate-depth=1024 -std=c++17 -stdlib=libc++ -O3 -DNDEBUG -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names "CMakeFiles/osrm-components.dir/src/tools/components.cpp.o" CMakeFiles/MICROTAR.dir/third_party/microtar/src/microtar.c.o CMakeFiles/UTIL.dir/src/util/assert.cpp.o CMakeFiles/UTIL.dir/src/util/conditional_restrictions.cpp.o CMakeFiles/UTIL.dir/src/util/coordinate.cpp.o CMakeFiles/UTIL.dir/src/util/coordinate_calculation.cpp.o CMakeFiles/UTIL.dir/src/util/exception.cpp.o CMakeFiles/UTIL.dir/src/util/fingerprint.cpp.o CMakeFiles/UTIL.dir/src/util/geojson_debug_policies.cpp.o CMakeFiles/UTIL.dir/src/util/guidance/bearing_class.cpp.o CMakeFiles/UTIL.dir/src/util/guidance/entry_class.cpp.o CMakeFiles/UTIL.dir/src/util/guidance/turn_lanes.cpp.o CMakeFiles/UTIL.dir/src/util/log.cpp.o CMakeFiles/UTIL.dir/src/util/opening_hours.cpp.o CMakeFiles/UTIL.dir/src/util/timed_historgram.cpp.o CMakeFiles/UTIL.dir/src/util/timezones.cpp.o -o osrm-components  -Wl,-rpath,@loader_path /opt/homebrew/lib/libboost_date_time-mt.dylib /opt/homebrew/lib/libboost_chrono-mt.dylib /opt/homebrew/lib/libboost_filesystem-mt.dylib /opt/homebrew/lib/libboost_iostreams-mt.dylib /opt/homebrew/lib/libboost_thread-mt.dylib /opt/homebrew/lib/libboost_system-mt.dylib /opt/homebrew/lib/libtbb.12.8.dylib /Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/usr/lib/libz.tbd /opt/homebrew/lib/libboost_atomic-mt.dylib
duplicate symbol 'boost::phoenix::placeholders::uarg9' in:
    CMakeFiles/UTIL.dir/src/util/conditional_restrictions.cpp.o
    CMakeFiles/UTIL.dir/src/util/opening_hours.cpp.o
duplicate symbol 'boost::phoenix::placeholders::uarg8' in:
    CMakeFiles/UTIL.dir/src/util/conditional_restrictions.cpp.o
    CMakeFiles/UTIL.dir/src/util/opening_hours.cpp.o
duplicate symbol 'boost::phoenix::placeholders::uarg7' in:
    CMakeFiles/UTIL.dir/src/util/conditional_restrictions.cpp.o
    CMakeFiles/UTIL.dir/src/util/opening_hours.cpp.o
duplicate symbol 'boost::phoenix::placeholders::uarg6' in:
    CMakeFiles/UTIL.dir/src/util/conditional_restrictions.cpp.o
    CMakeFiles/UTIL.dir/src/util/opening_hours.cpp.o
duplicate symbol 'boost::phoenix::placeholders::uarg5' in:
    CMakeFiles/UTIL.dir/src/util/conditional_restrictions.cpp.o
    CMakeFiles/UTIL.dir/src/util/opening_hours.cpp.o
duplicate symbol 'boost::phoenix::placeholders::uarg4' in:
    CMakeFiles/UTIL.dir/src/util/conditional_restrictions.cpp.o
    CMakeFiles/UTIL.dir/src/util/opening_hours.cpp.o
duplicate symbol 'boost::phoenix::placeholders::uarg3' in:
    CMakeFiles/UTIL.dir/src/util/conditional_restrictions.cpp.o
    CMakeFiles/UTIL.dir/src/util/opening_hours.cpp.o
duplicate symbol 'boost::phoenix::placeholders::uarg2' in:
    CMakeFiles/UTIL.dir/src/util/conditional_restrictions.cpp.o
    CMakeFiles/UTIL.dir/src/util/opening_hours.cpp.o
duplicate symbol 'boost::phoenix::placeholders::uarg1' in:
    CMakeFiles/UTIL.dir/src/util/conditional_restrictions.cpp.o
    CMakeFiles/UTIL.dir/src/util/opening_hours.cpp.o
duplicate symbol 'boost::phoenix::placeholders::uarg10' in:
    CMakeFiles/UTIL.dir/src/util/conditional_restrictions.cpp.o
    CMakeFiles/UTIL.dir/src/util/opening_hours.cpp.o
ld: 10 duplicate symbols for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[2]: *** [CMakeFiles/osrm-components.dir/build.make:139: osrm-components] Error 1
gmake[2]: Leaving directory '/private/tmp/osrm-backend-20230102-55450-1tdeoyf/osrm-backend-5.27.1/build'
gmake[1]: *** [CMakeFiles/Makefile2:892: CMakeFiles/osrm-components.dir/all] Error 2
gmake[2]: Leaving directory '/private/tmp/osrm-backend-20230102-55450-1tdeoyf/osrm-backend-5.27.1/build'
[ 91%] Built target ENGINE
gmake[2]: Leaving directory '/private/tmp/osrm-backend-20230102-55450-1tdeoyf/osrm-backend-5.27.1/build'
gmake[1]: *** [CMakeFiles/Makefile2:238: CMakeFiles/EXTRACTOR.dir/all] Error 2
gmake[1]: Leaving directory '/private/tmp/osrm-backend-20230102-55450-1tdeoyf/osrm-backend-5.27.1/build'
gmake: *** [Makefile:159: all] Error 2

relates to https://github.com/Homebrew/homebrew-core/pull/119529

chenrui333 avatar Jan 03 '23 00:01 chenrui333

Looks like it is a boost bug, https://github.com/boostorg/phoenix/issues/111

chenrui333 avatar Jan 03 '23 00:01 chenrui333

new build issue

In file included from /tmp/osrm-backend-20230102-69381-1y45c82/osrm-backend-5.27.1/src/extractor/suffix_table.cpp:1:
/tmp/osrm-backend-20230102-69381-1y45c82/osrm-backend-5.27.1/include/extractor/suffix_table.hpp:38:30: error: implicit instantiation of undefined template 'std::vector<std::string>'
    std::vector<std::string> suffixes;
                             ^
/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/usr/include/c++/v1/iosfwd:259:28: note: template is declared here
class _LIBCPP_TEMPLATE_VIS vector;
                           ^

chenrui333 avatar Jan 03 '23 00:01 chenrui333

This build issue is quite weird. Initially I thought we just don't have all includes(for vector and string), but we have all of them: https://github.com/Project-OSRM/osrm-backend/blob/95c45239873818ec5d982dd5f7bfb4f66930fec4/include/extractor/suffix_table.hpp#L4

SiarheiFedartsou avatar Jan 04 '23 15:01 SiarheiFedartsou

This build issue is quite weird. Initially I thought we just don't have all includes(for vector and string), but we have all of them:

https://github.com/Project-OSRM/osrm-backend/blob/95c45239873818ec5d982dd5f7bfb4f66930fec4/include/extractor/suffix_table.hpp#L4

I was thinking about the same, very weird.

chenrui333 avatar Jan 05 '23 01:01 chenrui333

you can try adding #include at the top of the suffix_table.hpp.

gurjarutkarsh avatar Feb 27 '23 22:02 gurjarutkarsh

Guys, is there an (easy) work around in the meantime to solve this issue? Today I've installed the latest versions of both osrm-backend (5.27.1) using git clone, and boost (1.81.0) using Macports, and my the output resembles that of chenrui333.

Any help is appreciated.

martinvanbuuren avatar Jun 06 '23 10:06 martinvanbuuren

@martinvanbuuren I believe you can downgrade to older version of Boost.

SiarheiFedartsou avatar Jun 06 '23 10:06 SiarheiFedartsou

@SiarheiFedartsou Downgrading to boost 1.76 did the job.

For others, here some useful commands.

sudo port uninstall boost sudo port uninstall boost181 brew uninstall boost brew install [email protected] brew link [email protected]

martinvanbuuren avatar Jun 06 '23 11:06 martinvanbuuren

https://github.com/Project-OSRM/osrm-backend/pull/6709 resolved issues with Boost 1.8x, so this should be fine now?

mangerlahn avatar Oct 17 '23 10:10 mangerlahn

This issue seems to be stale. It will be closed in 30 days if no further activity occurs.

github-actions[bot] avatar Jul 08 '24 20:07 github-actions[bot]