This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: Why does -Wabi-tag complain when -std=c++03?
- From: Jeffrey Walton <noloader at gmail dot com>
- To: Jonathan Wakely <jwakely dot gcc at gmail dot com>
- Cc: "gcc-help at gcc dot gnu dot org" <gcc-help at gcc dot gnu dot org>
- Date: Thu, 24 Mar 2016 12:43:31 -0400
- Subject: Re: Why does -Wabi-tag complain when -std=c++03?
- Authentication-results: sourceware.org; auth=none
- References: <CAH8yC8kYCmJqN4E5s9KQP1sH+PdV0axg9GuEf8MPeMQs0ede_w at mail dot gmail dot com> <CAH6eHdQYuMxhEJFD_P7GD1UgTy+oL4d_To9zwY8SJ1VRAD7J=w at mail dot gmail dot com> <CAH8yC8=SPMAapcOLo1=z5VpBnF3icoSzOjYZvNqZvkzuJeYYUA at mail dot gmail dot com> <CAH6eHdSSFOqHkpYBDn-GCE_U=hyZjJ0_-aXxENeRwQ=EHm6S0g at mail dot gmail dot com> <CAH8yC8k0m7c8deWa9GomCrCkLdAocwtqWJy7hvWJtgriKVsm7w at mail dot gmail dot com> <CAH6eHdQmQM_vw70aVgo_qdsXsahNWtGwEne=TxtAK4K1bHX9+w at mail dot gmail dot com> <CAH8yC8=TB=BSxKA1rPSU5xbOyoRGdhtZH60uwss23dXtqPHiZA at mail dot gmail dot com> <CAH6eHdRwhF__1uiL00RXqa8obhRaPN0=OFtW82hTT9O2sc2C_w at mail dot gmail dot com> <CAH8yC8=D2G_k2ByDi=M1g899i9wk=aayfrQA8B_pke8BR3MaEQ at mail dot gmail dot com> <CAH6eHdReZhZ8z8Snw_GgZ2w4PZa3_tmaRYCHS8q7oR8Z9uhhKQ at mail dot gmail dot com> <CAH8yC8mfVBJvVUPJwAt-Foo9w1e+Jz6GU_E5qYUZ3yF07nyJQQ at mail dot gmail dot com> <CAH8yC8nbADMw9v9maSWc74u7b2mo4459Oz36wij7dtBNi5TX_g at mail dot gmail dot com> <CAH6eHdTt=UeOMOm1t27sME7GJzwT5CBNV2E6ZaA65FcP=Ou26w at mail dot gmail dot com> <CAH8yC8=npuGBe+hGWi=mSAKHpP__Yr7SzVNRpmiK_aYV-F2z6w at mail dot gmail dot com> <CAH6eHdTT=GnFFYRKvF1Lb1xL25uGYsabNxXoGNiLjKNiLTW+fQ at mail dot gmail dot com>
- Reply-to: noloader at gmail dot com
>>> Maybe you're trying to use the blog post as a tutorial for how to
>>> achieve what you want, but it isn't that, it's just a brief
>>> introduction to the topic. If it doesn't hold your hand through every
>>> step that's because that wasn't its goal. Trying to follow it like a
>>> tutorial isn't going to work.
>>
>> That's fine.
>>
>> Where is the [nearly] complete documentation on the subject? I'm
>> guessing it does not exist, and we are left to struggle through it
>> (q.v.).
>>
>> If you don't provide the necessary documentation, you should not
>> complain when users come with questions.
>
> You're the one complaining, not me.
>
> And nobody else has complained about the lack of that documentation,
> **because generally nobody needs to do it**. I advise against what
> you're trying to do. If the ramifications and the steps needed to do
> it are not clear to you, then you probably don't need to do it.
>
> The only person I know who has had to do this is me, for libstdc++
> itself, and the instructions for making it work are the libstdc++
> makefiles.
There are lots of folks who have experienced the issue; check out
http://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=libstdc%2B%2B-cxx11;users=debian-gcc@lists.debian.org.
Debian happened to say "f**k it, we'll just recompile everything under
the new ABI and be done with it". But they experienced the corner-case
issues too. I don't know why they did not consult with the GCC folks.
I'm the type of person who wants to get a definitive or authoritative
answer so I can make informed decisions. That's why I come here to ask
the experts.
This step was not obvious to me at all. I don't ever recall having to
define a library macro for a library:
$ g++ -D_GLIBCXX_USE_CXX11_ABI=0 -c test.cxx -o test-v1.o
$ g++ -D_GLIBCXX_USE_CXX11_ABI=1 -c test.cxx -o test-v2.o
Naively, because of the blog post on the coexistent implementations, I
was looking for an option like -dual-abi to do it for me.
I estimated you were one of a handful of people on the planet who
fully understands all the nuances of the issue.
Jeff