trapexit / mergerfs

a featureful union filesystem

Home Page:http://spawn.link

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Not compiling on FreeBSD

trapexit opened this issue · comments

gmake INTERNAL_FUSE=0
(...)
c++   -std=c++11 -Wall -pipe -MMD -Iinclude -Ibuild -D_REENTRANT -D_FILE_OFFSET_BITS=64 -DPACKAGE_VERSION=\"2.9.7-mergerfs_2.30.0\" -DFUSERMOUNT_DIR=\"/usr/local/bin\" -c lib/cpu.cpp -o build/cpu.o
lib/cpu.cpp:19:10: error: no matching function for call to 'sched_getaffinity'
  return sched_getaffinity(thread_id_,
         ^~~~~~~~~~~~~~~~~
/usr/include/sched.h:43:5: note: candidate function not viable: cannot convert argument of incomplete type 'const pthread_t' (aka 'pthread *const') to 'pid_t' (aka 'int') for 1st argument
int sched_getaffinity(pid_t pid, size_t cpusetsz, cpuset_t *cpuset);
    ^
lib/cpu.cpp:28:10: error: use of undeclared identifier 'pthread_setaffinity_np'; did you mean 'sched_setaffinity'?
  return pthread_setaffinity_np(thread_id_,
         ^~~~~~~~~~~~~~~~~~~~~~
         sched_setaffinity                                                                       
/usr/include/sched.h:44:5: note: 'sched_setaffinity' declared here                               
int sched_setaffinity(pid_t pid, size_t cpusetsz, const cpuset_t *cpuset);
    ^
lib/cpu.cpp:28:33: error: cannot initialize a parameter of type 'pid_t' (aka 'int') with an lvalue of type 'const pthread_t' (aka 'pthread *const')
  return pthread_setaffinity_np(thread_id_,
                                ^~~~~~~~~~
/usr/include/sched.h:44:29: note: passing argument to parameter 'pid' here                       
int sched_setaffinity(pid_t pid, size_t cpusetsz, const cpuset_t *cpuset);
                            ^
3 errors generated. 

Originally posted by @probonopd in #562 (comment)

Should have mentioned, I tried to compile on FreeBSD 13.1-RELEASE-p3.

I defacto stopped supporting FreeBSD some time ago as the Linux version of FUSE and other misc features were not supported on FreeBSD. I'm not opposed to supporting it again but it just hasn't been a priority and was always best effort from the start given I don't use the platform. Happy to keep this ticket open but I don't know when I'll get around to looking at it.