Always define USE_PTHREAD_FOR_ITIMER for FreeBSD.
Quoting original patch author:
Some quick investigation reveals that USE_PTHREAD_FOR_ITIMER is only set if THREADED_RTS is defined; that is, when ghc is run with the
-threaded
option.
From the context, Linux is the only OS where USE_PTHREAD_FOR_ITIMER depends on THREADED_RTS also being set. This seems to be because on Linux, GHC uses some timerfd thing.
FreeBSD, like the rest of the OS's, should always define USE_PTHREAD_FOR_ITIMER.