Skip to content

Commit 482c219

Browse files
authored
Fix FreeBSD build failures. Update tests for FreeBSD (#92)
1 parent c5e7725 commit 482c219

File tree

6 files changed

+42
-30
lines changed

6 files changed

+42
-30
lines changed

src/libpsl-native/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ project(PSL-NATIVE)
55
set(CMAKE_BUILD_TYPE "Release")
66
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Werror -fstack-protector-strong -fpie -D_FORTIFY_SOURCE=2")
77

8-
if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
8+
if (${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR "FreeBSD")
99
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,relro,-z,now")
1010
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
1111
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl")

src/libpsl-native/src/getcurrentthreadid.cpp

+6
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@
88
#include <sys/syscall.h>
99
#include <pthread.h>
1010

11+
#if __FreeBSD__
12+
#include <pthread_np.h>
13+
#endif
14+
1115
pid_t GetCurrentThreadId()
1216
{
1317
pid_t tid = 0;
@@ -17,6 +21,8 @@ pid_t GetCurrentThreadId()
1721
uint64_t tid64;
1822
pthread_threadid_np(NULL, &tid64);
1923
tid = (pid_t)tid64;
24+
#elif defined(__FreeBSD__)
25+
tid = pthread_getthreadid_np();
2026
#endif
2127
return tid;
2228
}

src/libpsl-native/src/getppid.cpp

+11-6
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@
1313
#include <sys/sysctl.h>
1414
#endif
1515

16+
#if __FreeBSD__
17+
#include <sys/types.h>
18+
#include <sys/sysctl.h>
19+
#endif
20+
1621
//! @brief GetPPid returns the parent process id for a process
1722
//!
1823
//! GetPPid
@@ -26,20 +31,20 @@
2631
//!
2732
pid_t GetPPid(pid_t pid)
2833
{
29-
30-
#if defined(__APPLE__) && defined(__MACH__)
31-
34+
#if defined (__APPLE__) && defined(__MACH__) || defined(__FreeBSD__)
3235
const pid_t PIDUnknown = UINT_MAX;
3336
struct kinfo_proc info;
3437
size_t length = sizeof(struct kinfo_proc);
35-
int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PID, pid};
38+
int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, pid };
3639
if (sysctl(mib, 4, &info, &length, NULL, 0) < 0)
3740
return PIDUnknown;
3841
if (length == 0)
3942
return PIDUnknown;
40-
43+
#if defined (__APPLE__) && defined(__MACH__)
4144
return info.kp_eproc.e_ppid;
42-
45+
#elif defined(__FreeBSD__)
46+
return info.ki_ppid;
47+
#endif
4348
#else
4449

4550
return UINT_MAX;

src/libpsl-native/src/getuserfrompid.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
#if __FreeBSD__
2323
#include <sys/user.h>
24+
#include <sys/sysctl.h>
2425
#endif
2526

2627
char* GetUserFromPid(pid_t pid)

src/libpsl-native/test/test-getcommonlstat.cpp

+11-11
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ TEST(GetCommonLStat, GetOwnerIdOfRoot)
3939
{
4040
FILE *p;
4141
CommonStat cs;
42-
#if defined (__APPLE__)
42+
#if defined (__APPLE__) || defined(__FreeBSD__)
4343
p = popen("/usr/bin/stat -f %u /", "r");
4444
#else
4545
p = popen("/usr/bin/stat -c %u /", "r");
@@ -56,7 +56,7 @@ TEST(GetCommonLStat, GetGroupId)
5656
{
5757
FILE *p;
5858
CommonStat cs;
59-
#if defined (__APPLE__)
59+
#if defined (__APPLE__) || defined(__FreeBSD__)
6060
p = popen("/usr/bin/stat -f %g /", "r");
6161
#else
6262
p = popen("/usr/bin/stat -c %g /", "r");
@@ -73,7 +73,7 @@ TEST(GetCommonLStat, GetInodeNumber)
7373
{
7474
FILE *p;
7575
CommonStat cs;
76-
#if defined (__APPLE__)
76+
#if defined (__APPLE__) || defined(__FreeBSD__)
7777
p = popen("/usr/bin/stat -f %i /", "r");
7878
#else
7979
p = popen("/usr/bin/stat -c %i /", "r");
@@ -90,7 +90,7 @@ TEST(GetCommonLStat, GetSize)
9090
{
9191
FILE *p;
9292
CommonStat cs;
93-
#if defined (__APPLE__)
93+
#if defined (__APPLE__) || defined(__FreeBSD__)
9494
p = popen("/usr/bin/stat -f %z /", "r");
9595
#else
9696
p = popen("/usr/bin/stat -c %s /", "r");
@@ -107,7 +107,7 @@ TEST(GetCommonLStat, GetBlockSize)
107107
{
108108
FILE *p;
109109
CommonStat cs;
110-
#if defined (__APPLE__)
110+
#if defined (__APPLE__) || defined(__FreeBSD__)
111111
p = popen("/usr/bin/stat -f %k /", "r");
112112
#else
113113
p = popen("/usr/bin/stat -c %o /", "r");
@@ -124,7 +124,7 @@ TEST(GetCommonLStat, GetBlockCount)
124124
{
125125
FILE *p;
126126
CommonStat cs;
127-
#if defined (__APPLE__)
127+
#if defined (__APPLE__) || defined(__FreeBSD__)
128128
p = popen("/usr/bin/stat -f %b /", "r");
129129
#else
130130
p = popen("/usr/bin/stat -c %b /", "r");
@@ -141,7 +141,7 @@ TEST(GetCommonLStat, GetLinkCount)
141141
{
142142
FILE *p;
143143
CommonStat cs;
144-
#if defined (__APPLE__)
144+
#if defined (__APPLE__) || defined(__FreeBSD__)
145145
p = popen("/usr/bin/stat -f %l /", "r");
146146
#else
147147
p = popen("/usr/bin/stat -c %h /", "r");
@@ -158,7 +158,7 @@ TEST(GetCommonLStat, GetDeviceId)
158158
{
159159
FILE *p;
160160
CommonStat cs;
161-
#if defined (__APPLE__)
161+
#if defined (__APPLE__) || defined(__FreeBSD__)
162162
p = popen("/usr/bin/stat -f %d /", "r");
163163
#else
164164
p = popen("/usr/bin/stat -c %d /", "r");
@@ -175,7 +175,7 @@ TEST(GetCommonLStat, GetATime)
175175
{
176176
FILE *p;
177177
CommonStat cs;
178-
#if defined (__APPLE__)
178+
#if defined (__APPLE__) || defined(__FreeBSD__)
179179
p = popen("/usr/bin/stat -f %a /", "r");
180180
#else
181181
p = popen("/usr/bin/stat -c %X /", "r");
@@ -192,7 +192,7 @@ TEST(GetCommonLStat, GetMTime)
192192
{
193193
FILE *p;
194194
CommonStat cs;
195-
#if defined (__APPLE__)
195+
#if defined (__APPLE__) || defined(__FreeBSD__)
196196
p = popen("/usr/bin/stat -f %m /", "r");
197197
#else
198198
p = popen("/usr/bin/stat -c %Y /", "r");
@@ -209,7 +209,7 @@ TEST(GetCommonLStat, GetCTime)
209209
{
210210
FILE *p;
211211
CommonStat cs;
212-
#if defined (__APPLE__)
212+
#if defined (__APPLE__) || defined(__FreeBSD__)
213213
p = popen("/usr/bin/stat -f %c /", "r");
214214
#else
215215
p = popen("/usr/bin/stat -c %Z /", "r");

src/libpsl-native/test/test-getcommonstat.cpp

+12-12
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ TEST(GetCommonStat, GetOwnerIdOfRoot)
4141
{
4242
FILE *p;
4343
CommonStat cs;
44-
#if defined (__APPLE__)
44+
#if defined (__APPLE__) || defined(__FreeBSD__)
4545
p = popen("/usr/bin/stat -f %u /", "r");
4646
#else
4747
p = popen("/usr/bin/stat -c %u /", "r");
@@ -58,7 +58,7 @@ TEST(GetCommonStat, GetGroupId)
5858
{
5959
FILE *p;
6060
CommonStat cs;
61-
#if defined (__APPLE__)
61+
#if defined (__APPLE__) || defined(__FreeBSD__)
6262
p = popen("/usr/bin/stat -f %g /", "r");
6363
#else
6464
p = popen("/usr/bin/stat -c %g /", "r");
@@ -75,7 +75,7 @@ TEST(GetCommonStat, GetInodeNumber)
7575
{
7676
FILE *p;
7777
CommonStat cs;
78-
#if defined (__APPLE__)
78+
#if defined (__APPLE__) || defined(__FreeBSD__)
7979
p = popen("/usr/bin/stat -f %i /", "r");
8080
#else
8181
p = popen("/usr/bin/stat -c %i /", "r");
@@ -93,7 +93,7 @@ TEST(GetCommonStat, GetMode)
9393
FILE *p;
9494
CommonStat cs;
9595
unsigned int mode = -1;
96-
#if defined (__APPLE__)
96+
#if defined (__APPLE__) || defined(__FreeBSD__)
9797
p = popen("/usr/bin/stat -f %p /", "r");
9898
int result = fscanf(p, "%o", &mode);
9999
#else
@@ -110,7 +110,7 @@ TEST(GetCommonStat, GetSize)
110110
{
111111
FILE *p;
112112
CommonStat cs;
113-
#if defined (__APPLE__)
113+
#if defined (__APPLE__) || defined(__FreeBSD__)
114114
p = popen("/usr/bin/stat -f %z /", "r");
115115
#else
116116
p = popen("/usr/bin/stat -c %s /", "r");
@@ -127,7 +127,7 @@ TEST(GetCommonStat, GetBlockSize)
127127
{
128128
FILE *p;
129129
CommonStat cs;
130-
#if defined (__APPLE__)
130+
#if defined (__APPLE__) || defined(__FreeBSD__)
131131
p = popen("/usr/bin/stat -f %k /", "r");
132132
#else
133133
p = popen("/usr/bin/stat -c %o /", "r");
@@ -144,7 +144,7 @@ TEST(GetCommonStat, GetBlockCount)
144144
{
145145
FILE *p;
146146
CommonStat cs;
147-
#if defined (__APPLE__)
147+
#if defined (__APPLE__) || defined(__FreeBSD__)
148148
p = popen("/usr/bin/stat -f %b /", "r");
149149
#else
150150
p = popen("/usr/bin/stat -c %b /", "r");
@@ -161,7 +161,7 @@ TEST(GetCommonStat, GetLinkCount)
161161
{
162162
FILE *p;
163163
CommonStat cs;
164-
#if defined (__APPLE__)
164+
#if defined (__APPLE__) || defined(__FreeBSD__)
165165
p = popen("/usr/bin/stat -f %l /", "r");
166166
#else
167167
p = popen("/usr/bin/stat -c %h /", "r");
@@ -178,7 +178,7 @@ TEST(GetCommonStat, GetDeviceId)
178178
{
179179
FILE *p;
180180
CommonStat cs;
181-
#if defined (__APPLE__)
181+
#if defined (__APPLE__) || defined(__FreeBSD__)
182182
p = popen("/usr/bin/stat -f %d /", "r");
183183
#else
184184
p = popen("/usr/bin/stat -c %d /", "r");
@@ -195,7 +195,7 @@ TEST(GetCommonStat, GetATime)
195195
{
196196
FILE *p;
197197
CommonStat cs;
198-
#if defined (__APPLE__)
198+
#if defined (__APPLE__) || defined(__FreeBSD__)
199199
p = popen("/usr/bin/stat -f %a /", "r");
200200
#else
201201
p = popen("/usr/bin/stat -c %X /", "r");
@@ -212,7 +212,7 @@ TEST(GetCommonStat, GetMTime)
212212
{
213213
FILE *p;
214214
CommonStat cs;
215-
#if defined (__APPLE__)
215+
#if defined (__APPLE__) || defined(__FreeBSD__)
216216
p = popen("/usr/bin/stat -f %m /", "r");
217217
#else
218218
p = popen("/usr/bin/stat -c %Y /", "r");
@@ -229,7 +229,7 @@ TEST(GetCommonStat, GetCTime)
229229
{
230230
FILE *p;
231231
CommonStat cs;
232-
#if defined (__APPLE__)
232+
#if defined (__APPLE__) || defined(__FreeBSD__)
233233
p = popen("/usr/bin/stat -f %c /", "r");
234234
#else
235235
p = popen("/usr/bin/stat -c %Z /", "r");

0 commit comments

Comments
 (0)