Make it build on MACOSX

Still need to explicitly defined
-DCMAKE_CXX_FLAGS=--std=c++14
which that flags should goes into CMakefile.txt

JF: Fixed merge failure by removing Filesystem.cpp
    and updated the copyright headers to new standard

Change-Id: I6d0886bd86bc1ddb593028194852551d43c77745
Signed-off-by: Keith Mok <ek9852@gmail.com>
Signed-off-by: Jim Flynn <jim.flynn@arm.com>
diff --git a/profiling/common/include/NetworkSockets.hpp b/profiling/common/include/NetworkSockets.hpp
index b970424..05a45ae 100644
--- a/profiling/common/include/NetworkSockets.hpp
+++ b/profiling/common/include/NetworkSockets.hpp
@@ -1,5 +1,5 @@
 //
-// Copyright © 2020 Arm Ltd. All rights reserved.
+// Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
@@ -10,7 +10,7 @@
 
 #pragma once
 
-#if defined(__unix__)
+#if defined(__unix__) || defined(__APPLE__)
 #include <poll.h>
 #include <sys/ioctl.h>
 #include <sys/socket.h>
@@ -31,6 +31,12 @@
 using Socket = int;
 using PollFd = pollfd;
 
+#elif defined(__APPLE__)
+
+using Socket = int;
+using PollFd = pollfd;
+#define SOCK_CLOEXEC 0
+
 #elif defined(_MSC_VER)
 
 using Socket = SOCKET;
diff --git a/profiling/common/src/NetworkSockets.cpp b/profiling/common/src/NetworkSockets.cpp
index 3ae0644..7f47c79 100644
--- a/profiling/common/src/NetworkSockets.cpp
+++ b/profiling/common/src/NetworkSockets.cpp
@@ -5,7 +5,7 @@
 
 #include "common/include/NetworkSockets.hpp"
 
-#if defined(__unix__)
+#if defined(__unix__) || defined(__APPLE__)
 #include <unistd.h>
 #include <fcntl.h>
 #include <armnn/Conversion.hpp>
