ddemidov / vexcl

VexCL is a C++ vector expression template library for OpenCL/CUDA/OpenMP
http://vexcl.readthedocs.org
MIT License
701 stars 81 forks source link

‘std::map’ is defined in header ‘<map>’; did you forget to ‘#include <map>’? #290

Closed Alessandro-Barbieri closed 2 years ago

Alessandro-Barbieri commented 3 years ago

Gentoo's CI build failed with

>>> Compiling source in /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2 ...
 * Source directory (CMAKE_USE_DIR): "/var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2"
 * Build directory  (BUILD_DIR):     "/var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2_build"
ninja -v -j2 -l0
[1/77] /usr/bin/x86_64-pc-linux-gnu-g++ -DBOOST_ALL_NO_LIB -DBOOST_ATOMIC_DYN_LINK -DBOOST_FILESYSTEM_DYN_LINK -DBOOST_SYSTEM_DYN_LINK -DBOOST_TEST_DYN_LINK -DBOOST_THREAD_DYN_LINK -DBOOST_UNIT_TEST_FRAMEWORK_DYN_LINK -DVEXCL_BACKEND_OPENCL -I/var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2  -O2 -pipe -march=x86-64 -frecord-gcc-switches -fno-diagnostics-color -Wall -Wno-missing-braces -Wno-deprecated-declarations -Wno-ignored-attributes -Wno-unused-local-typedefs -Wno-variadic-macros -Wno-catch-value -MD -MT tests/CMakeFiles/context.dir/context.cpp.o -MF tests/CMakeFiles/context.dir/context.cpp.o.d -o tests/CMakeFiles/context.dir/context.cpp.o -c /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/tests/context.cpp
In file included from /usr/include/CL/cl.h:20,
                 from /usr/include/CL/opencl.h:24,
                 from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/CL/cl.hpp:170,
                 from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/vexcl/backend/opencl.hpp:39,
                 from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/vexcl/backend.hpp:85,
                 from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/vexcl/devlist.hpp:39,
                 from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/tests/context.cpp:3:
/usr/include/CL/cl_version.h:22:104: note: ‘#pragma message: cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 300 (OpenCL 3.0)’
   22 | #pragma message("cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 300 (OpenCL 3.0)")
      |                                                                                                        ^
[2/77] : && /usr/bin/x86_64-pc-linux-gnu-g++ -O2 -pipe -march=x86-64 -frecord-gcc-switches -fno-diagnostics-color -Wl,-O1 -Wl,--as-needed -Wl,--defsym=__gentoo_check_ldflags__=0 tests/CMakeFiles/context.dir/context.cpp.o -o tests/context  /usr/lib64/libboost_unit_test_framework.so.1.77.0  /usr/lib64/libboost_filesystem.so.1.77.0  /usr/lib64/libboost_atomic.so.1.77.0  /usr/lib64/libboost_system.so.1.77.0  /usr/lib64/libboost_thread.so.1.77.0  -lpthread  /usr/lib64/libOpenCL.so && :
[3/77] /usr/bin/x86_64-pc-linux-gnu-g++ -DBOOST_ALL_NO_LIB -DBOOST_ATOMIC_DYN_LINK -DBOOST_FILESYSTEM_DYN_LINK -DBOOST_SYSTEM_DYN_LINK -DBOOST_TEST_DYN_LINK -DBOOST_THREAD_DYN_LINK -DBOOST_UNIT_TEST_FRAMEWORK_DYN_LINK -DVEXCL_BACKEND_OPENCL -I/var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2  -O2 -pipe -march=x86-64 -frecord-gcc-switches -fno-diagnostics-color -Wall -Wno-missing-braces -Wno-deprecated-declarations -Wno-ignored-attributes -Wno-unused-local-typedefs -Wno-variadic-macros -Wno-catch-value -MD -MT tests/CMakeFiles/multiple_objects.dir/dummy1.cpp.o -MF tests/CMakeFiles/multiple_objects.dir/dummy1.cpp.o.d -o tests/CMakeFiles/multiple_objects.dir/dummy1.cpp.o -c /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/tests/dummy1.cpp
In file included from /usr/include/CL/cl.h:20,
                 from /usr/include/CL/opencl.h:24,
                 from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/CL/cl.hpp:170,
                 from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/vexcl/backend/opencl.hpp:39,
                 from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/vexcl/backend.hpp:85,
                 from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/vexcl/vexcl.hpp:34,
                 from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/tests/dummy1.cpp:3:
