Use __linux preprocessor define (instead of "linux") to detect Linux host

Apparently if you build with -std=c++11, linux is not defined, but __linux should work with and without it.