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:
Dan Peebles
2015-02-08 01:53:52 -05:00
parent f43c324cee
commit 29f265dfd2
44 changed files with 4470 additions and 1 deletions
@@ -0,0 +1,129 @@
/*
* Generated by dtrace(1M).
*/
#ifndef _AUTO_DTRACE_H
#define _AUTO_DTRACE_H
#include <unistd.h>
#ifdef __cplusplus
extern "C" {
#endif
#define GARBAGE_COLLECTION_STABILITY "___dtrace_stability$garbage_collection$v1$1_1_0_1_1_0_1_1_0_1_1_0_1_1_0"
#define GARBAGE_COLLECTION_TYPEDEFS "___dtrace_typedefs$garbage_collection$v2$6175746f5f636f6c6c656374696f6e5f70686173655f74$6175746f5f636f6c6c656374696f6e5f747970655f74$6d616c6c6f635f7a6f6e655f74"
#if !defined(DTRACE_PROBES_DISABLED) || !DTRACE_PROBES_DISABLED
#define GARBAGE_COLLECTION_AUTO_BLOCK_LOST_THREAD_LOCALITY(arg0, arg1) \
do { \
__asm__ volatile(".reference " GARBAGE_COLLECTION_TYPEDEFS); \
__dtrace_probe$garbage_collection$auto_block_lost_thread_locality$v1$766f6964202a$75696e7436345f74(arg0, arg1); \
__asm__ volatile(".reference " GARBAGE_COLLECTION_STABILITY); \
} while (0)
#define GARBAGE_COLLECTION_AUTO_BLOCK_LOST_THREAD_LOCALITY_ENABLED() \
({ int _r = __dtrace_isenabled$garbage_collection$auto_block_lost_thread_locality$v1(); \
__asm__ volatile(""); \
_r; })
#define GARBAGE_COLLECTION_AUTO_REFCOUNT_ONE_ALLOCATION(arg0) \
do { \
__asm__ volatile(".reference " GARBAGE_COLLECTION_TYPEDEFS); \
__dtrace_probe$garbage_collection$auto_refcount_one_allocation$v1$75696e7436345f74(arg0); \
__asm__ volatile(".reference " GARBAGE_COLLECTION_STABILITY); \
} while (0)
#define GARBAGE_COLLECTION_AUTO_REFCOUNT_ONE_ALLOCATION_ENABLED() \
({ int _r = __dtrace_isenabled$garbage_collection$auto_refcount_one_allocation$v1(); \
__asm__ volatile(""); \
_r; })
#define GARBAGE_COLLECTION_COLLECTION_BEGIN(arg0, arg1) \
do { \
__asm__ volatile(".reference " GARBAGE_COLLECTION_TYPEDEFS); \
__dtrace_probe$garbage_collection$collection_begin$v1$6d616c6c6f635f7a6f6e655f74202a$6175746f5f636f6c6c656374696f6e5f747970655f74(arg0, arg1); \
__asm__ volatile(".reference " GARBAGE_COLLECTION_STABILITY); \
} while (0)
#define GARBAGE_COLLECTION_COLLECTION_BEGIN_ENABLED() \
({ int _r = __dtrace_isenabled$garbage_collection$collection_begin$v1(); \
__asm__ volatile(""); \
_r; })
#define GARBAGE_COLLECTION_COLLECTION_END(arg0, arg1, arg2, arg3, arg4) \
do { \
__asm__ volatile(".reference " GARBAGE_COLLECTION_TYPEDEFS); \
__dtrace_probe$garbage_collection$collection_end$v1$6d616c6c6f635f7a6f6e655f74202a$75696e7436345f74$75696e7436345f74$75696e7436345f74$75696e7436345f74(arg0, arg1, arg2, arg3, arg4); \
__asm__ volatile(".reference " GARBAGE_COLLECTION_STABILITY); \
} while (0)
#define GARBAGE_COLLECTION_COLLECTION_END_ENABLED() \
({ int _r = __dtrace_isenabled$garbage_collection$collection_end$v1(); \
__asm__ volatile(""); \
_r; })
#define GARBAGE_COLLECTION_COLLECTION_PHASE_BEGIN(arg0, arg1) \
do { \
__asm__ volatile(".reference " GARBAGE_COLLECTION_TYPEDEFS); \
__dtrace_probe$garbage_collection$collection_phase_begin$v1$6d616c6c6f635f7a6f6e655f74202a$6175746f5f636f6c6c656374696f6e5f70686173655f74(arg0, arg1); \
__asm__ volatile(".reference " GARBAGE_COLLECTION_STABILITY); \
} while (0)
#define GARBAGE_COLLECTION_COLLECTION_PHASE_BEGIN_ENABLED() \
({ int _r = __dtrace_isenabled$garbage_collection$collection_phase_begin$v1(); \
__asm__ volatile(""); \
_r; })
#define GARBAGE_COLLECTION_COLLECTION_PHASE_END(arg0, arg1, arg2, arg3) \
do { \
__asm__ volatile(".reference " GARBAGE_COLLECTION_TYPEDEFS); \
__dtrace_probe$garbage_collection$collection_phase_end$v1$6d616c6c6f635f7a6f6e655f74202a$6175746f5f636f6c6c656374696f6e5f70686173655f74$75696e7436345f74$75696e7436345f74(arg0, arg1, arg2, arg3); \
__asm__ volatile(".reference " GARBAGE_COLLECTION_STABILITY); \
} while (0)
#define GARBAGE_COLLECTION_COLLECTION_PHASE_END_ENABLED() \
({ int _r = __dtrace_isenabled$garbage_collection$collection_phase_end$v1(); \
__asm__ volatile(""); \
_r; })
extern void __dtrace_probe$garbage_collection$auto_block_lost_thread_locality$v1$766f6964202a$75696e7436345f74(const void *, uint64_t);
extern int __dtrace_isenabled$garbage_collection$auto_block_lost_thread_locality$v1(void);
extern void __dtrace_probe$garbage_collection$auto_refcount_one_allocation$v1$75696e7436345f74(uint64_t);
extern int __dtrace_isenabled$garbage_collection$auto_refcount_one_allocation$v1(void);
extern void __dtrace_probe$garbage_collection$collection_begin$v1$6d616c6c6f635f7a6f6e655f74202a$6175746f5f636f6c6c656374696f6e5f747970655f74(const malloc_zone_t *, auto_collection_type_t);
extern int __dtrace_isenabled$garbage_collection$collection_begin$v1(void);
extern void __dtrace_probe$garbage_collection$collection_end$v1$6d616c6c6f635f7a6f6e655f74202a$75696e7436345f74$75696e7436345f74$75696e7436345f74$75696e7436345f74(const malloc_zone_t *, uint64_t, uint64_t, uint64_t, uint64_t);
extern int __dtrace_isenabled$garbage_collection$collection_end$v1(void);
extern void __dtrace_probe$garbage_collection$collection_phase_begin$v1$6d616c6c6f635f7a6f6e655f74202a$6175746f5f636f6c6c656374696f6e5f70686173655f74(const malloc_zone_t *, auto_collection_phase_t);
extern int __dtrace_isenabled$garbage_collection$collection_phase_begin$v1(void);
extern void __dtrace_probe$garbage_collection$collection_phase_end$v1$6d616c6c6f635f7a6f6e655f74202a$6175746f5f636f6c6c656374696f6e5f70686173655f74$75696e7436345f74$75696e7436345f74(const malloc_zone_t *, auto_collection_phase_t, uint64_t, uint64_t);
extern int __dtrace_isenabled$garbage_collection$collection_phase_end$v1(void);
#else
#define GARBAGE_COLLECTION_AUTO_BLOCK_LOST_THREAD_LOCALITY(arg0, arg1) \
do { \
} while (0)
#define GARBAGE_COLLECTION_AUTO_BLOCK_LOST_THREAD_LOCALITY_ENABLED() (0)
#define GARBAGE_COLLECTION_AUTO_REFCOUNT_ONE_ALLOCATION(arg0) \
do { \
} while (0)
#define GARBAGE_COLLECTION_AUTO_REFCOUNT_ONE_ALLOCATION_ENABLED() (0)
#define GARBAGE_COLLECTION_COLLECTION_BEGIN(arg0, arg1) \
do { \
} while (0)
#define GARBAGE_COLLECTION_COLLECTION_BEGIN_ENABLED() (0)
#define GARBAGE_COLLECTION_COLLECTION_END(arg0, arg1, arg2, arg3, arg4) \
do { \
} while (0)
#define GARBAGE_COLLECTION_COLLECTION_END_ENABLED() (0)
#define GARBAGE_COLLECTION_COLLECTION_PHASE_BEGIN(arg0, arg1) \
do { \
} while (0)
#define GARBAGE_COLLECTION_COLLECTION_PHASE_BEGIN_ENABLED() (0)
#define GARBAGE_COLLECTION_COLLECTION_PHASE_END(arg0, arg1, arg2, arg3) \
do { \
} while (0)
#define GARBAGE_COLLECTION_COLLECTION_PHASE_END_ENABLED() (0)
#endif /* !defined(DTRACE_PROBES_DISABLED) || !DTRACE_PROBES_DISABLED */
#ifdef __cplusplus
}
#endif
#endif /* _AUTO_DTRACE_H */
@@ -0,0 +1,74 @@
{ stdenv, appleDerivation }:
appleDerivation {
buildPhase = ''
cp ${./auto_dtrace.h} ./auto_dtrace.h
substituteInPlace auto_zone.cpp \
--replace "#include <msgtracer_client.h>" ''$'#include <asl.h>\nstatic void msgtracer_log_with_keys(...) { };'
substituteInPlace Definitions.h \
--replace "#include <System/pthread_machdep.h>" ""
# getspecific_direct is more efficient, but this should be equivalent...
substituteInPlace Zone.h \
--replace "_pthread_getspecific_direct" "pthread_getspecific" \
--replace "_pthread_has_direct_tsd()" "0" \
--replace "__PTK_FRAMEWORK_GC_KEY0" "110" \
--replace "__PTK_FRAMEWORK_GC_KEY1" "111" \
--replace "__PTK_FRAMEWORK_GC_KEY2" "112" \
--replace "__PTK_FRAMEWORK_GC_KEY3" "113" \
--replace "__PTK_FRAMEWORK_GC_KEY4" "114" \
--replace "__PTK_FRAMEWORK_GC_KEY5" "115" \
--replace "__PTK_FRAMEWORK_GC_KEY6" "116" \
--replace "__PTK_FRAMEWORK_GC_KEY7" "117" \
--replace "__PTK_FRAMEWORK_GC_KEY8" "118" \
--replace "__PTK_FRAMEWORK_GC_KEY9" "119"
substituteInPlace auto_zone.cpp \
--replace "__PTK_FRAMEWORK_GC_KEY9" "119" \
--replace "__PTK_FRAMEWORK_GC_KEY0" "110" \
substituteInPlace Zone.cpp \
--replace "_pthread_getspecific_direct" "pthread_getspecific" \
--replace "__PTK_FRAMEWORK_GC_KEY9" "119" \
--replace "__PTK_FRAMEWORK_GC_KEY0" "110" \
--replace "__PTK_LIBDISPATCH_KEY0" "20" \
--replace "struct auto_zone_cursor {" ''$'extern "C" int pthread_key_init_np(int, void (*)(void *));\nstruct auto_zone_cursor {'
substituteInPlace auto_impl_utilities.c \
--replace "# include <CrashReporterClient.h>" "void CRSetCrashLogMessage(void *msg) { };"
c++ -I. -O3 -c -Wno-c++11-extensions auto_zone.cpp
cc -I. -O3 -Iauto_tester -c auto_impl_utilities.c
c++ -I. -O3 -c auto_weak.cpp
c++ -I. -O3 -c Admin.cpp
c++ -I. -O3 -c Bitmap.cpp
c++ -I. -O3 -c Definitions.cpp
c++ -I. -O3 -c Environment.cpp
c++ -I. -O3 -c Large.cpp
c++ -I. -O3 -c Region.cpp
c++ -I. -O3 -c Subzone.cpp
c++ -I. -O3 -c WriteBarrier.cpp
c++ -I. -O3 -c Zone.cpp
c++ -I. -O3 -c Thread.cpp
c++ -I. -O3 -c InUseEnumerator.cpp
c++ -I. -O3 -c auto_gdb_interface.cpp
c++ -I. -O3 -c PointerHash.cpp
c++ -I. -O3 -c ThreadLocalCollector.cpp
c++ -I. -O3 -c ZoneDump.cpp
c++ -I. -O3 -c ZoneCollectors.cpp
c++ -I. -O3 -c SubzonePartition.cpp
c++ -I. -O3 -c ZoneCollectionChecking.cpp
c++ -I. -O3 -c ZoneCompaction.cpp
c++ -I. -O3 -c BlockRef.cpp
c++ -Wl,-no_dtrace_dof --stdlib=libc++ -dynamiclib -install_name $out/lib/libauto.dylib -o libauto.dylib *.o
'';
installPhase = ''
mkdir -p $out/lib $out/include
cp auto_zone.h auto_weak.h auto_tester/auto_tester.h auto_gdb_interface.h $out/include
cp libauto.dylib $out/lib
'';
}