From a4647ea20eb055dea32af7927b23329994d60163 Mon Sep 17 00:00:00 2001
From: Olivier Cinquin <olivier@brutus1.bio.uci.edu>
Date: Sun, 7 Sep 2014 18:26:27 -0700
Subject: [PATCH] Allow compilation with FreeBSD/clang.

---
 src/fisher/kfunc.c                                            | 4 ++--
 src/utils/BamTools/src/api/internal/io/HostInfo_p.cpp         | 3 +++
 .../BamTools/src/api/internal/io/TcpSocketEngine_unix_p.cpp   | 4 +++-
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/fisher/kfunc.c b/src/fisher/kfunc.c
index e735e636..5c39d497 100644
--- a/src/fisher/kfunc.c
+++ b/src/fisher/kfunc.c
@@ -1,4 +1,4 @@
-#include <math.h>
+#include <cmath>
 #include <stdlib.h>
 
 /* Log gamma function
@@ -243,7 +243,7 @@ double kt_fisher_exact(long long n11, long long n12, long long n21, long long n2
     *two = left + right;
     if (*two > 1.) *two = 1.;
     // adjust left and right
-    if (abs(i - n11) < abs(j - n11)) right = 1. - left + q;
+    if (abs((long) (i - n11)) < abs((long) (j - n11))) right = 1. - left + q;
     else left = 1.0 - right + q;
     *_left = left; *_right = right;
     return q;
diff --git a/src/utils/BamTools/src/api/internal/io/HostInfo_p.cpp b/src/utils/BamTools/src/api/internal/io/HostInfo_p.cpp
index 40b10472..5248e63d 100644
--- a/src/utils/BamTools/src/api/internal/io/HostInfo_p.cpp
+++ b/src/utils/BamTools/src/api/internal/io/HostInfo_p.cpp
@@ -7,6 +7,9 @@
 // Provides DNS lookup functionality for hostname & its discovered addresses
 // ***************************************************************************
 
+#ifdef __FreeBSD__
+#include <netinet/in.h>
+#endif
 #include "api/internal/io/HostInfo_p.h"
 using namespace BamTools;
 using namespace BamTools::Internal;
diff --git a/src/utils/BamTools/src/api/internal/io/TcpSocketEngine_unix_p.cpp b/src/utils/BamTools/src/api/internal/io/TcpSocketEngine_unix_p.cpp
index 5b100e48..58994077 100644
--- a/src/utils/BamTools/src/api/internal/io/TcpSocketEngine_unix_p.cpp
+++ b/src/utils/BamTools/src/api/internal/io/TcpSocketEngine_unix_p.cpp
@@ -6,7 +6,9 @@
 // ---------------------------------------------------------------------------
 // Provides low-level implementation of TCP I/O for all UNIX-like systems
 // ***************************************************************************
-
+#ifdef __FreeBSD__
+#include <netinet/in.h>
+#endif
 #include "api/internal/io/TcpSocketEngine_p.h"
 #include "api/internal/io/NetUnix_p.h"
 using namespace BamTools;
-- 
GitLab