/usr/include/CL/cl_version.h:22:104: note: ‘#pragma message: cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 300 (OpenCL 3.0)’
   22 | #pragma message("cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 300 (OpenCL 3.0)")
      |                                                                                                        ^
[4/77] /usr/bin/x86_64-pc-linux-gnu-g++ -DBOOST_ALL_NO_LIB -DBOOST_ATOMIC_DYN_LINK -DBOOST_FILESYSTEM_DYN_LINK -DBOOST_SYSTEM_DYN_LINK -DBOOST_TEST_DYN_LINK -DBOOST_THREAD_DYN_LINK -DBOOST_UNIT_TEST_FRAMEWORK_DYN_LINK -DVEXCL_BACKEND_OPENCL -I/var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2  -O2 -pipe -march=x86-64 -frecord-gcc-switches -fno-diagnostics-color -Wall -Wno-missing-braces -Wno-deprecated-declarations -Wno-ignored-attributes -Wno-unused-local-typedefs -Wno-variadic-macros -Wno-catch-value -MD -MT tests/CMakeFiles/multiple_objects.dir/dummy2.cpp.o -MF tests/CMakeFiles/multiple_objects.dir/dummy2.cpp.o.d -o tests/CMakeFiles/multiple_objects.dir/dummy2.cpp.o -c /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/tests/dummy2.cpp
FAILED: tests/CMakeFiles/multiple_objects.dir/dummy2.cpp.o 
/usr/bin/x86_64-pc-linux-gnu-g++ -DBOOST_ALL_NO_LIB -DBOOST_ATOMIC_DYN_LINK -DBOOST_FILESYSTEM_DYN_LINK -DBOOST_SYSTEM_DYN_LINK -DBOOST_TEST_DYN_LINK -DBOOST_THREAD_DYN_LINK -DBOOST_UNIT_TEST_FRAMEWORK_DYN_LINK -DVEXCL_BACKEND_OPENCL -I/var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2  -O2 -pipe -march=x86-64 -frecord-gcc-switches -fno-diagnostics-color -Wall -Wno-missing-braces -Wno-deprecated-declarations -Wno-ignored-attributes -Wno-unused-local-typedefs -Wno-variadic-macros -Wno-catch-value -MD -MT tests/CMakeFiles/multiple_objects.dir/dummy2.cpp.o -MF tests/CMakeFiles/multiple_objects.dir/dummy2.cpp.o.d -o tests/CMakeFiles/multiple_objects.dir/dummy2.cpp.o -c /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/tests/dummy2.cpp
In file included from /usr/include/CL/cl.h:20,
                 from /usr/include/CL/opencl.h:24,
                 from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/CL/cl.hpp:170,
                 from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/vexcl/backend/opencl.hpp:39,
                 from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/vexcl/backend.hpp:85,
                 from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/vexcl/vexcl.hpp:34,
                 from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/tests/dummy2.cpp:2:
/usr/include/CL/cl_version.h:22:104: note: ‘#pragma message: cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 300 (OpenCL 3.0)’
   22 | #pragma message("cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 300 (OpenCL 3.0)")
      |                                                                                                        ^
In file included from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/vexcl/backend/opencl.hpp:43,
                 from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/vexcl/backend.hpp:85,
                 from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/vexcl/vexcl.hpp:34,
                 from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/tests/dummy2.cpp:2:
