_BSD_SOURCE is deprecated in glibc 2.20, causing a warning to be given. Since vmtouch is compiled with -Werror by default, this also causes the compilation to fail. According to the feature_test_macros man page , the warning can be silenced while still allowing compatibility with older versions of glibc by defining *both* _BSD_SOURCE and _DEFAULT_SOURCE.  http://man7.org/linux/man-pages/man7/feature_test_macros.7.html
It is observed when compiling with clang.
So they can be set globally. This follows recommendations from FreeBSD Porter's Handbook, but it looks like good for other platforms too.
The -w option can be used together with -d to: * let the parent process wait for the child process (daemon) to mlock the files. * Forward stdout and stderr from child to the parent until the files are mlocked. Also, if the daemon fails to mlock for any reason, the parent process will fail with the same exit code. This is useful when you want to run vmtouch as a daemon, but still be able to wait for files to be properly mlocked.