Bug#744792: clang-3.4: unusable with libstdc++ from gcc 4.9

Sylvestre Ledru sylvestre at debian.org
Sun May 25 21:12:36 UTC 2014


On 09/05/2014 16:38, Jason Rhinelander wrote:
> Hi,
>
> Sylvestre Ledru wrote:
>> On 14/04/2014 21:40, Ben Longbons wrote:
>>> Package: clang-3.4
>>> Version: 1:3.4-2
>>> Severity: grave
>>> Justification: renders package unusable
>>>
>>> Dear Maintainer,
>>>
>>> clang 3.4 can't use libstdc++ 4.9's headers, due to changes in
>>> <bits/c++config.h>
>> Thanks for the bug report.
>> For now, it is just normal severity:
>> * we are still using gcc 4.8 as default
>
> Indeed, and clang itself is still buildable with gcc 4.8, but that
> isn't the main issue here.
>
> Rather the issue is that compiling user programs with clang breaks:
> C++11 code (and possibly other C++ standard levels, but I didn't test)
> that includes the <cstddef> header will fail to compile if the
> libstdc++-4.9-dev package is installed, which will happen, for
> instance, if someone installs g++-4.9.  I think this qualifies the bug
> as at least 'important', if not 'grave'.
>
>> * gcc 4.9 has not (yet) been released.
>
> It has now been released, and is available in testing for most
> architectures.  I installed g++-4.9 to try it out; doing so broke
> compilation with clang++.
>
> Upstream has discussed the problem and has fixes for it; it requires
> these two patches to llvm:
>
> http://llvm.org/viewvc/llvm-project?view=revision&revision=201729
> http://llvm.org/viewvc/llvm-project?view=revision&revision=201843
>
> Upstream mailing list discussion regarding the two above changes is here:
>
> http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-May/072711.html
>
>
> I've applied the patches locally and can verify that they do solve the
> problem.  Here's a simple example of the error without the patches
> applied:
>
> jagerman at loki:~$ cat test.cpp
> #include <iostream>
> #include <cstddef>
> int main() { std::cout << "hi!\n"; }
>
> jagerman at loki:~$ clang++ -std=c++11 test.cpp
> In file included from test.cpp:2:
> /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/cstddef:51:11:
> error:
>       no member named 'max_align_t' in the global namespace
>   using ::max_align_t;
>         ~~^
> 1 error generated.
>
   Sorry about the lag. I missed your answer. 3.4.2 will have the fix
but I will see to upload with these patches before.

Cheers,
Sylvestre



More information about the Pkg-llvm-team mailing list