[cfe-dev] Installing libc++

Jean-Daniel Dupas devlists at shadowlab.org
Tue Apr 19 05:38:31 PDT 2011


Le 18 avr. 2011 à 23:06, Howard Hinnant a écrit :

> On Apr 18, 2011, at 4:46 PM, Jon Kalb wrote:
> 
>> On 4/16/11 12:34 AM, "Jean-Daniel Dupas" <devlists at shadowlab.org> wrote:
>> 
>>> Le 15 avr. 2011 à 18:58, Howard Hinnant a écrit :
>>> 
>>>> On Apr 15, 2011, at 12:10 PM, Jon Kalb wrote:
>>>> 
>>>>> 
>>>>> Howard, et. all,
>>>>> 
>>>>> Following the steps here: http://libcxx.llvm.org/
>>>>> 
>>>>> I’m stuck here:
>>>>> 
>>>>> Where it says: “That should result in a libc++.1.dylib. To install it I like
>>>>> to use links instead of copying, but either should work:”
>>>>> 
>>>>> Instead I get:
>>>>> 
>>>>>> Jon-Kalbs-MacBook-Pro:lib jonkalb$ sudo ./buildit
>>>>>> + for FILE in '../src/*.cpp'
>>>>>> + clang++ -c -g -Os -fPIC -nostdinc++ -I../include ../src/algorithm.cpp
>>>>>> + for FILE in '../src/*.cpp'
>>>>>> + clang++ -c -g -Os -fPIC -nostdinc++ -I../include ../src/bind.cpp
>>>>>> + for FILE in '../src/*.cpp'
>>>>>> + clang++ -c -g -Os -fPIC -nostdinc++ -I../include ../src/chrono.cpp
>>>>>> + for FILE in '../src/*.cpp'
>>>>>> + clang++ -c -g -Os -fPIC -nostdinc++ -I../include
>>>>>> ../src/condition_variable.cpp
>>>>>> + for FILE in '../src/*.cpp'
>>>>>> + clang++ -c -g -Os -fPIC -nostdinc++ -I../include ../src/exception.cpp
>>>>>> + for FILE in '../src/*.cpp'
>>>>>> + clang++ -c -g -Os -fPIC -nostdinc++ -I../include ../src/future.cpp
>>>>>> + for FILE in '../src/*.cpp'
>>>>>> + clang++ -c -g -Os -fPIC -nostdinc++ -I../include ../src/hash.cpp
>>>>>> + for FILE in '../src/*.cpp'
>>>>>> + clang++ -c -g -Os -fPIC -nostdinc++ -I../include ../src/ios.cpp
>>>>>> + for FILE in '../src/*.cpp'
>>>>>> + clang++ -c -g -Os -fPIC -nostdinc++ -I../include ../src/iostream.cpp
>>>>>> + for FILE in '../src/*.cpp'
>>>>>> + clang++ -c -g -Os -fPIC -nostdinc++ -I../include ../src/locale.cpp
>>>>>> + for FILE in '../src/*.cpp'
>>>>>> + clang++ -c -g -Os -fPIC -nostdinc++ -I../include ../src/memory.cpp
>>>>>> + for FILE in '../src/*.cpp'
>>>>>> + clang++ -c -g -Os -fPIC -nostdinc++ -I../include ../src/mutex.cpp
>>>>>> + for FILE in '../src/*.cpp'
>>>>>> + clang++ -c -g -Os -fPIC -nostdinc++ -I../include ../src/new.cpp
>>>>>> + for FILE in '../src/*.cpp'
>>>>>> + clang++ -c -g -Os -fPIC -nostdinc++ -I../include ../src/random.cpp
>>>>>> + for FILE in '../src/*.cpp'
>>>>>> + clang++ -c -g -Os -fPIC -nostdinc++ -I../include ../src/regex.cpp
>>>>>> + for FILE in '../src/*.cpp'
>>>>>> + clang++ -c -g -Os -fPIC -nostdinc++ -I../include ../src/stdexcept.cpp
>>>>>> + for FILE in '../src/*.cpp'
>>>>>> + clang++ -c -g -Os -fPIC -nostdinc++ -I../include ../src/string.cpp
>>>>>> + for FILE in '../src/*.cpp'
>>>>>> + clang++ -c -g -Os -fPIC -nostdinc++ -I../include ../src/strstream.cpp
>>>>>> + for FILE in '../src/*.cpp'
>>>>>> + clang++ -c -g -Os -fPIC -nostdinc++ -I../include ../src/system_error.cpp
>>>>>> + for FILE in '../src/*.cpp'
>>>>>> + clang++ -c -g -Os -fPIC -nostdinc++ -I../include ../src/thread.cpp
>>>>>> + for FILE in '../src/*.cpp'
>>>>>> + clang++ -c -g -Os -fPIC -nostdinc++ -I../include ../src/typeinfo.cpp
>>>>>> + for FILE in '../src/*.cpp'
>>>>>> + clang++ -c -g -Os -fPIC -nostdinc++ -I../include ../src/utility.cpp
>>>>>> + for FILE in '../src/*.cpp'
>>>>>> + clang++ -c -g -Os -fPIC -nostdinc++ -I../include ../src/valarray.cpp
>>>>>> + cc algorithm.o bind.o chrono.o condition_variable.o exception.o future.o
>>>>>> hash.o ios.o iostream.o locale.o memory.o mutex.o new.o random.o regex.o
>>>>>> stdexcept.o string.o strstream.o system_error.o thread.o typeinfo.o
>>>>>> utility.o valarray.o -fPIC -o libc++.so.1.0 -shared -nodefaultlibs
>>>>>> -Wl,-soname,libc++.so.1 -lpthread -lrt -lc
>>>>>> ld: unknown option: -soname
>>>>>> collect2: ld returned 1 exit status
>>>>>> 
>>>>> Any idea what I’m doing wrong?
>>>>> 
>>>>> Jon
>>>> 
>>>> Hi Jon,
>>>> 
>>>> It looks like for some reason the following step:
>>>> 
>>>> $ export TRIPLE=-apple-
>>>> 
>>>> didn't take.  You can confirm whether or not this happened with:
>>>> 
>>>> $ printenv
>>>> 
>>>> which should list:
>>>> 
>>>> TRIPLE=-apple-
>>> 
>>> 
>>> There is no reason you have to use sudo to build the library.
>>> 
>>> For security reason, sudo cleanup the environment by default. So the "buildit"
>>> script is executed in a clean env without TRIPLE exported.
>>> 
>>> -- Jean-Daniel
>> 
>> If I don't use sudo I get this:
>> 
>> Jon-Kalbs-MacBook-Pro:lib jonkalb$ ./buildit
>> + for FILE in '../src/*.cpp'
>> + clang++ -c -g -Os -arch i386 -arch x86_64 -std=c++0x -U__STRICT_ANSI__
>> -nostdinc++ -I../include ../src/algorithm.cpp
>> /usr/bin/lipo: can't create output file: algorithm.o (Permission denied)
>> clang: error: unable to remove file: algorithm.o: can't destroy file:
>> Permission denied
>> clang: error: lipo command failed with exit code 1 (use -v to see
>> invocation)
> 
> It looks like you don't have write permission in the directory where you've checked out libc++.  You should check out into some place where you would normally do development work.
> 
> Let us know if I've guessed wrong.

The first build using sudo create the object file with owner "root", and so prevent execution of the builtit command as normal user. Restart from a fresh check out.

-- Jean-Daniel








More information about the cfe-dev mailing list