/var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/vexcl/backend/opencl/filter.hpp:203:25: error: ‘map’ in namespace ‘std’ does not name a template type
  203 |             static std::map<cl_device_id, std::string> get_uids() {
      |                         ^~~
In file included from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/vexcl/backend/opencl.hpp:43,
                 from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/vexcl/backend.hpp:85,
                 from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/vexcl/vexcl.hpp:34,
                 from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/tests/dummy2.cpp:2:
/var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/vexcl/backend/opencl/filter.hpp:44:1: note: ‘std::map’ is defined in header ‘<map>’; did you forget to ‘#include <map>’?
   43 | #include <boost/filesystem.hpp>
  +++ |+#include <map>
   44 | #include <boost/config.hpp>
In file included from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/vexcl/backend/opencl.hpp:43,
                 from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/vexcl/backend.hpp:85,
                 from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/vexcl/vexcl.hpp:34,
                 from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/tests/dummy2.cpp:2:
/var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/vexcl/backend/opencl/filter.hpp: In member function ‘bool vex::Filter::ExclusiveFilter::operator()(const cl::Device&) const’:
/var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/vexcl/backend/opencl/filter.hpp:283:29: error: ‘map’ in namespace ‘std’ does not name a template type
  283 |                 static std::map<cl_device_id, std::string> dev_uids = get_uids();
      |                             ^~~
/var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/vexcl/backend/opencl/filter.hpp:283:24: note: ‘std::map’ is defined in header ‘<map>’; did you forget to ‘#include <map>’?
  283 |                 static std::map<cl_device_id, std::string> dev_uids = get_uids();
      |                        ^~~
/var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/vexcl/backend/opencl/filter.hpp:286:56: error: ‘dev_uids’ was not declared in this scope
  286 |                 std::unique_ptr<locker> lck(new locker(dev_uids[d()]));
      |                                                        ^~~~~~~~
[5/77] /usr/bin/x86_64-pc-linux-gnu-g++ -DBOOST_ALL_NO_LIB -DBOOST_ATOMIC_DYN_LINK -DBOOST_FILESYSTEM_DYN_LINK -DBOOST_SYSTEM_DYN_LINK -DBOOST_TEST_DYN_LINK -DBOOST_THREAD_DYN_LINK -DBOOST_UNIT_TEST_FRAMEWORK_DYN_LINK -DVEXCL_BACKEND_OPENCL -I/var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2  -O2 -pipe -march=x86-64 -frecord-gcc-switches -fno-diagnostics-color -Wall -Wno-missing-braces -Wno-deprecated-declarations -Wno-ignored-attributes -Wno-unused-local-typedefs -Wno-variadic-macros -Wno-catch-value -MD -MT tests/CMakeFiles/reinterpret.dir/reinterpret.cpp.o -MF tests/CMakeFiles/reinterpret.dir/reinterpret.cpp.o.d -o tests/CMakeFiles/reinterpret.dir/reinterpret.cpp.o -c /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/tests/reinterpret.cpp
In file included from /usr/include/CL/cl.h:20,
                 from /usr/include/CL/opencl.h:24,
                 from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/CL/cl.hpp:170,
                 from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/vexcl/backend/opencl.hpp:39,
                 from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/vexcl/backend.hpp:85,
                 from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/vexcl/vector.hpp:49,
                 from /var/tmp/portage/dev-cpp/vexcl-1.4.2-r1/work/vexcl-1.4.2/tests/reinterpret.cpp:3:
/usr/include/CL/cl_version.h:22:104: note: ‘#pragma message: cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 300 (OpenCL 3.0)’
   22 | #pragma message("cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 300 (OpenCL 3.0)")
      |                                                                                                        ^
ninja: build stopped: subcommand failed.

https://bugs.gentoo.org/815889 full log

ddemidov commented 2 years ago

Thanks, should be fixed in 555a838!