From reading the documentation, it appears that clLinkProgram will only link for the provided cl_context. This seems to be to allow a programmer to create cl_program objects with binary source for multiple platforms, and link them at runtime to the desired cl_context.