OpenCL support sometimes detected, sometimes not
Gary Benson
gbenson@redhat.com
Wed Jun 24 10:41:38 GMT 2020
Hi all,
I had this weird issue yesterday, a build I did in the morning
skipped the OpenCL tests, with this in gdb.log:
...
skip_opencl_tests: OpenCL support not detected
UNSUPPORTED: gdb.opencl/callfuncs.exp: OpenCL support not detected
testcase ... /gdb.opencl/callfuncs.exp completed in 1 seconds
But! A build I did in the afternoon got past that:
...
skip_opencl_tests: OpenCL support detected
Downloading on target to callfuncs.cl:...
...
UNTESTED: gdb.opencl/callfuncs.exp: failed to compile
testcase ... /gdb.opencl/callfuncs.exp completed in 2 seconds
But, now, if I re-run that test, in the directory OpenCL support was
detected, it fails with the first failure above.
The two test runs were slightly different versions of gdb (I did a
"git pull" before each), and some of Andrew Burgess's commits
mention opencl... but, if something changed there, why would it
revert to non-detection when I re-run the test?
I'll paste fuller logs for one of the opencl testcases below.
Please help!
Cheers,
Gary
--
2020-06-24, ~9am UTC build:
Running /gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/gdb.opencl/callfuncs.exp ...
Downloading on target to opencl_kernel.cl: /gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/opencl_kernel.cl
Executing on host: clang /gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c /gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/opencl_hostapp.c -fdiagnostics-color=never -I/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/ -DCL_SOURCE=opencl_kernel.cl -w -g -g -lOpenCL -lm -o /gdbtest/build/gdb/testsuite/outputs/gdb.opencl/callfuncs/opencltest1321748.x (timeout = 300)
spawn -ignore SIGHUP clang /gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c /gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/opencl_hostapp.c -fdiagnostics-color=never -I/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/ -DCL_SOURCE=opencl_kernel.cl -w -g -g -lOpenCL -lm -o /gdbtest/build/gdb/testsuite/outputs/gdb.opencl/callfuncs/opencltest1321748.x
spawn /gdbtest/build/gdb/testsuite/../../gdb/gdb -nw -nx -data-directory /gdbtest/build/gdb/testsuite/../data-directory
GNU gdb (GDB) 10.0.50.20200623-git
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
(gdb) set height 0
(gdb) set width 0
(gdb) dir
Reinitialize source path to empty? (y or n) y
Source directories searched: $cdir:$cwd
(gdb) dir /gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/gdb.opencl
Source directories searched: /gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/gdb.opencl:$cdir:$cwd
(gdb) kill
The program is not being run.
(gdb) file /gdbtest/build/gdb/testsuite/outputs/gdb.opencl/callfuncs/opencltest1321748.x
Reading symbols from /gdbtest/build/gdb/testsuite/outputs/gdb.opencl/callfuncs/opencltest1321748.x...
(gdb) run
Starting program: /gdbtest/build/gdb/testsuite/outputs/gdb.opencl/callfuncs/opencltest1321748.x
warning: Loadable section ".note.gnu.property" outside of ELF segments
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
X Error of failed request: BadRequest (invalid request code or no such operation)
Major opcode of failed request: 155 (DRI2)
Minor opcode of failed request: 1 (DRI2Connect)
Serial number of failed request: 11
Current serial number in output stream: 11
[Inferior 1 (process 1399127) exited with code 01]
(gdb)
skip_opencl_tests: OpenCL support not detected
UNSUPPORTED: gdb.opencl/callfuncs.exp: OpenCL support not detected
testcase /gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/gdb.opencl/callfuncs.exp completed in 1 seconds
--
2020-06-24, ~4pm UTC build:
Running /gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/gdb.opencl/callfuncs.exp ...
Downloading on target to opencl_kernel.cl: /gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/opencl_kernel.cl
Executing on host: clang /gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c /gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/opencl_hostapp.c -fdiagnostics-color=never -I/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/ -DCL_SOURCE=opencl_kernel.cl -w -g -g -lOpenCL -lm -o /gdbtest/build/gdb/testsuite/outputs/gdb.opencl/callfuncs/opencltest2819799.x (timeout = 300)
spawn -ignore SIGHUP clang /gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c /gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/opencl_hostapp.c -fdiagnostics-color=never -I/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/ -DCL_SOURCE=opencl_kernel.cl -w -g -g -lOpenCL -lm -o /gdbtest/build/gdb/testsuite/outputs/gdb.opencl/callfuncs/opencltest2819799.x
spawn /gdbtest/build/gdb/testsuite/../../gdb/gdb -nw -nx -data-directory /gdbtest/build/gdb/testsuite/../data-directory
GNU gdb (GDB) 10.0.50.20200623-git
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
(gdb) set height 0
(gdb) set width 0
(gdb) dir
Reinitialize source path to empty? (y or n) y
Source directories searched: $cdir:$cwd
(gdb) dir /gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/gdb.opencl
Source directories searched: /gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/gdb.opencl:$cdir:$cwd
(gdb) kill
The program is not being run.
(gdb) file /gdbtest/build/gdb/testsuite/outputs/gdb.opencl/callfuncs/opencltest2819799.x
Reading symbols from /gdbtest/build/gdb/testsuite/outputs/gdb.opencl/callfuncs/opencltest2819799.x...
(gdb) run
Starting program: /gdbtest/build/gdb/testsuite/outputs/gdb.opencl/callfuncs/opencltest2819799.x
warning: Loadable section ".note.gnu.property" outside of ELF segments
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
[New Thread 0x7fffea283700 (LWP 2897585)]
[New Thread 0x7fffe9a82700 (LWP 2897586)]
[New Thread 0x7fffe9281700 (LWP 2897587)]
[New Thread 0x7fffe8a80700 (LWP 2897588)]
[Thread 0x7fffe8a80700 (LWP 2897588) exited]
[Thread 0x7fffe9281700 (LWP 2897587) exited]
[Thread 0x7fffe9a82700 (LWP 2897586) exited]
[Thread 0x7fffea283700 (LWP 2897585) exited]
[New Thread 0x7fffe8a80700 (LWP 2897589)]
[Thread 0x7fffe8a80700 (LWP 2897589) exited]
[New Thread 0x7fffe8a80700 (LWP 2897590)]
[New Thread 0x7fffe9281700 (LWP 2897591)]
[New Thread 0x7fffe9a82700 (LWP 2897592)]
[New Thread 0x7fffea283700 (LWP 2897593)]
[New Thread 0x7fffd8ffd700 (LWP 2897594)]
[Thread 0x7fffd8ffd700 (LWP 2897594) exited]
[Thread 0x7fffe9a82700 (LWP 2897592) exited]
[Thread 0x7fffe9281700 (LWP 2897591) exited]
[Thread 0x7fffe8a80700 (LWP 2897590) exited]
[Thread 0x7ffff7c64b80 (LWP 2897581) exited]
[Inferior 1 (process 2897581) exited normally]
(gdb)
skip_opencl_tests: OpenCL support detected
Downloading on target to callfuncs.cl: /gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/gdb.opencl/callfuncs.cl
Executing on host: clang /gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c /gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/opencl_hostapp.c -fdiagnostics-color=never -I/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/ -DCL_SOURCE=callfuncs.cl -g -lOpenCL -lm -o /gdbtest/build/gdb/testsuite/outputs/gdb.opencl/callfuncs/callfuncs (timeout = 300)
spawn -ignore SIGHUP clang /gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c /gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/opencl_hostapp.c -fdiagnostics-color=never -I/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/ -DCL_SOURCE=callfuncs.cl -g -lOpenCL -lm -o /gdbtest/build/gdb/testsuite/outputs/gdb.opencl/callfuncs/callfuncs
/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c:256:65: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
printf (" CL_DEVICE_MAX_WORK_GROUP_SIZE: %d\n", sizet);
~~ ^~~~~
%zu
/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c:260:75: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
printf (" CL_DEVICE_MAX_WORK_ITEM_SIZES: %d / %d / %d\n", workitem_size[0], workitem_size[1], workitem_size[2]);
~~ ^~~~~~~~~~~~~~~~
%zu
/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c:260:93: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
printf (" CL_DEVICE_MAX_WORK_ITEM_SIZES: %d / %d / %d\n", workitem_size[0], workitem_size[1], workitem_size[2]);
~~ ^~~~~~~~~~~~~~~~
%zu
/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c:260:111: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
printf (" CL_DEVICE_MAX_WORK_ITEM_SIZES: %d / %d / %d\n", workitem_size[0], workitem_size[1], workitem_size[2]);
~~ ^~~~~~~~~~~~~~~~
%zu
/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c:266:67: warning: format specifies type 'unsigned long long' but the argument has type 'cl_ulong' (aka 'unsigned long') [-Wformat]
printf (" CL_DEVICE_MAX_MEM_ALLOC_SIZE: %llu\n", clulong);
~~~~ ^~~~~~~
%lu
/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c:272:65: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
printf (" CL_DEVICE_MAX_PARAMETER_SIZE: %d\n", sizet);
~~ ^~~~~
%zu
/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c:274:67: warning: format specifies type 'unsigned long long' but the argument has type 'cl_ulong' (aka 'unsigned long') [-Wformat]
printf (" CL_DEVICE_GLOBAL_MEM_SIZE: %llu\n", clulong);
~~~~ ^~~~~~~
%lu
/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c:285:67: warning: format specifies type 'unsigned long long' but the argument has type 'cl_ulong' (aka 'unsigned long') [-Wformat]
printf (" CL_DEVICE_GLOBAL_MEM_CACHE_SIZE: %llu\n", clulong);
~~~~ ^~~~~~~
%lu
/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c:335:65: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
printf (" CL_DEVICE_PROFILING_TIMER_RESOLUTION: %d\n", sizet);
~~ ^~~~~
%zu
/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c:363:69: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
printf (" CL_DEVICE_IMAGE2D_MAX_WIDTH: %d\n", sizet);
~~ ^~~~~
%zu
/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c:365:69: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
printf (" CL_DEVICE_IMAGE2D_MAX_HEIGHT: %d\n", sizet);
~~ ^~~~~
%zu
/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c:367:69: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
printf (" CL_DEVICE_IMAGE3D_MAX_WIDTH: %d\n", sizet);
~~ ^~~~~
%zu
/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c:369:69: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
printf (" CL_DEVICE_IMAGE3D_MAX_HEIGHT: %d\n", sizet);
~~ ^~~~~
%zu
/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c:371:69: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
printf (" CL_DEVICE_IMAGE3D_MAX_DEPTH: %d\n", sizet);
~~ ^~~~~
%zu
14 warnings generated.
/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/opencl_hostapp.c:81:11: warning: 'clCreateCommandQueue' is deprecated [-Wdeprecated-declarations]
queue = clCreateCommandQueue (context, device, 0, &err);
^
/usr/include/CL/cl.h:1780:66: note: 'clCreateCommandQueue' has been explicitly marked deprecated here
cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED;
^
/usr/include/CL/cl_platform.h:91:70: note: expanded from macro 'CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED'
#define CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED __attribute__((deprecated))
^
1 warning generated.
gdb compile failed, /gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c:256:65: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
printf (" CL_DEVICE_MAX_WORK_GROUP_SIZE: %d\n", sizet);
~~ ^~~~~
%zu
/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c:260:75: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
printf (" CL_DEVICE_MAX_WORK_ITEM_SIZES: %d / %d / %d\n", workitem_size[0], workitem_size[1], workitem_size[2]);
~~ ^~~~~~~~~~~~~~~~
%zu
/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c:260:93: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
printf (" CL_DEVICE_MAX_WORK_ITEM_SIZES: %d / %d / %d\n", workitem_size[0], workitem_size[1], workitem_size[2]);
~~ ^~~~~~~~~~~~~~~~
%zu
/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c:260:111: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
printf (" CL_DEVICE_MAX_WORK_ITEM_SIZES: %d / %d / %d\n", workitem_size[0], workitem_size[1], workitem_size[2]);
~~ ^~~~~~~~~~~~~~~~
%zu
/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c:266:67: warning: format specifies type 'unsigned long long' but the argument has type 'cl_ulong' (aka 'unsigned long') [-Wformat]
printf (" CL_DEVICE_MAX_MEM_ALLOC_SIZE: %llu\n", clulong);
~~~~ ^~~~~~~
%lu
/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c:272:65: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
printf (" CL_DEVICE_MAX_PARAMETER_SIZE: %d\n", sizet);
~~ ^~~~~
%zu
/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c:274:67: warning: format specifies type 'unsigned long long' but the argument has type 'cl_ulong' (aka 'unsigned long') [-Wformat]
printf (" CL_DEVICE_GLOBAL_MEM_SIZE: %llu\n", clulong);
~~~~ ^~~~~~~
%lu
/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c:285:67: warning: format specifies type 'unsigned long long' but the argument has type 'cl_ulong' (aka 'unsigned long') [-Wformat]
printf (" CL_DEVICE_GLOBAL_MEM_CACHE_SIZE: %llu\n", clulong);
~~~~ ^~~~~~~
%lu
/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c:335:65: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
printf (" CL_DEVICE_PROFILING_TIMER_RESOLUTION: %d\n", sizet);
~~ ^~~~~
%zu
/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c:363:69: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
printf (" CL_DEVICE_IMAGE2D_MAX_WIDTH: %d\n", sizet);
~~ ^~~~~
%zu
/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c:365:69: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
printf (" CL_DEVICE_IMAGE2D_MAX_HEIGHT: %d\n", sizet);
~~ ^~~~~
%zu
/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c:367:69: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
printf (" CL_DEVICE_IMAGE3D_MAX_WIDTH: %d\n", sizet);
~~ ^~~~~
%zu
/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c:369:69: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
printf (" CL_DEVICE_IMAGE3D_MAX_HEIGHT: %d\n", sizet);
~~ ^~~~~
%zu
/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/cl_util.c:371:69: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
printf (" CL_DEVICE_IMAGE3D_MAX_DEPTH: %d\n", sizet);
~~ ^~~~~
%zu
14 warnings generated.
/gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/lib/opencl_hostapp.c:81:11: warning: 'clCreateCommandQueue' is deprecated [-Wdeprecated-declarations]
queue = clCreateCommandQueue (context, device, 0, &err);
^
/usr/include/CL/cl.h:1780:66: note: 'clCreateCommandQueue' has been explicitly marked deprecated here
cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED;
^
/usr/include/CL/cl_platform.h:91:70: note: expanded from macro 'CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED'
#define CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED __attribute__((deprecated))
^
1 warning generated.
UNTESTED: gdb.opencl/callfuncs.exp: failed to compile
testcase /gdbtest/build/gdb/testsuite/../../../src/gdb/testsuite/gdb.opencl/callfuncs.exp completed in 2 seconds
More information about the Gdb
mailing list