@@ -19,7 +19,7 @@
 
 bool Initialize()
 {
-#if defined(__unix__)
+#if defined(__unix__) || defined(__APPLE__)
     return true;
 #elif defined(_MSC_VER)
     WSADATA wsaData;
@@ -29,7 +29,7 @@
 
 int Close(Socket s)
 {
-#if defined(__unix__)
+#if defined(__unix__) || defined(__APPLE__)
     return close(s);
 #elif defined(_MSC_VER)
     return closesocket(s);
@@ -39,7 +39,7 @@
 
 bool SetNonBlocking(Socket s)
 {
-#if defined(__unix__)
+#if defined(__unix__) || defined(__APPLE__)
     const int currentFlags = fcntl(s, F_GETFL);
     return fcntl(s, F_SETFL, currentFlags | O_NONBLOCK) == 0;
 #elif defined(_MSC_VER)
@@ -51,7 +51,7 @@
 
 long Write(Socket s, const void* buf, size_t len)
 {
-#if defined(__unix__)
+#if defined(__unix__) || defined(__APPLE__)
     return write(s, buf, len);
 #elif defined(_MSC_VER)
     return send(s, static_cast<const char*>(buf), static_cast<int>(len), 0);
@@ -61,7 +61,7 @@
 
 long Read(Socket s, void* buf, size_t len)
 {
-#if defined(__unix__)
+#if defined(__unix__) || defined(__APPLE__)
     return read(s, buf, len);
 #elif defined(_MSC_VER)
     return recv(s, static_cast<char*>(buf), static_cast<int>(len), 0);
@@ -70,7 +70,7 @@
 
 int Ioctl(Socket s, unsigned long int cmd, void* arg)
 {
-#if defined(__unix__)
+#if defined(__unix__) || defined(__APPLE__)
     ARMNN_NO_CONVERSION_WARN_BEGIN
     return ioctl(s, static_cast<int>(cmd), arg);
     ARMNN_NO_CONVERSION_WARN_END
@@ -82,7 +82,7 @@
 
 int Poll(PollFd* fds, nfds_t numFds, int timeout)
 {
-#if defined(__unix__)
+#if defined(__unix__) || defined(__APPLE__)
     return poll(fds, numFds, timeout);
 #elif defined(_MSC_VER)
     return WSAPoll(fds, numFds, timeout);
@@ -94,6 +94,8 @@
 {
 #if defined(__unix__)
     return accept4(s, addr, addrlen, flags);
+#elif defined(__APPLE__)
+    return accept(s, addr, addrlen);
 #elif defined(_MSC_VER)
     return accept(s, addr, reinterpret_cast<int*>(addrlen));
 #endif
diff --git a/src/armnnUtils/Filesystem.cpp b/src/armnnUtils/Filesystem.cpp
index ac9a414..59d0523 100644
--- a/src/armnnUtils/Filesystem.cpp
+++ b/src/armnnUtils/Filesystem.cpp
@@ -1,5 +1,5 @@
 //
-// Copyright © 2020 Arm Ltd. All rights reserved.
+// Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
diff --git a/src/armnnUtils/Filesystem.hpp b/src/armnnUtils/Filesystem.hpp
index 869b0c1..3d93ce6 100644
--- a/src/armnnUtils/Filesystem.hpp
+++ b/src/armnnUtils/Filesystem.hpp
@@ -1,5 +1,5 @@
 //
-// Copyright © 2020 Arm Ltd. All rights reserved.
+// Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
diff --git a/src/armnnUtils/Processes.cpp b/src/armnnUtils/Processes.cpp
index 86593aa..41b035b 100644
--- a/src/armnnUtils/Processes.cpp
+++ b/src/armnnUtils/Processes.cpp
@@ -1,11 +1,11 @@
 //
-// Copyright © 2020 Arm Ltd. All rights reserved.
+// Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
 #include "Processes.hpp"
 
-#if defined(__unix__)
+#if defined(__unix__) || defined(__APPLE__)
 #include <unistd.h>
 #elif defined(_MSC_VER)
 #include "WindowsWrapper.hpp"
@@ -18,7 +18,7 @@
 
 int GetCurrentId()
 {
-#if defined(__unix__)
+#if defined(__unix__) || defined(__APPLE__)
     return getpid();
 #elif defined(_MSC_VER)
     return ::GetCurrentProcessId();
diff --git a/src/armnnUtils/Processes.hpp b/src/armnnUtils/Processes.hpp
index 4e5e94b..8970423 100644
--- a/src/armnnUtils/Processes.hpp
+++ b/src/armnnUtils/Processes.hpp
@@ -1,5 +1,5 @@
 //
-// Copyright © 2020 Arm Ltd. All rights reserved.
+// Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
diff --git a/src/backends/backendsCommon/DynamicBackendUtils.cpp b/src/backends/backendsCommon/DynamicBackendUtils.cpp
index 1abea11..46b5a52 100644
--- a/src/backends/backendsCommon/DynamicBackendUtils.cpp
+++ b/src/backends/backendsCommon/DynamicBackendUtils.cpp
@@ -1,5 +1,5 @@
 //
-// Copyright © 2017 Arm Ltd. All rights reserved.
+// Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
@@ -15,7 +15,7 @@
 
 void* DynamicBackendUtils::OpenHandle(const std::string& sharedObjectPath)
 {
-#if defined(__unix__)
+#if defined(__unix__) || defined(__APPLE__)
     if (sharedObjectPath.empty())
     {
         throw RuntimeException("OpenHandle error: shared object path must not be empty");
@@ -35,7 +35,7 @@
 
 void DynamicBackendUtils::CloseHandle(const void* sharedObjectHandle)
 {
-#if defined(__unix__)
+#if defined(__unix__) || defined(__APPLE__)
     if (!sharedObjectHandle)
     {
         return;
@@ -63,7 +63,7 @@
 
 std::string DynamicBackendUtils::GetDlError()
 {
-#if defined(__unix__)
+#if defined(__unix__) || defined(__APPLE__)
     const char* errorMessage = dlerror();
     if (!errorMessage)
     {
diff --git a/src/backends/backendsCommon/DynamicBackendUtils.hpp b/src/backends/backendsCommon/DynamicBackendUtils.hpp
index f4cdd4d..63ee611 100644
--- a/src/backends/backendsCommon/DynamicBackendUtils.hpp
+++ b/src/backends/backendsCommon/DynamicBackendUtils.hpp
@@ -1,5 +1,5 @@
 //
-// Copyright © 2017 Arm Ltd. All rights reserved.
+// Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
@@ -14,7 +14,7 @@
 
 #include <string>
 #include <vector>
-#if defined(__unix__)
+#if defined(__unix__) || defined(__APPLE__)
 #include <dlfcn.h>
 #endif
 
@@ -61,7 +61,7 @@
 template<typename EntryPointType>
 EntryPointType DynamicBackendUtils::GetEntryPoint(const void* sharedObjectHandle, const char* symbolName)
 {
-#if defined(__unix__)
+#if defined(__unix__) || defined(__APPLE__)
     if (sharedObjectHandle == nullptr)
     {
         throw RuntimeException("GetEntryPoint error: invalid handle");
diff --git a/src/profiling/SocketProfilingConnection.cpp b/src/profiling/SocketProfilingConnection.cpp
index 31f930b..c231045 100644
--- a/src/profiling/SocketProfilingConnection.cpp
+++ b/src/profiling/SocketProfilingConnection.cpp
@@ -1,5 +1,5 @@
 //
-// Copyright © 2019 Arm Ltd. All rights reserved.
+// Copyright © 2019 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
diff --git a/src/profiling/SocketProfilingConnection.hpp b/src/profiling/SocketProfilingConnection.hpp
index 259ee13..a646c03 100644
--- a/src/profiling/SocketProfilingConnection.hpp
+++ b/src/profiling/SocketProfilingConnection.hpp
@@ -1,5 +1,5 @@
 //
-// Copyright © 2019 Arm Ltd. All rights reserved.
+// Copyright © 2019 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
@@ -29,8 +29,13 @@
     // Read a full packet from the socket.
     Packet ReceivePacket();
 
+#ifndef __APPLE__
     // To indicate we want to use an abstract UDS ensure the first character of the address is 0.
     const char* m_GatorNamespace = "\0gatord_namespace";
+#else
+    // MACOSX does not support abstract UDS
+    const char* m_GatorNamespace = "/tmp/gatord_namespace";
+#endif
     armnnUtils::Sockets::PollFd m_Socket[1]{};
 };