Open caitp opened 8 years ago
Currently working on getting the base linux branch building on OSX using the llvm toolchain, it's a challenge due to the number of win32 APIs used in the library
As of this morning (27/01/2016):
EchoBeach:out caitp$ xcodebuild | xcpretty
▸ Building CHAKRACORE/Chakra.Common.core [(Debug)]
▸ Check Dependencies
▸ Compiling BinaryFeatureControl.cpp
❌ /Users/caitp/git/ChakraCore/lib/common/DataStructures/comparer.h:143:18: no member named 'wcscmp' in the global namespace; did you mean '_wcsicmp'?
return ::wcscmp(str1, str2) == 0;
~~^~~~~~
❌ /Users/caitp/git/ChakraCore/lib/common/DataStructures/comparer.h:160:18: no member named 'wcscmp' in the global namespace; did you mean '_wcsicmp'?
return ::wcscmp(str1, str2);
^
⚠️ /Users/caitp/git/ChakraCore/lib/common/DataStructures/comparer.h:174:23: explicit specialization of 'TComparerType' within class scope is a Microsoft extension [-Wmicrosoft]
template <> class TComparerType<T> : public TComparer {};
^
⚠️ /Users/caitp/git/ChakraCore/lib/common/Memory/AllocationPolicyManager.h:128:46: '&&' within '||' [-Wlogical-op-parentheses]
memoryAllocationCallback != NULL && !memoryAllocationCallback(context, MemoryAllocateEvent::MemoryAllocate, byteCount))
^
⚠️ /Users/caitp/git/ChakraCore/lib/common/Memory/PageAllocator.h:445:15: unused variable 'oldVirtualAllocator' [-Wunused-variable]
PVOID oldVirtualAllocator = InterlockedCompareExchangePointer((PVOID*) &(this->virtualAllocator), virtualAllocator, NULL);
^
⚠️ /Users/caitp/git/ChakraCore/lib/common/Memory/ArenaAllocator.h:459:9: field 'bvFreeList' will be initialized after base 'Memory::ArenaAllocator' [-Wreorder]
bvFreeList(nullptr), ArenaAllocator(name, pageAllocator, outOfMemoryFunc, recoverMemoryFunc)
^
❌ /Users/caitp/git/ChakraCore/lib/common/Memory/ArenaAllocator.h:829:23: no matching function for call to 'InterlockedIncrement'
return (ulong)InterlockedIncrement(&refCount);
^
❌ /Users/caitp/git/ChakraCore/lib/common/Memory/ArenaAllocator.h:834:29: no matching function for call to 'InterlockedDecrement'
ulong refs = (ulong)InterlockedDecrement(&refCount);
^
❌ /Users/caitp/git/ChakraCore/lib/common/Memory/ArenaAllocator.h:859:16: member access into incomplete type 'Memory::ReferencedArenaAdapter'
adapter->AddRef();
^
❌ /Users/caitp/git/ChakraCore/lib/common/Memory/ArenaAllocator.h:864:16: member access into incomplete type 'Memory::ReferencedArenaAdapter'
adapter->Release();
^
❌ /Users/caitp/git/ChakraCore/lib/common/Memory/ArenaAllocator.h:870:19: member access into incomplete type 'Memory::ReferencedArenaAdapter'
if(adapter->AddStrongReference())
^
❌ /Users/caitp/git/ChakraCore/lib/common/Memory/ArenaAllocator.h:881:16: member access into incomplete type 'Memory::ReferencedArenaAdapter'
adapter->ReleaseStrongReference();
^
▸ Compiling CmdParser.cpp
❌ /Users/caitp/git/ChakraCore/lib/common/DataStructures/comparer.h:143:18: no member named 'wcscmp' in the global namespace; did you mean '_wcsicmp'?
return ::wcscmp(str1, str2) == 0;
^
❌ /Users/caitp/git/ChakraCore/lib/common/DataStructures/comparer.h:160:18: no member named 'wcscmp' in the global namespace; did you mean '_wcsicmp'?
return ::wcscmp(str1, str2);
^
⚠️ /Users/caitp/git/ChakraCore/lib/common/DataStructures/comparer.h:174:23: explicit specialization of 'TComparerType' within class scope is a Microsoft extension [-Wmicrosoft]
template <> class TComparerType<T> : public TComparer {};
^
⚠️ /Users/caitp/git/ChakraCore/lib/common/Memory/AllocationPolicyManager.h:128:46: '&&' within '||' [-Wlogical-op-parentheses]
memoryAllocationCallback != NULL && !memoryAllocationCallback(context, MemoryAllocateEvent::MemoryAllocate, byteCount))
^
⚠️ /Users/caitp/git/ChakraCore/lib/common/Memory/PageAllocator.h:445:15: unused variable 'oldVirtualAllocator' [-Wunused-variable]
PVOID oldVirtualAllocator = InterlockedCompareExchangePointer((PVOID*) &(this->virtualAllocator), virtualAllocator, NULL);
^
⚠️ /Users/caitp/git/ChakraCore/lib/common/Memory/ArenaAllocator.h:459:9: field 'bvFreeList' will be initialized after base 'Memory::ArenaAllocator' [-Wreorder]
bvFreeList(nullptr), ArenaAllocator(name, pageAllocator, outOfMemoryFunc, recoverMemoryFunc)
^
❌ /Users/caitp/git/ChakraCore/lib/common/Memory/ArenaAllocator.h:829:23: no matching function for call to 'InterlockedIncrement'
return (ulong)InterlockedIncrement(&refCount);
^
❌ /Users/caitp/git/ChakraCore/lib/common/Memory/ArenaAllocator.h:834:29: no matching function for call to 'InterlockedDecrement'
ulong refs = (ulong)InterlockedDecrement(&refCount);
^
❌ /Users/caitp/git/ChakraCore/lib/common/Memory/ArenaAllocator.h:859:16: member access into incomplete type 'Memory::ReferencedArenaAdapter'
adapter->AddRef();
^
❌ /Users/caitp/git/ChakraCore/lib/common/Memory/ArenaAllocator.h:864:16: member access into incomplete type 'Memory::ReferencedArenaAdapter'
adapter->Release();
^
❌ /Users/caitp/git/ChakraCore/lib/common/Memory/ArenaAllocator.h:870:19: member access into incomplete type 'Memory::ReferencedArenaAdapter'
if(adapter->AddStrongReference())
^
❌ /Users/caitp/git/ChakraCore/lib/common/Memory/ArenaAllocator.h:881:16: member access into incomplete type 'Memory::ReferencedArenaAdapter'
adapter->ReleaseStrongReference();
^
❌ /Users/caitp/git/ChakraCore/lib/common/core/CmdParser.cpp:611:9: use of undeclared identifier 'wprintf'
wprintf(L"%s : %s\n", (LPCWSTR)exp, oneArg);
^
** BUILD FAILED **
Which is a major improvement, but there are a few little bits left, and more once additional build targets are added
And now, lib/common/core all builds happily (but with a few warnings). It's likely that there are linker errors to deal with later on, but hey.
Issues encountered thus far:
this->member
) member accesses belonging to a super-class with template parameters / fix other MSVC two-phase name resolution bugs (there are many)Stuff that is building so far on OSX:
Toolchains supported: