At commit 7e8647e, "make macos" fails with numerous errors. Some are in Heap-Layers, some not. Transcript below. You may well be aware of all this :)
I downloaded the 3.9 tarball and it built (with many warnings). It would be nice if there were Git tags for the releases, assuming you have the history in Git.
Thanks!
$ uname -a
Darwin silverbird.local 12.4.0 Darwin Kernel Version 12.4.0: Wed May 1 17:57:12 PDT 2013; root:xnu-2050.24.15~1/RELEASE_X86_64 x86_64
$ clang --version
Apple clang version 4.0 (tags/Apple/clang-421.0.60) (based on LLVM 3.1svn)
Target: x86_64-apple-darwin12.4.0
Thread model: posix
$ git clone --recursive git://github.com/emeryberger/Hoard.git
$ cd Hoard/src
$ make macos
clang++ -arch i386 -arch x86_64 -pipe -g -O3 -Wall -DNDEBUG -I. -Iinclude -Iinclude/util -Iinclude/hoard -Iinclude/superblocks -IHeap-Layers -D_REENTRANT=1 -compatibility_version 1 -current_version 1 -dynamiclib -D'CUSTOM_PREFIX(x)=xx##x' source/libhoard.cpp Heap-Layers/wrappers/macwrapper.cpp source/mactls.cpp -o libhoard.dylib -ldl -lpthread
In file included from source/libhoard.cpp:33:
In file included from Heap-Layers/heaplayers.h:103:
In file included from Heap-Layers/heaps/all.h:1:
In file included from Heap-Layers/heaps/buildingblock/all.h:1:
Heap-Layers/heaps/buildingblock/adaptheap.h:51:9: error: use of undeclared
identifier 'assert'
assert (SuperHeap::getSize(ptr) >= sizeof(dict));
^
Heap-Layers/heaps/combining/strictsegheap.h:102:50: note: in instantiation of
member function 'HL::AdaptHeap<HL::DLList,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource> >::malloc' requested here
ptr = SuperHeap::myLittleHeap[sizeClass].malloc (realSize);
^
include/hoard/thresholdsegheap.h:42:31: note: in instantiation of member
function 'HL::StrictSegHeap<80, size2class, class2size,
HL::AdaptHeap<HL::DLList,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource>>,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource> >::malloc' requested here
void * ptr = SuperHeap::malloc (sz);
^
Heap-Layers/heaps/threads/lockedheap.h:43:21: note: in instantiation of member
function 'Hoard::ThresholdSegHeap<20, 65536, 80, size2class, class2size,
HL::AdaptHeap<HL::DLList,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource>>,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource> >::malloc' requested here
return Super::malloc (sz);
^
Heap-Layers/heaps/threads/threadheap.h:66:28: note: in instantiation of member
function 'HL::LockedHeap<HL::MacLockType, Hoard::ThresholdSegHeap<20,
65536, 80, size2class, class2size, HL::AdaptHeap<HL::DLList,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource>>,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource>> >::malloc' requested here
return getHeap(tid)->malloc (sz);
^
Heap-Layers/heaps/combining/hybridheap.h:82:17: note: in instantiation of member
function 'HL::ThreadHeap<64, HL::LockedHeap<HL::MacLockType,
Hoard::ThresholdSegHeap<20, 65536, 80, size2class, class2size,
HL::AdaptHeap<HL::DLList,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource>>,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource>>> >::malloc' requested here
return bm.malloc (sz);
^
Heap-Layers/heaps/combining/hybridheap.h:57:15: note: in instantiation of member
function 'HL::HybridHeap<8192, Hoard::ThreadPoolHeap<2048, 128,
Hoard::PerThreadHoardHeap>, Hoard::BigHeap>::slowPath' requested here
ptr = slowPath (sz);
^
Heap-Layers/wrappers/ansiwrapper.h:52:31: note: in instantiation of member
function 'HL::HybridHeap<8192, Hoard::ThreadPoolHeap<2048, 128,
Hoard::PerThreadHoardHeap>, Hoard::BigHeap>::malloc' requested here
void * ptr = SuperHeap::malloc (sz);
^
include/superblocks/tlab.h:102:33: note: in instantiation of member function
'HL::ANSIWrapper<Hoard::IgnoreInvalidFree<HL::HybridHeap<8192,
Hoard::ThreadPoolHeap<2048, 128, Hoard::PerThreadHoardHeap>,
Hoard::BigHeap>> >::malloc' requested here
void * ptr = _parentHeap->malloc (sz);
^
source/libhoard.cpp:116:21: note: in instantiation of member function
'Hoard::ThreadLocalAllocationBuffer<11, getSizeClass, getClassSize, 256,
262144, Hoard::HoardSuperblock<HL::MacLockType, 65536, Hoard::SmallHeap>,
65536, Hoard::HoardHeapType>::malloc' requested here
void * ptr = h->malloc (sz);
^
In file included from source/libhoard.cpp:33:
In file included from Heap-Layers/heaplayers.h:103:
In file included from Heap-Layers/heaps/all.h:1:
In file included from Heap-Layers/heaps/buildingblock/all.h:1:
Heap-Layers/heaps/buildingblock/adaptheap.h:59:9: error: use of undeclared
identifier 'assert'
assert (SuperHeap::getSize(ptr) >= sizeof(dict));
^
Heap-Layers/heaps/combining/strictsegheap.h:127:50: note: in instantiation of
member function 'HL::AdaptHeap<HL::DLList,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource> >::free' requested here
SuperHeap::myLittleHeap[objectSizeClass].free (ptr);
^
include/hoard/thresholdsegheap.h:55:18: note: in instantiation of member
function 'HL::StrictSegHeap<80, size2class, class2size,
HL::AdaptHeap<HL::DLList,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource>>,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource> >::free' requested here
SuperHeap::free (ptr);
^
Heap-Layers/heaps/threads/lockedheap.h:48:14: note: in instantiation of member
function 'Hoard::ThresholdSegHeap<20, 65536, 80, size2class, class2size,
HL::AdaptHeap<HL::DLList,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource>>,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource> >::free' requested here
Super::free (ptr);
^
Heap-Layers/heaps/threads/threadheap.h:73:21: note: in instantiation of member
function 'HL::LockedHeap<HL::MacLockType, Hoard::ThresholdSegHeap<20,
65536, 80, size2class, class2size, HL::AdaptHeap<HL::DLList,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource>>,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource>> >::free' requested here
getHeap(tid)->free (ptr);
^
Heap-Layers/heaps/combining/hybridheap.h:68:12: note: in instantiation of member
function 'HL::ThreadHeap<64, HL::LockedHeap<HL::MacLockType,
Hoard::ThresholdSegHeap<20, 65536, 80, size2class, class2size,
HL::AdaptHeap<HL::DLList,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource>>,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource>>> >::free' requested here
bm.free (ptr);
^
include/superblocks/ignoreinvalidfree.h:49:13: note: in instantiation of member
function 'HL::HybridHeap<8192, Hoard::ThreadPoolHeap<2048, 128,
Hoard::PerThreadHoardHeap>, Hoard::BigHeap>::free' requested here
SuperHeap::free (ptr);
^
Heap-Layers/wrappers/ansiwrapper.h:59:19: note: in instantiation of member
function 'Hoard::IgnoreInvalidFree<HL::HybridHeap<8192,
Hoard::ThreadPoolHeap<2048, 128, Hoard::PerThreadHoardHeap>,
Hoard::BigHeap> >::free' requested here
SuperHeap::free (ptr);
^
include/superblocks/tlab.h:132:23: note: in instantiation of member function
'HL::ANSIWrapper<Hoard::IgnoreInvalidFree<HL::HybridHeap<8192,
Hoard::ThreadPoolHeap<2048, 128, Hoard::PerThreadHoardHeap>,
Hoard::BigHeap>> >::free' requested here
_parentHeap->free (ptr);
^
source/libhoard.cpp:121:22: note: in instantiation of member function
'Hoard::ThreadLocalAllocationBuffer<11, getSizeClass, getClassSize, 256,
262144, Hoard::HoardSuperblock<HL::MacLockType, 65536, Hoard::SmallHeap>,
65536, Hoard::HoardHeapType>::free' requested here
getCustomHeap()->free (ptr);
^
In file included from source/libhoard.cpp:33:
In file included from Heap-Layers/heaplayers.h:103:
In file included from Heap-Layers/heaps/all.h:6:
In file included from Heap-Layers/heaps/combining/all.h:2:
Heap-Layers/heaps/combining/segheap.h:189:15: error: no member named 'clear' in
'Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource>'
bigheap.clear();
~~~~~~~ ^
include/hoard/thresholdsegheap.h:63:15: note: in instantiation of member
function 'HL::SegHeap<80, size2class, class2size,
HL::AdaptHeap<HL::DLList,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource>>,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource> >::clear' requested here
SuperHeap::clear();
^
Heap-Layers/heaps/threads/lockedheap.h:48:14: note: in instantiation of member
function 'Hoard::ThresholdSegHeap<20, 65536, 80, size2class, class2size,
HL::AdaptHeap<HL::DLList,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource>>,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource> >::free' requested here
Super::free (ptr);
^
Heap-Layers/heaps/threads/threadheap.h:73:21: note: in instantiation of member
function 'HL::LockedHeap<HL::MacLockType, Hoard::ThresholdSegHeap<20,
65536, 80, size2class, class2size, HL::AdaptHeap<HL::DLList,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource>>,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource>> >::free' requested here
getHeap(tid)->free (ptr);
^
Heap-Layers/heaps/combining/hybridheap.h:68:12: note: in instantiation of member
function 'HL::ThreadHeap<64, HL::LockedHeap<HL::MacLockType,
Hoard::ThresholdSegHeap<20, 65536, 80, size2class, class2size,
HL::AdaptHeap<HL::DLList,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource>>,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource>>> >::free' requested here
bm.free (ptr);
^
include/superblocks/ignoreinvalidfree.h:49:13: note: in instantiation of member
function 'HL::HybridHeap<8192, Hoard::ThreadPoolHeap<2048, 128,
Hoard::PerThreadHoardHeap>, Hoard::BigHeap>::free' requested here
SuperHeap::free (ptr);
^
Heap-Layers/wrappers/ansiwrapper.h:59:19: note: in instantiation of member
function 'Hoard::IgnoreInvalidFree<HL::HybridHeap<8192,
Hoard::ThreadPoolHeap<2048, 128, Hoard::PerThreadHoardHeap>,
Hoard::BigHeap> >::free' requested here
SuperHeap::free (ptr);
^
include/superblocks/tlab.h:132:23: note: in instantiation of member function
'HL::ANSIWrapper<Hoard::IgnoreInvalidFree<HL::HybridHeap<8192,
Hoard::ThreadPoolHeap<2048, 128, Hoard::PerThreadHoardHeap>,
Hoard::BigHeap>> >::free' requested here
_parentHeap->free (ptr);
^
source/libhoard.cpp:121:22: note: in instantiation of member function
'Hoard::ThreadLocalAllocationBuffer<11, getSizeClass, getClassSize, 256,
262144, Hoard::HoardSuperblock<HL::MacLockType, 65536, Hoard::SmallHeap>,
65536, Hoard::HoardHeapType>::free' requested here
getCustomHeap()->free (ptr);
^
In file included from source/libhoard.cpp:33:
In file included from Heap-Layers/heaplayers.h:103:
In file included from Heap-Layers/heaps/all.h:1:
In file included from Heap-Layers/heaps/buildingblock/all.h:1:
Heap-Layers/heaps/buildingblock/adaptheap.h:81:18: error: no member named
'clear' in 'Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType,
65536, Hoard::BigHeap>, 65536, Hoard::MmapSource>'
SuperHeap::clear();
^
Heap-Layers/heaps/combining/segheap.h:184:25: note: in instantiation of member
function 'HL::AdaptHeap<HL::DLList,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource> >::clear' requested here
myLittleHeap[i].clear();
^
include/hoard/thresholdsegheap.h:63:15: note: in instantiation of member
function 'HL::SegHeap<80, size2class, class2size,
HL::AdaptHeap<HL::DLList,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource>>,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource> >::clear' requested here
SuperHeap::clear();
^
Heap-Layers/heaps/threads/lockedheap.h:48:14: note: in instantiation of member
function 'Hoard::ThresholdSegHeap<20, 65536, 80, size2class, class2size,
HL::AdaptHeap<HL::DLList,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource>>,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource> >::free' requested here
Super::free (ptr);
^
Heap-Layers/heaps/threads/threadheap.h:73:21: note: in instantiation of member
function 'HL::LockedHeap<HL::MacLockType, Hoard::ThresholdSegHeap<20,
65536, 80, size2class, class2size, HL::AdaptHeap<HL::DLList,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource>>,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource>> >::free' requested here
getHeap(tid)->free (ptr);
^
Heap-Layers/heaps/combining/hybridheap.h:68:12: note: in instantiation of member
function 'HL::ThreadHeap<64, HL::LockedHeap<HL::MacLockType,
Hoard::ThresholdSegHeap<20, 65536, 80, size2class, class2size,
HL::AdaptHeap<HL::DLList,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource>>,
Hoard::AddHeaderHeap<Hoard::HoardSuperblock<HL::MacLockType, 65536,
Hoard::BigHeap>, 65536, Hoard::MmapSource>>> >::free' requested here
bm.free (ptr);
^
include/superblocks/ignoreinvalidfree.h:49:13: note: in instantiation of member
function 'HL::HybridHeap<8192, Hoard::ThreadPoolHeap<2048, 128,
Hoard::PerThreadHoardHeap>, Hoard::BigHeap>::free' requested here
SuperHeap::free (ptr);
^
Heap-Layers/wrappers/ansiwrapper.h:59:19: note: in instantiation of member
function 'Hoard::IgnoreInvalidFree<HL::HybridHeap<8192,
Hoard::ThreadPoolHeap<2048, 128, Hoard::PerThreadHoardHeap>,
Hoard::BigHeap> >::free' requested here
SuperHeap::free (ptr);
^
include/superblocks/tlab.h:132:23: note: in instantiation of member function
'HL::ANSIWrapper<Hoard::IgnoreInvalidFree<HL::HybridHeap<8192,
Hoard::ThreadPoolHeap<2048, 128, Hoard::PerThreadHoardHeap>,
Hoard::BigHeap>> >::free' requested here
_parentHeap->free (ptr);
^
source/libhoard.cpp:121:22: note: in instantiation of member function
'Hoard::ThreadLocalAllocationBuffer<11, getSizeClass, getClassSize, 256,
262144, Hoard::HoardSuperblock<HL::MacLockType, 65536, Hoard::SmallHeap>,
65536, Hoard::HoardHeapType>::free' requested here
getCustomHeap()->free (ptr);
^
4 errors generated.
make: *** [macos] Error 1