Browse Source

opencl: Avoid printing empty build logs

Luke Dashjr 11 years ago
parent
commit
15eff4074c
2 changed files with 7 additions and 5 deletions
  1. 1 1
      libblkmaker
  2. 6 4
      ocl.c

+ 1 - 1
libblkmaker

@@ -1 +1 @@
-Subproject commit bca8f6f5e56c547e9bbc808fb644152e44f3344d
+Subproject commit 385f2ddd7c11532d73175009d864dc646596c554

+ 6 - 4
ocl.c

@@ -877,9 +877,10 @@ build:
 		size_t logSize;
 		size_t logSize;
 		status = clGetProgramBuildInfo(clState->program, devices[gpu], CL_PROGRAM_BUILD_LOG, 0, NULL, &logSize);
 		status = clGetProgramBuildInfo(clState->program, devices[gpu], CL_PROGRAM_BUILD_LOG, 0, NULL, &logSize);
 
 
-		char *log = malloc(logSize);
+		char *log = malloc(logSize ?: 1);
 		status = clGetProgramBuildInfo(clState->program, devices[gpu], CL_PROGRAM_BUILD_LOG, logSize, log, NULL);
 		status = clGetProgramBuildInfo(clState->program, devices[gpu], CL_PROGRAM_BUILD_LOG, logSize, log, NULL);
-		applog(LOG_ERR, "%s", log);
+		if (logSize > 0 && log[0])
+			applog(LOG_ERR, "%s", log);
 		free(log);
 		free(log);
 		return NULL;
 		return NULL;
 	}
 	}
@@ -1003,9 +1004,10 @@ built:
 			size_t logSize;
 			size_t logSize;
 			status = clGetProgramBuildInfo(clState->program, devices[gpu], CL_PROGRAM_BUILD_LOG, 0, NULL, &logSize);
 			status = clGetProgramBuildInfo(clState->program, devices[gpu], CL_PROGRAM_BUILD_LOG, 0, NULL, &logSize);
 
 
-			char *log = malloc(logSize);
+			char *log = malloc(logSize ?: 1);
 			status = clGetProgramBuildInfo(clState->program, devices[gpu], CL_PROGRAM_BUILD_LOG, logSize, log, NULL);
 			status = clGetProgramBuildInfo(clState->program, devices[gpu], CL_PROGRAM_BUILD_LOG, logSize, log, NULL);
-			applog(LOG_ERR, "%s", log);
+			if (logSize > 0 && log[0])
+				applog(LOG_ERR, "%s", log);
 			free(log);
 			free(log);
 			return NULL;
 			return NULL;
 		}
 		}