[pocl] 02/05: cherry-pick upstream fix for malloc size in test_clBuildProgram.c

Andreas Beckmann anbe at moszumanska.debian.org
Thu Dec 14 01:54:04 UTC 2017


This is an automated email from the git hooks/post-receive script.

anbe pushed a commit to annotated tag debian/0.14-2
in repository pocl.

commit 3b3a674d72ee0b3fc6db1cfbecf21262e4eeafa0
Author: Andreas Beckmann <anbe at debian.org>
Date:   Wed Dec 13 23:51:59 2017 +0100

    cherry-pick upstream fix for malloc size in test_clBuildProgram.c
---
 debian/changelog                                   |   7 ++
 ...size-in-tests-runtime-test_clBuildProgram.patch | 106 +++++++++++++++++++++
 debian/patches/series                              |   1 +
 3 files changed, 114 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index b0fdfa1..3fce8c1 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+pocl (0.14-2) UNRELEASED; urgency=medium
+
+  * Cherry-pick upstream fix for malloc size in test_clBuildProgram.c, fixing
+    that test failing frequently on i386.
+
+ -- Andreas Beckmann <anbe at debian.org>  Wed, 13 Dec 2017 23:48:25 +0100
+
 pocl (0.14-1) experimental; urgency=medium
 
   * New upstream release.
diff --git a/debian/patches/0001-Fix-malloc-size-in-tests-runtime-test_clBuildProgram.patch b/debian/patches/0001-Fix-malloc-size-in-tests-runtime-test_clBuildProgram.patch
new file mode 100644
index 0000000..dd0e905
--- /dev/null
+++ b/debian/patches/0001-Fix-malloc-size-in-tests-runtime-test_clBuildProgram.patch
@@ -0,0 +1,106 @@
+From 62b74d6fb7e356e07515ee84d0b4d54442148405 Mon Sep 17 00:00:00 2001
+From: Michal Babej <michal.babej at tut.fi>
+Date: Mon, 4 Sep 2017 19:31:33 +0200
+Subject: [PATCH] Fix malloc size in tests/runtime/test_clBuildProgram.c
+
+---
+ tests/runtime/test_clBuildProgram.c | 69 +++++++++++++++++++++----------------
+ 1 file changed, 40 insertions(+), 29 deletions(-)
+
+diff --git a/tests/runtime/test_clBuildProgram.c b/tests/runtime/test_clBuildProgram.c
+index 4eb544c0..7b4a1ba6 100644
+--- a/tests/runtime/test_clBuildProgram.c
++++ b/tests/runtime/test_clBuildProgram.c
+@@ -141,12 +141,17 @@ main(void){
+               size_t log_size = 0;
+               CHECK_CL_ERROR(clGetProgramBuildInfo(program, devices[i], CL_PROGRAM_BUILD_LOG,
+                       0, NULL, &log_size));
+-              char *log = malloc(log_size);
+-              CHECK_CL_ERROR(clGetProgramBuildInfo(program, devices[i], CL_PROGRAM_BUILD_LOG,
+-                      log_size, log, NULL));
+-              log[log_size] = '\0';
+-              fprintf(stderr, "preprocess failure log[%u]: %s\n", i, log);
+-              free(log);
++              if (log_size)
++                {
++                  char *log = malloc (log_size + 1);
++                  fprintf (stderr, "log: %p\n", log);
++                  CHECK_CL_ERROR (clGetProgramBuildInfo (program, devices[i],
++                                                         CL_PROGRAM_BUILD_LOG,
++                                                         log_size, log, NULL));
++                  log[log_size] = '\0';
++                  fprintf (stderr, "preprocess failure log[%u]: %s\n", i, log);
++                  free (log);
++                }
+       }
+       /*Lets not release the program as we need it in the next test case*/
+       /*CHECK_CL_ERROR(clReleaseProgram(program));*/
+@@ -159,16 +164,19 @@ main(void){
+ 
+       for (i = 0; i < num_devices; ++i) {
+           size_t log_size = 0;
+-          err = clGetProgramBuildInfo(program, devices[i], CL_PROGRAM_BUILD_LOG,
+-              0, NULL, &log_size);
+-          CHECK_OPENCL_ERROR_IN("get build log size");
+-          char *log = malloc(log_size);
+-          err = clGetProgramBuildInfo(program, devices[i], CL_PROGRAM_BUILD_LOG,
+-              log_size, log, NULL);
+-          CHECK_OPENCL_ERROR_IN("get build log");
+-          log[log_size] = '\0';
+-          fprintf(stderr, "preprocess failure log[%u]: %s\n", i, log);
+-          free(log);
++          CHECK_CL_ERROR (clGetProgramBuildInfo (
++              program, devices[i], CL_PROGRAM_BUILD_LOG, 0, NULL, &log_size));
++          if (log_size)
++            {
++              char *log = malloc (log_size + 1);
++              err = clGetProgramBuildInfo (program, devices[i],
++                                           CL_PROGRAM_BUILD_LOG, log_size, log,
++                                           NULL);
++              CHECK_OPENCL_ERROR_IN ("get build log");
++              log[log_size] = '\0';
++              fprintf (stderr, "preprocess failure log[%u]: %s\n", i, log);
++              free (log);
++            }
+       }
+ 
+       CHECK_CL_ERROR(clReleaseProgram(program));
+@@ -264,19 +272,22 @@ main(void){
+ 
+       for (i = 0; i < num_devices; ++i) {
+           size_t log_size = 0;
+-          err = clGetProgramBuildInfo(program, devices[i], CL_PROGRAM_BUILD_LOG,
+-                                      0, NULL, &log_size);
+-          CHECK_OPENCL_ERROR_IN("get build log size");
+-          char *log = malloc(log_size);
+-          err = clGetProgramBuildInfo(program, devices[i], CL_PROGRAM_BUILD_LOG,
+-                                      log_size, log, NULL);
+-          CHECK_OPENCL_ERROR_IN("get build log");
+-          log[log_size] = '\0';
+-          /*As this build option deprecated after OCL1.0 we should see a warning here*/
+-          fprintf(stderr, "Deprecated -cl-strict-aliasing log[%u]: %s\n", i, log);
+-
+-          free(log);
+-
++          CHECK_CL_ERROR (clGetProgramBuildInfo (
++              program, devices[i], CL_PROGRAM_BUILD_LOG, 0, NULL, &log_size));
++          if (log_size)
++            {
++              char *log = malloc (log_size + 1);
++              err = clGetProgramBuildInfo (program, devices[i],
++                                           CL_PROGRAM_BUILD_LOG,
++                                           log_size, log, NULL);
++              CHECK_OPENCL_ERROR_IN ("get build log");
++              log[log_size] = '\0';
++              /*As this build option deprecated after OCL1.0 we should see a
++               * warning here*/
++              fprintf (stderr, "Deprecated -cl-strict-aliasing log[%u]: %s\n",
++                       i, log);
++              free (log);
++            }
+           cl_program_binary_type bin_type = 0;
+           err = clGetProgramBuildInfo(program, devices[i],
+                                       CL_PROGRAM_BINARY_TYPE,
+-- 
+2.15.1
+
diff --git a/debian/patches/series b/debian/patches/series
index c7c7dfb..3e770fb 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,4 @@
+0001-Fix-malloc-size-in-tests-runtime-test_clBuildProgram.patch
 os-compat.patch
 typos.patch
 glibc-2.23.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/collab-maint/pocl.git



More information about the Pkg-opencl-commits mailing list