Sorry, I forgot to paste the host code. When building a program the following code is executed:
// build
ciErr1 = clBuildProgram(cpProgram, 0, NULL, NULL, NULL, NULL);
// avoid abortion due to CL_BILD_PROGRAM_FAILURE
if (ciErr1 != CL_SUCCESS && ciErr1 != CL_BUILD_PROGRAM_FAILURE)
return EXIT_FAILURE;
cl_build_status build_status;
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_STATUS, sizeof(cl_build_status), &build_status, NULL);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
// if program built fails, print out error messages
if (build_status != CL_SUCCESS) {
char *build_log;
size_t ret_val_size;
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_LOG, 0, NULL, &ret_val_size);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
build_log = new char[ret_val_size+1];
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_LOG, ret_val_size, build_log, NULL);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
// to be carefully, terminate with
// build
ciErr1 = clBuildProgram(cpProgram, 0, NULL, NULL, NULL, NULL);
// avoid abortion due to CL_BILD_PROGRAM_FAILURE
if (ciErr1 != CL_SUCCESS && ciErr1 != CL_BUILD_PROGRAM_FAILURE)
return EXIT_FAILURE;
cl_build_status build_status;
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_STATUS, sizeof(cl_build_status), &build_status, NULL);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
// if program built fails, print out error messages
if (build_status != CL_SUCCESS) {
char *build_log;
size_t ret_val_size;
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_LOG, 0, NULL, &ret_val_size);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
build_log = new char[ret_val_size+1];
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_LOG, ret_val_size, build_log, NULL);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
// to be carefully, terminate with
// build
ciErr1 = clBuildProgram(cpProgram, 0, NULL, NULL, NULL, NULL);
// avoid abortion due to CL_BILD_PROGRAM_FAILURE
if (ciErr1 != CL_SUCCESS && ciErr1 != CL_BUILD_PROGRAM_FAILURE)
return EXIT_FAILURE;
cl_build_status build_status;
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_STATUS, sizeof(cl_build_status), &build_status, NULL);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
// if program built fails, print out error messages
if (build_status != CL_SUCCESS) {
char *build_log;
size_t ret_val_size;
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_LOG, 0, NULL, &ret_val_size);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
build_log = new char[ret_val_size+1];
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_LOG, ret_val_size, build_log, NULL);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
// to be carefully, terminate with
// build
ciErr1 = clBuildProgram(cpProgram, 0, NULL, NULL, NULL, NULL);
// avoid abortion due to CL_BILD_PROGRAM_FAILURE
if (ciErr1 != CL_SUCCESS && ciErr1 != CL_BUILD_PROGRAM_FAILURE)
return EXIT_FAILURE;
cl_build_status build_status;
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_STATUS, sizeof(cl_build_status), &build_status, NULL);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
// if program built fails, print out error messages
if (build_status != CL_SUCCESS) {
char *build_log;
size_t ret_val_size;
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_LOG, 0, NULL, &ret_val_size);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
build_log = new char[ret_val_size+1];
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_LOG, ret_val_size, build_log, NULL);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
// to be carefully, terminate with \0
// there's no information in the reference whether the string is 0 terminated or not
build_log[ret_val_size] = '\0';
cout << "BUILD LOG: " << endl;
cout << build_log << endl;
delete[] build_log;
return EXIT_FAILURE;
}
// there's no information in the reference whether the string is 0 terminated or not
build_log[ret_val_size] = '
// build
ciErr1 = clBuildProgram(cpProgram, 0, NULL, NULL, NULL, NULL);
// avoid abortion due to CL_BILD_PROGRAM_FAILURE
if (ciErr1 != CL_SUCCESS && ciErr1 != CL_BUILD_PROGRAM_FAILURE)
return EXIT_FAILURE;
cl_build_status build_status;
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_STATUS, sizeof(cl_build_status), &build_status, NULL);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
// if program built fails, print out error messages
if (build_status != CL_SUCCESS) {
char *build_log;
size_t ret_val_size;
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_LOG, 0, NULL, &ret_val_size);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
build_log = new char[ret_val_size+1];
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_LOG, ret_val_size, build_log, NULL);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
// to be carefully, terminate with \0
// there's no information in the reference whether the string is 0 terminated or not
build_log[ret_val_size] = '\0';
cout << "BUILD LOG: " << endl;
cout << build_log << endl;
delete[] build_log;
return EXIT_FAILURE;
}
';
cout << "BUILD LOG: " << endl;
cout << build_log << endl;
delete[] build_log;
return EXIT_FAILURE;
}
// there's no information in the reference whether the string is 0 terminated or not
build_log[ret_val_size] = '
// build
ciErr1 = clBuildProgram(cpProgram, 0, NULL, NULL, NULL, NULL);
// avoid abortion due to CL_BILD_PROGRAM_FAILURE
if (ciErr1 != CL_SUCCESS && ciErr1 != CL_BUILD_PROGRAM_FAILURE)
return EXIT_FAILURE;
cl_build_status build_status;
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_STATUS, sizeof(cl_build_status), &build_status, NULL);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
// if program built fails, print out error messages
if (build_status != CL_SUCCESS) {
char *build_log;
size_t ret_val_size;
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_LOG, 0, NULL, &ret_val_size);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
build_log = new char[ret_val_size+1];
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_LOG, ret_val_size, build_log, NULL);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
// to be carefully, terminate with
// build
ciErr1 = clBuildProgram(cpProgram, 0, NULL, NULL, NULL, NULL);
// avoid abortion due to CL_BILD_PROGRAM_FAILURE
if (ciErr1 != CL_SUCCESS && ciErr1 != CL_BUILD_PROGRAM_FAILURE)
return EXIT_FAILURE;
cl_build_status build_status;
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_STATUS, sizeof(cl_build_status), &build_status, NULL);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
// if program built fails, print out error messages
if (build_status != CL_SUCCESS) {
char *build_log;
size_t ret_val_size;
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_LOG, 0, NULL, &ret_val_size);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
build_log = new char[ret_val_size+1];
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_LOG, ret_val_size, build_log, NULL);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
// to be carefully, terminate with \0
// there's no information in the reference whether the string is 0 terminated or not
build_log[ret_val_size] = '\0';
cout << "BUILD LOG: " << endl;
cout << build_log << endl;
delete[] build_log;
return EXIT_FAILURE;
}
// there's no information in the reference whether the string is 0 terminated or not
build_log[ret_val_size] = '
// build
ciErr1 = clBuildProgram(cpProgram, 0, NULL, NULL, NULL, NULL);
// avoid abortion due to CL_BILD_PROGRAM_FAILURE
if (ciErr1 != CL_SUCCESS && ciErr1 != CL_BUILD_PROGRAM_FAILURE)
return EXIT_FAILURE;
cl_build_status build_status;
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_STATUS, sizeof(cl_build_status), &build_status, NULL);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
// if program built fails, print out error messages
if (build_status != CL_SUCCESS) {
char *build_log;
size_t ret_val_size;
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_LOG, 0, NULL, &ret_val_size);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
build_log = new char[ret_val_size+1];
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_LOG, ret_val_size, build_log, NULL);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
// to be carefully, terminate with \0
// there's no information in the reference whether the string is 0 terminated or not
build_log[ret_val_size] = '\0';
cout << "BUILD LOG: " << endl;
cout << build_log << endl;
delete[] build_log;
return EXIT_FAILURE;
}
';
cout << "BUILD LOG: " << endl;
cout << build_log << endl;
delete[] build_log;
return EXIT_FAILURE;
}
';
cout << "BUILD LOG: " << endl;
cout << build_log << endl;
delete[] build_log;
return EXIT_FAILURE;
}
// there's no information in the reference whether the string is 0 terminated or not
build_log[ret_val_size] = '
// build
ciErr1 = clBuildProgram(cpProgram, 0, NULL, NULL, NULL, NULL);
// avoid abortion due to CL_BILD_PROGRAM_FAILURE
if (ciErr1 != CL_SUCCESS && ciErr1 != CL_BUILD_PROGRAM_FAILURE)
return EXIT_FAILURE;
cl_build_status build_status;
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_STATUS, sizeof(cl_build_status), &build_status, NULL);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
// if program built fails, print out error messages
if (build_status != CL_SUCCESS) {
char *build_log;
size_t ret_val_size;
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_LOG, 0, NULL, &ret_val_size);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
build_log = new char[ret_val_size+1];
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_LOG, ret_val_size, build_log, NULL);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
// to be carefully, terminate with
// build
ciErr1 = clBuildProgram(cpProgram, 0, NULL, NULL, NULL, NULL);
// avoid abortion due to CL_BILD_PROGRAM_FAILURE
if (ciErr1 != CL_SUCCESS && ciErr1 != CL_BUILD_PROGRAM_FAILURE)
return EXIT_FAILURE;
cl_build_status build_status;
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_STATUS, sizeof(cl_build_status), &build_status, NULL);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
// if program built fails, print out error messages
if (build_status != CL_SUCCESS) {
char *build_log;
size_t ret_val_size;
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_LOG, 0, NULL, &ret_val_size);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
build_log = new char[ret_val_size+1];
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_LOG, ret_val_size, build_log, NULL);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
// to be carefully, terminate with
// build
ciErr1 = clBuildProgram(cpProgram, 0, NULL, NULL, NULL, NULL);
// avoid abortion due to CL_BILD_PROGRAM_FAILURE
if (ciErr1 != CL_SUCCESS && ciErr1 != CL_BUILD_PROGRAM_FAILURE)
return EXIT_FAILURE;
cl_build_status build_status;
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_STATUS, sizeof(cl_build_status), &build_status, NULL);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
// if program built fails, print out error messages
if (build_status != CL_SUCCESS) {
char *build_log;
size_t ret_val_size;
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_LOG, 0, NULL, &ret_val_size);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
build_log = new char[ret_val_size+1];
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_LOG, ret_val_size, build_log, NULL);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
// to be carefully, terminate with \0
// there's no information in the reference whether the string is 0 terminated or not
build_log[ret_val_size] = '\0';
cout << "BUILD LOG: " << endl;
cout << build_log << endl;
delete[] build_log;
return EXIT_FAILURE;
}
// there's no information in the reference whether the string is 0 terminated or not
build_log[ret_val_size] = '
// build
ciErr1 = clBuildProgram(cpProgram, 0, NULL, NULL, NULL, NULL);
// avoid abortion due to CL_BILD_PROGRAM_FAILURE
if (ciErr1 != CL_SUCCESS && ciErr1 != CL_BUILD_PROGRAM_FAILURE)
return EXIT_FAILURE;
cl_build_status build_status;
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_STATUS, sizeof(cl_build_status), &build_status, NULL);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
// if program built fails, print out error messages
if (build_status != CL_SUCCESS) {
char *build_log;
size_t ret_val_size;
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_LOG, 0, NULL, &ret_val_size);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
build_log = new char[ret_val_size+1];
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_LOG, ret_val_size, build_log, NULL);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
// to be carefully, terminate with \0
// there's no information in the reference whether the string is 0 terminated or not
build_log[ret_val_size] = '\0';
cout << "BUILD LOG: " << endl;
cout << build_log << endl;
delete[] build_log;
return EXIT_FAILURE;
}
';
cout << "BUILD LOG: " << endl;
cout << build_log << endl;
delete[] build_log;
return EXIT_FAILURE;
}
// there's no information in the reference whether the string is 0 terminated or not
build_log[ret_val_size] = '
// build
ciErr1 = clBuildProgram(cpProgram, 0, NULL, NULL, NULL, NULL);
// avoid abortion due to CL_BILD_PROGRAM_FAILURE
if (ciErr1 != CL_SUCCESS && ciErr1 != CL_BUILD_PROGRAM_FAILURE)
return EXIT_FAILURE;
cl_build_status build_status;
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_STATUS, sizeof(cl_build_status), &build_status, NULL);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
// if program built fails, print out error messages
if (build_status != CL_SUCCESS) {
char *build_log;
size_t ret_val_size;
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_LOG, 0, NULL, &ret_val_size);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
build_log = new char[ret_val_size+1];
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_LOG, ret_val_size, build_log, NULL);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
// to be carefully, terminate with
// build
ciErr1 = clBuildProgram(cpProgram, 0, NULL, NULL, NULL, NULL);
// avoid abortion due to CL_BILD_PROGRAM_FAILURE
if (ciErr1 != CL_SUCCESS && ciErr1 != CL_BUILD_PROGRAM_FAILURE)
return EXIT_FAILURE;
cl_build_status build_status;
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_STATUS, sizeof(cl_build_status), &build_status, NULL);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
// if program built fails, print out error messages
if (build_status != CL_SUCCESS) {
char *build_log;
size_t ret_val_size;
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_LOG, 0, NULL, &ret_val_size);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
build_log = new char[ret_val_size+1];
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_LOG, ret_val_size, build_log, NULL);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
// to be carefully, terminate with \0
// there's no information in the reference whether the string is 0 terminated or not
build_log[ret_val_size] = '\0';
cout << "BUILD LOG: " << endl;
cout << build_log << endl;
delete[] build_log;
return EXIT_FAILURE;
}
// there's no information in the reference whether the string is 0 terminated or not
build_log[ret_val_size] = '
// build
ciErr1 = clBuildProgram(cpProgram, 0, NULL, NULL, NULL, NULL);
// avoid abortion due to CL_BILD_PROGRAM_FAILURE
if (ciErr1 != CL_SUCCESS && ciErr1 != CL_BUILD_PROGRAM_FAILURE)
return EXIT_FAILURE;
cl_build_status build_status;
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_STATUS, sizeof(cl_build_status), &build_status, NULL);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
// if program built fails, print out error messages
if (build_status != CL_SUCCESS) {
char *build_log;
size_t ret_val_size;
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_LOG, 0, NULL, &ret_val_size);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
build_log = new char[ret_val_size+1];
ciErr1 = clGetProgramBuildInfo(cpProgram, cdDevices[0], CL_PROGRAM_BUILD_LOG, ret_val_size, build_log, NULL);
if (ciErr1 != CL_SUCCESS)
return EXIT_FAILURE;
// to be carefully, terminate with \0
// there's no information in the reference whether the string is 0 terminated or not
build_log[ret_val_size] = '\0';
cout << "BUILD LOG: " << endl;
cout << build_log << endl;
delete[] build_log;
return EXIT_FAILURE;
}
';
cout << "BUILD LOG: " << endl;
cout << build_log << endl;
delete[] build_log;
return EXIT_FAILURE;
}
';
cout << "BUILD LOG: " << endl;
cout << build_log << endl;
delete[] build_log;
return EXIT_FAILURE;
}
';
cout << "BUILD LOG: " << endl;
cout << build_log << endl;
delete[] build_log;
return EXIT_FAILURE;
}
So far…