Add a big bundle of packages from apple source releases. Many of them only provide headers or stubs, but are what's needed for the upcoming pure-darwin stdenv, and don't do any harm for now.
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
{ stdenv, appleDerivation, cctools, zlib }:
|
||||
|
||||
appleDerivation {
|
||||
buildInputs = [ cctools zlib ];
|
||||
|
||||
buildPhase = ''
|
||||
export CFLAGS=" -I$PWD/head -I$PWD/sys -I$PWD/libelf -I$PWD/libdwarf"
|
||||
|
||||
pushd libelf
|
||||
for f in *.c; do
|
||||
if [ "$f" != "lintsup.c" ]; then # Apple doesn't use it, so I don't either
|
||||
cc -D_INT64_TYPE -D_LONGLONG_TYPE -D_ILP32 $CFLAGS -c $f
|
||||
fi
|
||||
done
|
||||
libtool -static -o libelf.a *.o
|
||||
popd
|
||||
|
||||
pushd libdwarf
|
||||
./configure CFLAGS="$CFLAGS -Icmplrs"
|
||||
make
|
||||
popd
|
||||
|
||||
cp libelf/libelf.a tools/ctfconvert
|
||||
cp libdwarf/libdwarf.a tools/ctfconvert
|
||||
|
||||
pushd tools/ctfconvert
|
||||
for f in ../../darwin_shim.c *.c; do
|
||||
cc -DNDEBUG -DNS_BLOCK_ASSERTIONS $CFLAGS -c $f
|
||||
done
|
||||
|
||||
export COMMON="alist.o ctf.o darwin_shim.o hash.o iidesc.o input.o list.o \
|
||||
memory.o output.o stack.o strtab.o symbol.o tdata.o traverse.o util.o"
|
||||
|
||||
export CONVERT="ctfconvert.o dwarf.o merge.o st_bugs.o st_parse.o stabs.o"
|
||||
export MERGE="barrier.o ctfmerge.o dwarf.o fifo.o merge.o st_bugs.o st_parse.o stabs.o utils.o"
|
||||
export DUMP="dump.o fifo.o utils.o"
|
||||
|
||||
clang -o ctfconvert $CONVERT $COMMON -L. -lz -lelf -ldwarf
|
||||
clang -o ctfmerge $MERGE $COMMON -L. -lz -lelf -ldwarf
|
||||
clang -o ctfdump $DUMP $COMMON -L. -lz -lelf
|
||||
popd
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp tools/ctfconvert/ctfconvert $out/bin
|
||||
cp tools/ctfconvert/ctfmerge $out/bin
|
||||
cp tools/ctfconvert/ctfdump $out/bin
|
||||
'';
|
||||
}
|
||||
Reference in New Issue
Block a user