Work on linux-2.6.27.29, linux-3.16 and llvm-3.5