build libunwind for real

This commit is contained in:
Jude Taylor 2015-10-27 18:00:00 -07:00
parent 0a165aa583
commit 6eaf7d318e

View File

@ -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; {