[cfe-dev] Installing libc++
Howard Hinnant
hhinnant at apple.com
Mon Apr 18 14:06:17 PDT 2011
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.
Howard
More information about the cfe-dev
mailing list