Edward Diener
2013-Jan-05 22:59 UTC
[LLVMdev] Building llvm from source with clang instead of gcc
On 01/05/2013 01:11 PM, Dmitri Gribenko wrote:> On Sat, Jan 5, 2013 at 7:48 PM, Edward Diener > <eldlistmailingz at tropicsoft.com> wrote: >> I actually found out that llvm/configure will choose clang if it is >> found in the path. This contradicts what is written at >> http://llvm.org/docs/GettingStarted.html#requirements, where it says it >> will use the first GCC it finds. Perhaps that explanation needs to be >> updated. > > Updated docs in r171630. > >> Finally I found that if llvm/configure uses clang instead of gcc, it >> invariably fails on my Linux distros because it is using the gcc >> distributed included directories and an earlier version of clang will >> often fail with these gcc header files. Once I force llvm/configure to >> use gcc, building llvm/clang succeeds again. > > Right. Maybe we need to skip old clang versions in this case.I think this should be done until clang can use its own header files and libraries, when it is installed as a binary, rather than the ones that gcc installs. In fact I am a bit amazed that clang does not already have its own header files and libraries for use when one tries llvm/configure and it sets up llvm's build system to use clang as its compiler. Is this the fault of clang or is it the fault of the llvm/configure system ?
Justin Holewinski
2013-Jan-06 01:01 UTC
[LLVMdev] Building llvm from source with clang instead of gcc
On Sat, Jan 5, 2013 at 5:59 PM, Edward Diener < eldlistmailingz at tropicsoft.com> wrote:> On 01/05/2013 01:11 PM, Dmitri Gribenko wrote: > >> On Sat, Jan 5, 2013 at 7:48 PM, Edward Diener >> <eldlistmailingz at tropicsoft.**com <eldlistmailingz at tropicsoft.com>> >> wrote: >> >>> I actually found out that llvm/configure will choose clang if it is >>> found in the path. This contradicts what is written at >>> http://llvm.org/docs/**GettingStarted.html#**requirements<http://llvm.org/docs/GettingStarted.html#requirements>, >>> where it says it >>> will use the first GCC it finds. Perhaps that explanation needs to be >>> updated. >>> >> >> Updated docs in r171630. >> >> Finally I found that if llvm/configure uses clang instead of gcc, it >>> invariably fails on my Linux distros because it is using the gcc >>> distributed included directories and an earlier version of clang will >>> often fail with these gcc header files. Once I force llvm/configure to >>> use gcc, building llvm/clang succeeds again. >>> >> >> Right. Maybe we need to skip old clang versions in this case. >> > > I think this should be done until clang can use its own header files and > libraries, when it is installed as a binary, rather than the ones that gcc > installs. In fact I am a bit amazed that clang does not already have its > own header files and libraries for use when one tries llvm/configure and it > sets up llvm's build system to use clang as its compiler. Is this the fault > of clang or is it the fault of the llvm/configure system ?There is no complete solution for LLVM-only headers/libraries yet on Linux. For C++, you can use libc++, but you still need some GCC libraries (or alternatives). And you will at least need glibc or another compatible C runtime.> > > ______________________________**_________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/**mailman/listinfo/llvmdev<http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev> >-- Thanks, Justin Holewinski -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130105/eaa13577/attachment.html>
Edward Diener
2013-Jan-06 04:08 UTC
[LLVMdev] Building llvm from source with clang instead of gcc
On 1/5/2013 8:01 PM, Justin Holewinski wrote:> > On Sat, Jan 5, 2013 at 5:59 PM, Edward Diener > <eldlistmailingz at tropicsoft.com <mailto:eldlistmailingz at tropicsoft.com>> > wrote: > > On 01/05/2013 01:11 PM, Dmitri Gribenko wrote: > > On Sat, Jan 5, 2013 at 7:48 PM, Edward Diener > <eldlistmailingz at tropicsoft.__com > <mailto:eldlistmailingz at tropicsoft.com>> wrote: > > I actually found out that llvm/configure will choose clang > if it is > found in the path. This contradicts what is written at > http://llvm.org/docs/__GettingStarted.html#__requirements > <http://llvm.org/docs/GettingStarted.html#requirements>, > where it says it > will use the first GCC it finds. Perhaps that explanation > needs to be > updated. > > > Updated docs in r171630. > > Finally I found that if llvm/configure uses clang instead of > gcc, it > invariably fails on my Linux distros because it is using the gcc > distributed included directories and an earlier version of > clang will > often fail with these gcc header files. Once I force > llvm/configure to > use gcc, building llvm/clang succeeds again. > > > Right. Maybe we need to skip old clang versions in this case. > > > I think this should be done until clang can use its own header files > and libraries, when it is installed as a binary, rather than the > ones that gcc installs. In fact I am a bit amazed that clang does > not already have its own header files and libraries for use when one > tries llvm/configure and it sets up llvm's build system to use clang > as its compiler. Is this the fault of clang or is it the fault of > the llvm/configure system ? > > > There is no complete solution for LLVM-only headers/libraries yet on > Linux. For C++, you can use libc++, but you still need some GCC > libraries (or alternatives). And you will at least need glibc or > another compatible C runtime.Should not what it is needed by clang to work correctly under Linux be posted somewhere on the clang Getting Started web page ? Even what you posted above requires guesswork on my part. Am I supposed to install libc++ and glibc in a Linux distro for clang to work correctly ? Which versions do I need ? How do I tell clang what to use or is this automatically figured out by clang ? Will llvm/configure use these libraries if I let it choose a clang binary in order to build the latest llvm/clang from source ?
Maybe Matching Threads
- [LLVMdev] Building llvm from source with clang instead of gcc
- [LLVMdev] Building llvm from source with clang instead of gcc
- [LLVMdev] Building llvm from source with clang instead of gcc
- [LLVMdev] Building llvm from source with clang instead of gcc
- [LLVMdev] Building llvm from source with clang instead of gcc