I use the AMD APPSDK 2.8 for development, test machines include both AMD and Intel CPUs, and AMD and Nvidia graphics cards. Is there some way to tell the OpenCL header files included in the APP SDK to enforce only using OpenCL 1.1 API functionilty? I am running into problems on systems which also include devices from other manufacturers, as merely requesting platform/devices information for them can cause various crashes (in nature depending on specific devices / drivers).
Presently I am just using the OpenCL 1.1 headers directly from Khronos to #include but still link against the AMD APP lib files; something that works so far with a few edits in those headers, but I don't feel really comfortable with it in the long run.
Is there some general solution to this problem? I can never be sure what devices clients will have (including the possibility of multiple!), but in the end of the day I have to link my binary against the lib of a given OpenCL SDK provider - whether Intel, AMD, NVidia etc. As far as I know Khronos itself does not provide generic library files per se to link against.