-
Notifications
You must be signed in to change notification settings - Fork 3.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Upgrade ci to xenial #5901
Upgrade ci to xenial #5901
Conversation
010e246
to
7fc5c05
Compare
A few build/compiler changes are needed to get this to go green. Will make some fixes. |
f302508
to
f575aed
Compare
The example program fails to build for
Whilst this could be fixed by also building the example with
This means maintaining standard lib compatibility by downgrading to libstdc++4.9 is not viable with Xenial builds (unless someone knows how to make this work). Node 10 has GCC 4.9 as a minimum toolchain requirement. So despite Trusty being EOL, I don't think we can upgrade CI if we want to keep the same level of support for Node 10. |
@mjjbell I don't feel strongly that we need to continue supporting Node 10 - it's totally EOL. |
👍 that will make things easier. In which case we can bump the toolchain to the Xenial default (GCC 5.4.0) |
f335c44
to
53382d7
Compare
Travis Xenial container has Boost 1.58.0 built with GCC5 against the CXX11 ABI. However, there is a bug that affects the Regex library. Some symbols are missing [abi:cxx11] tags which causes linking to fail if not also building OSRM with GCC5. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=823978 Given there is only one use of the Regex libary, use this opportunity to replace it with std::regex and avoid the linking issue entirely.
Xenial toolchain only supports GCC 5. Builds against older versions of libstdc++ do not work.
Ensure that any program using libosrm as a dependency builds against the same libstdc++ ABI. This is needed as Mason dependencies are still built against the old ABI.
53382d7
to
17dcb7a
Compare
@@ -244,14 +242,15 @@ bool RestrictionParser::ShouldIgnoreRestriction(const std::string &except_tag_st | |||
|
|||
// Be warned, this is quadratic work here, but we assume that | |||
// only a few exceptions are actually defined. | |||
std::vector<std::string> exceptions; | |||
boost::algorithm::split_regex(exceptions, except_tag_string, boost::regex("[;][ ]*")); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removed usage of Boost.Regex as there's a bug in the version used by Xenial CI.
Some symbols are missing [abi:cxx11] tags which causes linking to fail if not also building OSRM with GCC5.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=823978
Used this as an opportunity to replace it with std::regex
.
I didn't remove Boost.Regex as a dependency completely as it makes the Windows build fail - I'm not sure how to fix that with out changing the Wolt hosted dependencies.
Superseded by #6071 |
Issue
Closes #5900
Tasklist
Requirements / Relations
#5887