From patchwork Fri May 20 16:32:58 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [MERGED] libosmocore[master]: Fix build for OSX From: Holger Freyther X-Patchwork-Id: 70701 Message-Id: <20160520163259.27AC36E4A@lists.osmocom.org> To: Arran Cudbard-bell Date: Fri, 20 May 2016 16:32:58 +0000 Holger Freyther has submitted this change and it was merged. Change subject: Fix build for OSX ...................................................................... Fix build for OSX Change-Id: I580a500edcf4812e570be586890abef746083a8c Reviewed-on: https://gerrit.osmocom.org/74 Tested-by: Jenkins Builder Reviewed-by: Holger Freyther --- M include/osmocom/core/endian.h M src/stats.c 2 files changed, 24 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Holger Freyther: Looks good to me, approved diff --git a/include/osmocom/core/endian.h b/include/osmocom/core/endian.h index c890fd7..02c6406 100644 --- a/include/osmocom/core/endian.h +++ b/include/osmocom/core/endian.h @@ -23,6 +23,17 @@ #else #error "Unknown endian" #endif +#elif defined(__APPLE__) +#include + #if defined(__DARWIN_LITTLE_ENDIAN) + #define OSMO_IS_LITTLE_ENDIAN 1 + #define OSMO_IS_BIG_ENDIAN 0 + #elif define(__DARWIN_BIG_ENDIAN) + #define OSMO_IS_LITTLE_ENDIAN 0 + #define OSMO_IS_BIG_ENDIAN 1 + #else + #error "Unknown endian" + #endif #else #include #if __BYTE_ORDER == __LITTLE_ENDIAN diff --git a/src/stats.c b/src/stats.c index 73b2703..5f1d028 100644 --- a/src/stats.c +++ b/src/stats.c @@ -301,6 +301,14 @@ if (sock == -1) return -errno; +#if defined(__APPLE__) && !defined(MSG_NOSIGNAL) + { + static int val = 1; + + rc = setsockopt(sock, SOL_SOCKET, SO_NOSIGPIPE, (void*)&val, sizeof(val)); + goto failed; + } +#endif if (srep->bind_addr_len > 0) { rc = bind(sock, &srep->bind_addr, srep->bind_addr_len); if (rc == -1) @@ -345,7 +353,11 @@ { int rc; - rc = sendto(srep->fd, data, data_len, MSG_NOSIGNAL | MSG_DONTWAIT, + rc = sendto(srep->fd, data, data_len, +#ifdef MSG_NOSIGNAL + MSG_NOSIGNAL | +#endif + MSG_DONTWAIT, &srep->dest_addr, srep->dest_addr_len); if (rc == -1)