desktop-packages team mailing list archive
-
desktop-packages team
-
Mailing list archive
-
Message #157671
[Bug 1488254]
(In reply to comment #26)
> No. It was implemented in April this year, shortly before the gcc-5 release.
> I've pointed out compatibility issue immediately:
> https://gcc.gnu.org/ml/gcc-patches/2015-04/msg00153.html
(...)
> The were no behavioral changes at all after that patch went in.
In the Linaro thread, Jim points out to the abi_tag patch from 2012.
Your mention is about "significant changes to attribute abi_tag". I
can't see how I was wrong.
> No gcc-5 doesn't default to C++11 and the issue here has nothing to do with
> C++98 vs. C++11.
>
> Please try to get the facts strait, before posting long misleading replies.
This is what most of the documentation, email threads and conversations
I had seem to point at. If you have a different opinion, than by all
means, please share your knowledge.
Saying "it has nothing to do with" doesn't explain what it has to do
with. I'm happy to be proven wrong here, as long as we get all the facts
on the table. This bug doesn't seem to provide strong facts either.
--
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:
Confirmed
Status in llvm-toolchain-3.6 package in Ubuntu:
Confirmed
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
References