build libunwind for real
This commit is contained in:
parent
0a165aa583
commit
6eaf7d318e
@ -1,24 +1,29 @@
|
|||||||
{ stdenv, appleDerivation, dyld }:
|
{ stdenv, appleDerivation, dyld, osx_private_sdk }:
|
||||||
|
|
||||||
appleDerivation {
|
appleDerivation {
|
||||||
phases = [ "unpackPhase" "buildPhase" "installPhase" ];
|
phases = [ "unpackPhase" "buildPhase" "installPhase" ];
|
||||||
|
|
||||||
buildInputs = [ dyld ];
|
buildInputs = [ dyld ];
|
||||||
|
|
||||||
|
NIX_CFLAGS_COMPILE = "-I${osx_private_sdk}/PrivateSDK10.9.sparse.sdk/usr/include";
|
||||||
|
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
# cd src
|
pushd src
|
||||||
# cc -I$PWD/../include -c libuwind.cxx
|
c++ -I../include -c libuwind.cxx -o libuwind.o
|
||||||
# cc -I$PWD/../include -c Registers.s
|
cc -I../include -c Registers.s -o Registers.o
|
||||||
# cc -I$PWD/../include -c unw_getcontext.s
|
cc -I../include -c unw_getcontext.s -o unw_getcontext.o
|
||||||
# cc -I$PWD/../include -c UnwindLevel1.c
|
cc -I../include -c UnwindLevel1.c -o UnwindLevel1.o
|
||||||
# cc -I$PWD/../include -c UnwindLevel1-gcc-ext.c
|
cc -I../include -c UnwindLevel1-gcc-ext.c -o UnwindLevel1-gcc-ext.o
|
||||||
# cc -I$PWD/../include -c Unwind-sjlj.c
|
cc -I../include -c Unwind-sjlj.c -o Unwind-sjlj.o
|
||||||
|
ld -arch x86_64 -dylib libuwind.o Registers.o unw_getcontext.o UnwindLevel1.o UnwindLevel1-gcc-ext.o Unwind-sjlj.o \
|
||||||
|
-lc++ -lc -install_name $out/lib/libunwind.dylib -o libunwind.dylib
|
||||||
|
popd
|
||||||
'';
|
'';
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out
|
mkdir -p $out/lib
|
||||||
|
cp -R include $out/include
|
||||||
cp -r include $out
|
install -m 0755 src/libunwind.dylib $out/lib
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user