diff --git a/ocl.c b/ocl.c index 97c5ba38..9f987e5a 100644 --- a/ocl.c +++ b/ocl.c @@ -369,8 +369,12 @@ _clState *initCl(unsigned int gpu, char *name, size_t nameSize, algorithm_t *alg strcpy(build_data->source_filename, filename); strcpy(build_data->platform, name); strcpy(build_data->sgminer_path, sgminer_path); - if (opt_kernel_path && *opt_kernel_path) + if (opt_kernel_path && *opt_kernel_path) { build_data->kernel_path = opt_kernel_path; + } + else { + build_data->kernel_path = NULL; + } build_data->work_size = clState->wsize; build_data->has_bit_align = clState->hasBitAlign; diff --git a/ocl/build_kernel.c b/ocl/build_kernel.c index bcab9239..dfa8b99f 100644 --- a/ocl/build_kernel.c +++ b/ocl/build_kernel.c @@ -20,7 +20,7 @@ static char *file_contents(const char *filename, int *length) if (!f) { /* Then from `pwd`/kernel/ */ strcpy(fullpath, sgminer_path); - strcat(fullpath, "kernel/"); + strcat(fullpath, "/kernel/"); strcat(fullpath, filename); f = fopen(fullpath, "rb"); } @@ -49,7 +49,7 @@ static char *file_contents(const char *filename, int *length) void set_base_compiler_options(build_kernel_data *data) { char buf[255]; - sprintf(data->compiler_options, "-I \"%s\" -I \"%skernel\" -I \".\" -D WORKSIZE=%d", + sprintf(data->compiler_options, "-I \"%s\" -I \"%s\\kernel\" -I \".\" -D WORKSIZE=%d", data->sgminer_path, data->sgminer_path, (int)data->work_size); applog(LOG_DEBUG, "Setting worksize to %d", (int)(data->work_size)); @@ -61,7 +61,7 @@ void set_base_compiler_options(build_kernel_data *data) applog(LOG_DEBUG, "cl_amd_media_ops found, setting BITALIGN"); } else applog(LOG_DEBUG, "cl_amd_media_ops not found, will not set BITALIGN"); - + if (data->kernel_path) { strcat(data->compiler_options, " -I \""); strcat(data->compiler_options, data->kernel_path); @@ -126,10 +126,9 @@ cl_program build_opencl_kernel(build_kernel_data *data, const char *filename) applog(LOG_ERR, "Error %d: Building Program (clBuildProgram)", status); status = clGetProgramBuildInfo(program, *data->device, CL_PROGRAM_BUILD_LOG, 0, NULL, &log_size); - char *sz_log = (char *)malloc(log_size + 1); + char *sz_log = (char *)malloc(log_size); status = clGetProgramBuildInfo(program, *data->device, CL_PROGRAM_BUILD_LOG, log_size, sz_log, NULL); - sz_log[log_size] = '\0'; - applog(LOG_ERR, "%s", sz_log); + applogsiz(LOG_ERR, log_size, "%s", sz_log); free(sz_log); goto out; } diff --git a/sgminer.c b/sgminer.c index 71c46eef..3bb7a00a 100644 --- a/sgminer.c +++ b/sgminer.c @@ -7913,10 +7913,8 @@ int main(int argc, char *argv[]) s = strdup(argv[0]); strcpy(sgminer_path, dirname(s)); free(s); - strcat(sgminer_path, "/"); #else GetCurrentDirectory(PATH_MAX - 1, sgminer_path); - strcat(sgminer_path, "\\"); #endif /* Default algorithm specified in algorithm.c ATM */ @@ -8001,11 +7999,6 @@ int main(int argc, char *argv[]) char *old_path = opt_kernel_path; opt_kernel_path = (char *)alloca(PATH_MAX); strcpy(opt_kernel_path, old_path); - #ifdef _MSC_VER - strcat(opt_kernel_path, "\\"); - #else - strcat(opt_kernel_path, "/"); - #endif }