fix bool convertion with GCC 4.8 (again) and __linux__ (again)

Please, take care of implicit conversion as mentioned in a previous (now closed) issue.

Also don't forget to use __unix__ instead of __linux__ when there is no reason to use __linux__.