Skip to content
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

Compiler LTO binutils detection for gcc >= 4.9 seems to be broken on some platforms #2006

Closed
daniel-j-h opened this issue Feb 23, 2016 · 4 comments

Comments

@daniel-j-h
Copy link
Member

These lines in CMakeLists.txt make sure we use gcc's binutils like gcc-ar for LTO on gcc >= 4.9.

The Ubuntu packages for gcc >= 4.9 name their binaries with a version suffix, such as gcc-ar-5

With gcc 5.2 on Travis, we see the code path for gcc specific binutils triggers but then trying to invoke gcc-ar fails since there is no binary named like that (i.e. the version suffix is missing).

Fix naming scheme to gcc-ar-4.9 in CMakeLists.txt.

Blocks:

@springmeyer
Copy link
Contributor

See also #2120, which is the new blocker for Project-OSRM/node-osrm#153 since I'd prefer to use clang++ over g++ because:

  • We dodge the problem of not easily being able to upgrade from g++ 5.2 -> 5.3 on sudo:false machines
  • Clang++ is much faster to compile OSRM

@springmeyer
Copy link
Contributor

Blocks:
#1975 and
Project-OSRM/node-osrm#153

Both of those issues are solved and #2120 is also now solved which means:

  • We support c++14
  • We support -flto with clang++ 3.8.x + binutils 2.27

@daniel-j-h anything more to do around gcc before closing this? /cc @TheMarex

@daniel-j-h
Copy link
Member Author

Some platforms are still hitting this issue (see #3441) which makes compilation fail by default.
Even on master (the soon-to-be 5.5 stable release).

@daniel-j-h daniel-j-h added this to the 5.6.0 milestone Jan 3, 2017
@daniel-j-h
Copy link
Member Author

Closing as resolved. We disable lto now by default: #3524.

If you know what you're doing you can pass -DNEBALE_LTO to cmake in order to re-enable LTO.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants