added FreeBSD specific preprocessor workaround