Context callback never called

I’m trying to get errors reported mostly automatically and with more detail. I’m creating a context with a callback

ctx = clCreateContext(NULL, 1, &device, testCallback, NULL, &err);

My sample callback looks like this:

static void testCallback(const char* errinfo, const void* private_info, size_t cb, void* user_data)


    fprintf("Something's broken: '%s'\n", errinfo);


This is supposed to be “A callback function that can be registered by the application. This callback function will be used by the OpenCL implementation to report information on errors that occur in this context.” This is working for me with Apple’s OpenCL on OS X, but when I try using it with Nvidia’s on Linux, it never is called on any error. Is there some reason this doesn’t work?