<div dir="ltr">Not sure I have the full picture yet, but if you already built clang with a previous version of gcc, then upgraded gcc and got a new version of libstdc++ that isn't compatible with clang, you need to tell the version of clang you have where the find everything.  <div><br></div><div>When building clang, you can use GCC_INSTALL_PREFIX, but if it's already built, I think you need to set the environment variable CPATH.</div><div><br></div><div>hth...</div><div>don</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 10, 2016 at 12:28 PM, Kevin Funk <span dir="ltr"><<a href="mailto:kfunk@kde.org" target="_blank">kfunk@kde.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Thursday, March 10, 2016 11:05:39 AM CET don hinton wrote:<br>
> You probably need to specify the version of gcc and the path to libstdc++.<br>
> Something like this:<br>
><br>
> export CLANG_GCC=<path to the version of gcc you want to use><br>
> cmake \<br>
>     -DCMAKE_C_COMPILER=${CLANG_GCC}/bin/gcc \<br>
>     -DCMAKE_CXX_COMPILER=${CLANG_GCC}/bin/g++ \<br>
>     -DGCC_INSTALL_PREFIX=${CLANG_GCC} \<br>
>     -DCMAKE_CXX_LINK_FLAGS="-L${CLANG_GCC}/lib64<br>
> -Wl,-rpath,${CLANG_GCC}/lib64" \<br>
>     -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX}<br>
<br>
</span>That's a compile switch, when building LLVM/Clang, right?<br>
<br>
That's not what I'd like to have. I'd like to decide that later, when invoking<br>
Clang (just assume I only got my distro-provided Clang).<br>
<br>
I'll check whether adding a command-line options is feasible (won't happen<br>
tomorrow-ish, no time for that) :)<br>
<br>
Cheers,<br>
Kevin<br>
<div class="HOEnZb"><div class="h5"><br>
> On Thu, Mar 10, 2016 at 10:45 AM, Jonathan Roelofs via cfe-dev <<br>
><br>
> <a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>> wrote:<br>
> > On 3/10/16 7:53 AM, Kevin Funk via cfe-dev wrote:<br>
> >> On Saturday, March 5, 2016 4:07:43 PM CET Kevin Funk via cfe-dev wrote:<br>
> >>> Heya,<br>
> >>><br>
> >>> I just installed GCC6 on my system (which obviously comes with a new<br>
> >>> libstdc+ +), and this, unfortunately, breaks Clang.<br>
> >>><br>
> >>> Long story short: In this particular case I can't build LLVM anymore,<br>
> >>> since<br>
> >>> clang errors out:<br>
> >>><br>
> >>> /usr/bin/../lib/gcc/x86_64-linux-gnu/6.0.0/../../../../include/c++/6.0.0<br>
> >>> /<br>
> >>> tuple:1381:14: error: no matching constructor for initialization of<br>
> >>> 'tuple<llvm::LexicalScope *&&, const llvm::DILocalScope *&&, nullptr_t<br>
> >>> &&,<br>
> >>> bool &&>'<br>
> >>><br>
> >>>      { return tuple<_Elements&&...>(std::forward<_Elements>(__args)...);<br>
> >>><br>
> >>> }<br>
> >>><br>
> >>>               ^                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
> >>><br>
> >>> ...<br>
> >>><br>
> >>><br>
> >>> I'm not interested in solving the error, I'm more concerned about this:<br>
> >>> Is<br>
> >>> it possible to force Clang into using a specific libstdc++ version?<br>
> >>> Right<br>
> >>> now it seems to just choose the highest version available(?)<br>
> >>><br>
> >>> # clang++-3.6 -E -v<br>
> >>> Ubuntu clang version 3.6.2-3ubuntu1 (tags/RELEASE_362/final) (based on<br>
> >>> LLVM<br>
> >>> 3.6.2)<br>
> >>> Target: x86_64-pc-linux-gnu<br>
> >>> Thread model: posix<br>
> >>> (snip)<br>
> >>> Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9.3<br>
> >>> Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.3.1<br>
> >>> Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.0.0<br>
> >>> Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/6.0.0<br>
> >>> Candidate multilib: .;@m64<br>
> >>> Selected multilib: .;@m64<br>
> >>><br>
> >>> ^ How can I force clang to use /usr/lib/gcc/x86_64-linux-gnu/5.3.1<br>
> >>> instead,<br>
> >>> for instance?<br>
> >>><br>
> >>> Is that even possible? I had a brief look at tools/clang/lib/Driver/<br>
> >>> ToolChains.cpp, but couldn't find any knobs I could use from the<br>
> >>> command-line.<br>
> ><br>
> > For this problem, I don't think there is one.<br>
> ><br>
> >> Bump.<br>
> >><br>
> >> Any idea? Am I missing something?<br>
> >><br>
> >> Do you a think a patch which introduces an env var setting for specifying<br>
> >> the<br>
> >> desired libstdc++ version would be acceptable?<br>
> ><br>
> > An env var for that would not be acceptable, but a command line option<br>
> > probably would be.<br>
> ><br>
> ><br>
> > Jon<br>
> ><br>
> >> Cheers,<br>
> >> Kevin<br>
> >><br>
> >> Cheers,<br>
> >><br>
> >>> Kevin<br>
> >><br>
> >> _______________________________________________<br>
> >> cfe-dev mailing list<br>
> >> <a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a><br>
> >> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
> ><br>
> > --<br>
> > Jon Roelofs<br>
> > <a href="mailto:jonathan@codesourcery.com">jonathan@codesourcery.com</a><br>
> > CodeSourcery / Mentor Embedded<br>
> ><br>
> > _______________________________________________<br>
> > cfe-dev mailing list<br>
> > <a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a><br>
> > <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
<br>
<br>
</div></div><div class="HOEnZb"><div class="h5">--<br>
Kevin Funk | <a href="mailto:kfunk@kde.org">kfunk@kde.org</a> | <a href="http://kfunk.org" rel="noreferrer" target="_blank">http://kfunk.org</a></div></div></blockquote></div><br></div>