camsas / firmament

The Firmament cluster scheduling platform
Apache License 2.0
415 stars 79 forks source link

Build errors on Ubuntu 15.10 #36

Closed ms705 closed 7 years ago

ms705 commented 8 years ago

Building Firmament on Ubuntu 15.10 currently fails when using clang as the compiler.

On Ubuntu 15.10, gcc and libstdc++ have been upgraded to version 5+. Along with this came a C++11 ABI change that made backwards-incompatible changes to libstdc++. As a result, only libraries that were compiled against the same libstdc++ ABI can be linked together. The Ubuntu libprotobuf9-v5 package is compiled against the new ABI introduced by gcc5.

Clang does not support this new ABI (and apparently has no immediate intention to do so [1]), so Firmament cannot link the Ubuntu libprotobuf unless we switch to g++ for our compiler. All our dependent libraries also have to use the same ABI (either the new or the old one), and we will have to recompile any libraries that do not match what the others do.

Using libc++ (the LLVM C++ standard library) instead of libstdc++ is unfortunately not a solution to this problem, as it turns out to breaks when linking libraries that were built against libstdc++ (i.e., almost anything that we depend on). Recompiling our dependencies against libc++ is not easily possible, because many of them rely on gcc-isms.

Finally, building with g++ on 15.10 succeeds, but the coordinator fails with a segfault on launch.

[1] -- https://llvm.org/bugs/show_bug.cgi?id=23529

ms705 commented 7 years ago

Closing as probably irrelevant by now -- most people use 16.04 LTS or later.