[cfe-dev] Control selected GCC installation / selected libstdc++ version?

don hinton via cfe-dev cfe-dev at lists.llvm.org
Thu Mar 10 08:05:39 PST 2016


You probably need to specify the version of gcc and the path to libstdc++.
Something like this:

export CLANG_GCC=<path to the version of gcc you want to use>
cmake \
    -DCMAKE_C_COMPILER=${CLANG_GCC}/bin/gcc \
    -DCMAKE_CXX_COMPILER=${CLANG_GCC}/bin/g++ \
    -DGCC_INSTALL_PREFIX=${CLANG_GCC} \
    -DCMAKE_CXX_LINK_FLAGS="-L${CLANG_GCC}/lib64
-Wl,-rpath,${CLANG_GCC}/lib64" \
    -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX}

On Thu, Mar 10, 2016 at 10:45 AM, Jonathan Roelofs via cfe-dev <
cfe-dev at lists.llvm.org> wrote:

>
>
> On 3/10/16 7:53 AM, Kevin Funk via cfe-dev wrote:
>
>> On Saturday, March 5, 2016 4:07:43 PM CET Kevin Funk via cfe-dev wrote:
>>
>>> Heya,
>>>
>>> I just installed GCC6 on my system (which obviously comes with a new
>>> libstdc+ +), and this, unfortunately, breaks Clang.
>>>
>>> Long story short: In this particular case I can't build LLVM anymore,
>>> since
>>> clang errors out:
>>>
>>> /usr/bin/../lib/gcc/x86_64-linux-gnu/6.0.0/../../../../include/c++/6.0.0/
>>> tuple:1381:14: error: no matching constructor for initialization of
>>> 'tuple<llvm::LexicalScope *&&, const llvm::DILocalScope *&&, nullptr_t
>>> &&,
>>> bool &&>'
>>>      { return tuple<_Elements&&...>(std::forward<_Elements>(__args)...);
>>> }
>>>               ^                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>> ...
>>>
>>>
>>> I'm not interested in solving the error, I'm more concerned about this:
>>> Is
>>> it possible to force Clang into using a specific libstdc++ version? Right
>>> now it seems to just choose the highest version available(?)
>>>
>>> # clang++-3.6 -E -v
>>> Ubuntu clang version 3.6.2-3ubuntu1 (tags/RELEASE_362/final) (based on
>>> LLVM
>>> 3.6.2)
>>> Target: x86_64-pc-linux-gnu
>>> Thread model: posix
>>> (snip)
>>> Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9.3
>>> Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.3.1
>>> Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.0.0
>>> Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/6.0.0
>>> Candidate multilib: .;@m64
>>> Selected multilib: .;@m64
>>>
>>> ^ How can I force clang to use /usr/lib/gcc/x86_64-linux-gnu/5.3.1
>>> instead,
>>> for instance?
>>>
>>> Is that even possible? I had a brief look at tools/clang/lib/Driver/
>>> ToolChains.cpp, but couldn't find any knobs I could use from the
>>> command-line.
>>>
>>
> For this problem, I don't think there is one.
>
>
>> Bump.
>>
>> Any idea? Am I missing something?
>>
>> Do you a think a patch which introduces an env var setting for specifying
>> the
>> desired libstdc++ version would be acceptable?
>>
>
> An env var for that would not be acceptable, but a command line option
> probably would be.
>
>
> Jon
>
>
>> Cheers,
>> Kevin
>>
>> Cheers,
>>> Kevin
>>>
>>
>>
>>
>>
>> _______________________________________________
>> cfe-dev mailing list
>> cfe-dev at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>>
>>
> --
> Jon Roelofs
> jonathan at codesourcery.com
> CodeSourcery / Mentor Embedded
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20160310/100bfe06/attachment.html>


More information about the cfe-dev mailing list