[cfe-dev] libc++abi on linux

Ben Pope benpope81 at gmail.com
Sun Jul 8 23:12:20 PDT 2012


On Monday, July 09, 2012 01:09 PM, Ashok Nalkund wrote:
> On 7/8/2012 8:58 PM, Ben Pope wrote:
>> For anybody else reading, is there a specific intended direction with
>> regard to libc++ on linux?
>>
>> I guess at a minimum it would be nice if we could say for clang/libc++
>> on linux:
>>
>> * Forget libc++abi (which would be a shame)
>> * Use the pathscale components
>> * Set your clang defaults using method A
>
> Would there be a recommendation on the different pieces (specifically
> ABI and the unwind libraries)?

This is the crux of my question, really.  Since libc++abi has all the 
boxes ticked for linux: http://libcxxabi.llvm.org/spec.html it's easy to 
assume that there are no more pieces to the puzzle.  I'm sure Howard 
didn't do the work just for the challenge itself.

Even the libc++ page doesn't really tell you that it isn't complete; 
this page: http://libcxx.llvm.org gives a hint that libc++abi is needed, 
at least on Mac.  Having said that, it doesn't tell you how to use it on 
Linux, is there really such little interest?

It's frustrating, because I have managed to get it to work for a 
small-ish project with quite a few dependencies (but subsequently broken 
it), but I'm not sure if what I did to get it to work is likely to 
continue to work with newer versions.

If I use clang with c++11, I either have to use an outdated libstdc++, 
which reduces my ability to use c++11, or find the right patch for a 
more recent libstdc++.  I just want to use libc++ on Linux, out of the 
box (or at least, with some instructions that can be found on the website).

What is needed?
* ABI/Unwind recommendation (don't care what)
* Update the instructions on the libc++ home page
* Testing infrastructure?
   * Do automatic test results get uploaded somewhere?
   * If so, where are they?
   * If not, why not?
   * How can I contribute test runs?

Is this what I want? http://lab.llvm.org:8011/one_line_per_build

Is it possible to know what the configuration of the machines are?  (Is 
it libstdc++ for gcc 4.2, libc++, which abi/unwind etc.)

>> * Rejoice.
>>
>> I wouldn't even mind if I had two build separately two versions of
>> clang; one that works with libc++ (with any abi stuff that works) and
>> one that works with libstdc++ (which I'd probably not use).
>
> I actually have 3 builds: clang built with g++, clang build with clang,
> clang build with clang/libc++. Now I'm trying to remove the ABI and
> unwind dependency on GCC.

I'm not concerned with how clang is built, I'm concerned about the code 
that it produces and the dependencies that code has.

For me, the point of having multiple builds was to be able to build-in 
the arguments for getting the compiler to compile and link my code with 
a given set of dependencies without having to specify those dependencies 
each time.  I've seen too many broken makefiles for libraries I depend 
upon that ignore my best efforts to convince them to specify the right 
arguments to my compiler at the right time.

Basically I want to build a cross-compiler that targets the host, so 
that I don't have to specify anything to the build system other than the 
compiler path.  It really should be that simple.

Ben




More information about the cfe-dev mailing list