using clang as our compiler
backport changes from fastcat