Public bug reported: $ cat foo.cc #include <string> std::string hello = "Hello, world!\n"; $ cat bar.cc #include <string> #include <iostream> extern std::string hello; int main() { std::cout << hello; return 0; } $ g++ -c foo.cc && g++ foo.o bar.cc && ./a.out Hello, world! $ clang++ -c foo.cc && clang++ foo.o bar.cc && ./a.out Hello, world! $ g++ -c foo.cc && clang++ foo.o bar.cc && ./a.out /tmp/bar-34fb23.o: In function `main': bar.cc:(.text+0x14): undefined reference to `hello' clang: error: linker command failed with exit code 1 (use -v to see invocation) $ clang++ -c foo.cc && g++ foo.o bar.cc && ./a.out /tmp/ccqU38Mh.o: In function `main': bar.cc:(.text+0x5): undefined reference to `hello[abi:cxx11]' collect2: error: ld returned 1 exit status
In practice, this means that many programs using C++ libraries other than libstdc++ fail to compile with clang++. For example, mosh fails with undefined references to google::protobuf::internal::empty_string_, google::protobuf::MessageLite::InitializationErrorString() const, and google::protobuf::MessageLite::SerializeAsString() const. ** Affects: llvm Importance: Unknown Status: Unknown ** Affects: llvm-toolchain-3.6 (Ubuntu) Importance: Undecided Status: New ** Bug watch added: llvm.org/bugs/ #23529 http://llvm.org/bugs/show_bug.cgi?id=23529 ** Also affects: llvm via http://llvm.org/bugs/show_bug.cgi?id=23529 Importance: Unknown Status: Unknown -- You received this bug notification because you are a member of Desktop Packages, which is subscribed to llvm-toolchain-3.6 in Ubuntu. https://bugs.launchpad.net/bugs/1488254 Title: clang++ no longer ABI-compatible with g++ Status in LLVM: Unknown Status in llvm-toolchain-3.6 package in Ubuntu: New Bug description: $ cat foo.cc #include <string> std::string hello = "Hello, world!\n"; $ cat bar.cc #include <string> #include <iostream> extern std::string hello; int main() { std::cout << hello; return 0; } $ g++ -c foo.cc && g++ foo.o bar.cc && ./a.out Hello, world! $ clang++ -c foo.cc && clang++ foo.o bar.cc && ./a.out Hello, world! $ g++ -c foo.cc && clang++ foo.o bar.cc && ./a.out /tmp/bar-34fb23.o: In function `main': bar.cc:(.text+0x14): undefined reference to `hello' clang: error: linker command failed with exit code 1 (use -v to see invocation) $ clang++ -c foo.cc && g++ foo.o bar.cc && ./a.out /tmp/ccqU38Mh.o: In function `main': bar.cc:(.text+0x5): undefined reference to `hello[abi:cxx11]' collect2: error: ld returned 1 exit status In practice, this means that many programs using C++ libraries other than libstdc++ fail to compile with clang++. For example, mosh fails with undefined references to google::protobuf::internal::empty_string_, google::protobuf::MessageLite::InitializationErrorString() const, and google::protobuf::MessageLite::SerializeAsString() const. To manage notifications about this bug go to: https://bugs.launchpad.net/llvm/+bug/1488254/+subscriptions -- Mailing list: https://launchpad.net/~desktop-packages Post to : desktop-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~desktop-packages More help : https://help.launchpad.net/ListHelp