The libOpenCL.so file included in OpenCL SDKs for linux from AMD, Intel, and NVIDIA seem to be all different, and similarly so with the header files. It would be nice if Khronos mandated that these be binary equivalent for any given release date (obviously after the release date an update to the current version can't be mandated), or better yet if Khronos made the libOpenCL.so code open source and kept it updated in the Khronos OpenCL API Registry like the header files. Vendor extensions shouldn't be placed in the official header files until they've been approved by Khronos, and thus available in the official Khronos OpenCL API Registry.