caitp / ChakraCore

ChakraCore is the core part of the Chakra Javascript engine that powers Microsoft Edge
Other
1 stars 0 forks source link

linux-posix branch fixups #1

Open caitp opened 8 years ago

caitp commented 8 years ago

Issues encountered thus far:

Stuff that is building so far on OSX:

Toolchains supported:

caitp commented 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

caitp commented 8 years ago

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

caitp commented 8 years ago

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.