Use only the one jump in ocl.c to bypass binary saves for osx opencl.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
diff --git a/ocl.c b/ocl.c
index 7a7e1da..8a15912 100644
--- a/ocl.c
+++ b/ocl.c
@@ -502,8 +502,8 @@ _clState *initCl(unsigned int gpu, char *name, size_t nameSize)
#endif
FILE *binaryfile;
- size_t *binary_sizes = NULL;
- char **binaries = NULL;
+ size_t *binary_sizes;
+ char **binaries;
int pl;
char *source = file_contents(filename, &pl);
size_t sourceSize[] = {(size_t)pl};
@@ -514,11 +514,6 @@ _clState *initCl(unsigned int gpu, char *name, size_t nameSize)
if (!source)
return NULL;
- /* OSX OpenCL breaks reading off binaries with >1 GPU so always build
- * from source. */
-#ifdef __APPLE__
- goto build;
-#endif
binary_sizes = calloc(sizeof(size_t) * MAX_GPUDEVICES * 4, 1);
if (unlikely(!binary_sizes)) {
applog(LOG_ERR, "Unable to calloc binary_sizes");
@@ -667,7 +662,10 @@ build:
}
prog_built = true;
+
#ifdef __APPLE__
+ /* OSX OpenCL breaks reading off binaries with >1 GPU so always build
+ * from source. */
goto built;
#endif