Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Failure to build eigen-with-viennacl using MinGW #72

Closed
skn123 opened this issue May 6, 2014 · 9 comments
Closed

Failure to build eigen-with-viennacl using MinGW #72

skn123 opened this issue May 6, 2014 · 9 comments

Comments

@skn123
Copy link

skn123 commented May 6, 2014

12:17:25 **** Build of project ViennaCL-Release@ViennaCL ****
"C:\TDM-GCC-64\bin\mingw32-make.exe" -C E:/Binaries_MinGW/ViennaCL eigen-with-viennacl
mingw32-make: Entering directory 'E:/Binaries_MinGW/ViennaCL'
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -HE:\Sources\viennacl-dev -BE:\Binaries_MinGW\ViennaCL --check-build-system CMakeFiles\Makefile.cmake 0
C:/TDM-GCC-64/bin/mingw32-make -f CMakeFiles\Makefile2 eigen-with-viennacl
mingw32-make[1]: Entering directory 'E:/Binaries_MinGW/ViennaCL'
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -HE:\Sources\viennacl-dev -BE:\Binaries_MinGW\ViennaCL --check-build-system CMakeFiles\Makefile.cmake 0
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_start E:\Binaries_MinGW\ViennaCL\CMakeFiles 1
C:/TDM-GCC-64/bin/mingw32-make -f CMakeFiles\Makefile2 examples/tutorial/CMakeFiles/eigen-with-viennacl.dir/all
mingw32-make[2]: Entering directory 'E:/Binaries_MinGW/ViennaCL'
C:/TDM-GCC-64/bin/mingw32-make -f examples\tutorial\CMakeFiles\eigen-with-viennacl.dir\build.make examples/tutorial/CMakeFiles/eigen-with-viennacl.dir/depend
mingw32-make[3]: Entering directory 'E:/Binaries_MinGW/ViennaCL'
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_depends "MinGW Makefiles" E:\Sources\viennacl-dev E:\Sources\viennacl-dev\examples\tutorial E:\Binaries_MinGW\ViennaCL E:\Binaries_MinGW\ViennaCL\examples\tutorial E:\Binaries_MinGW\ViennaCL\examples\tutorial\CMakeFiles\eigen-with-viennacl.dir\DependInfo.cmake --color=
Scanning dependencies of target eigen-with-viennacl
mingw32-make[3]: Leaving directory 'E:/Binaries_MinGW/ViennaCL'
C:/TDM-GCC-64/bin/mingw32-make -f examples\tutorial\CMakeFiles\eigen-with-viennacl.dir\build.make examples/tutorial/CMakeFiles/eigen-with-viennacl.dir/build
mingw32-make[3]: Entering directory 'E:/Binaries_MinGW/ViennaCL'
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_report E:\Binaries_MinGW\ViennaCL\CMakeFiles 17
[100%] Building CXX object examples/tutorial/CMakeFiles/eigen-with-viennacl.dir/eigen-with-viennacl.cpp.obj
cd /d E:\Binaries_MinGW\ViennaCL\examples\tutorial && C:\TDM-GCC-64\bin\g++.exe -fopenmp -DVIENNACL_WITH_OPENMP -Wall -pedantic -O3 -DNDEBUG @CMakeFiles/eigen-with-viennacl.dir/includes_CXX.rsp -DVIENNACL_WITH_OPENCL -o CMakeFiles\eigen-with-viennacl.dir\eigen-with-viennacl.cpp.obj -c E:\Sources\viennacl-dev\examples\tutorial\eigen-with-viennacl.cpp

cc1plus.exe: out of memory allocating 363249 bytes
examples\tutorial\CMakeFiles\eigen-with-viennacl.dir\build.make:60: recipe for target 'examples/tutorial/CMakeFiles/eigen-with-viennacl.dir/eigen-with-viennacl.cpp.obj' failed
mingw32-make[3]: *** [examples/tutorial/CMakeFiles/eigen-with-viennacl.dir/eigen-with-viennacl.cpp.obj] Error 1
mingw32-make[3]: Leaving directory 'E:/Binaries_MinGW/ViennaCL'
CMakeFiles\Makefile2:1297: recipe for target 'examples/tutorial/CMakeFiles/eigen-with-viennacl.dir/all' failed
mingw32-make[2]: *** [examples/tutorial/CMakeFiles/eigen-with-viennacl.dir/all] Error 2
mingw32-make[1]: *** [examples/tutorial/CMakeFiles/eigen-with-viennacl.dir/rule] Error 2
mingw32-make: *** [eigen-with-viennacl] Error 2
mingw32-make[2]: Leaving directory 'E:/Binaries_MinGW/ViennaCL'
CMakeFiles\Makefile2:1309: recipe for target 'examples/tutorial/CMakeFiles/eigen-with-viennacl.dir/rule' failed
mingw32-make[1]: Leaving directory 'E:/Binaries_MinGW/ViennaCL'
Makefile:630: recipe for target 'eigen-with-viennacl' failed
mingw32-make: Leaving directory 'E:/Binaries_MinGW/ViennaCL'

12:17:30 Build Finished (took 4s.690ms)

@karlrupp
Copy link
Collaborator

karlrupp commented May 6, 2014

I see:
cc1plus.exe: out of memory allocating 363249 bytes
so there's not much we can do to address this.

Does the build work without the optimization option '-O3'?

@skn123
Copy link
Author

skn123 commented May 6, 2014

Also, the build of libviennacl without OpenMP enabled..
15:37:32 **** Build of project ViennaCL-Release@ViennaCL ****
"C:\TDM-GCC-64\bin\mingw32-make.exe" -C E:/Binaries_MinGW/ViennaCL viennacl
mingw32-make: Entering directory 'E:/Binaries_MinGW/ViennaCL'
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -HE:\Sources\viennacl-dev -BE:\Binaries_MinGW\ViennaCL --check-build-system CMakeFiles\Makefile.cmake 0
C:/TDM-GCC-64/bin/mingw32-make -f CMakeFiles\Makefile2 viennacl
mingw32-make[1]: Entering directory 'E:/Binaries_MinGW/ViennaCL'
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -HE:\Sources\viennacl-dev -BE:\Binaries_MinGW\ViennaCL --check-build-system CMakeFiles\Makefile.cmake 0
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_start E:\Binaries_MinGW\ViennaCL\CMakeFiles 9
C:/TDM-GCC-64/bin/mingw32-make -f CMakeFiles\Makefile2 libviennacl/CMakeFiles/viennacl.dir/all
mingw32-make[2]: Entering directory 'E:/Binaries_MinGW/ViennaCL'
C:/TDM-GCC-64/bin/mingw32-make -f libviennacl\CMakeFiles\viennacl.dir\build.make libviennacl/CMakeFiles/viennacl.dir/depend
mingw32-make[3]: Entering directory 'E:/Binaries_MinGW/ViennaCL'
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_depends "MinGW Makefiles" E:\Sources\viennacl-dev E:\Sources\viennacl-dev\libviennacl E:\Binaries_MinGW\ViennaCL E:\Binaries_MinGW\ViennaCL\libviennacl E:\Binaries_MinGW\ViennaCL\libviennacl\CMakeFiles\viennacl.dir\DependInfo.cmake --color=
mingw32-make[3]: Leaving directory 'E:/Binaries_MinGW/ViennaCL'
C:/TDM-GCC-64/bin/mingw32-make -f libviennacl\CMakeFiles\viennacl.dir\build.make libviennacl/CMakeFiles/viennacl.dir/build
mingw32-make[3]: Entering directory 'E:/Binaries_MinGW/ViennaCL'
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_report E:\Binaries_MinGW\ViennaCL\CMakeFiles 90
[ 11%] Building CXX object libviennacl/CMakeFiles/viennacl.dir/src/backend.cpp.obj
cd /d E:\Binaries_MinGW\ViennaCL\libviennacl && C:\TDM-GCC-64\bin\g++.exe -Dviennacl_EXPORTS -DVIENNACL_WITH_OPENCL -Wall -pedantic -O3 -DNDEBUG @CMakeFiles/viennacl.dir/includes_CXX.rsp -DVIENNACL_WITH_OPENCL -o CMakeFiles\viennacl.dir\src\backend.cpp.obj -c E:\Sources\viennacl-dev\libviennacl\src\backend.cpp
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_report E:\Binaries_MinGW\ViennaCL\CMakeFiles 91
[ 22%] Building CXX object libviennacl/CMakeFiles/viennacl.dir/src/blas1.cpp.obj
cd /d E:\Binaries_MinGW\ViennaCL\libviennacl && C:\TDM-GCC-64\bin\g++.exe -Dviennacl_EXPORTS -DVIENNACL_WITH_OPENCL -Wall -pedantic -O3 -DNDEBUG @CMakeFiles/viennacl.dir/includes_CXX.rsp -DVIENNACL_WITH_OPENCL -o CMakeFiles\viennacl.dir\src\blas1.cpp.obj -c E:\Sources\viennacl-dev\libviennacl\src\blas1.cpp
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_report E:\Binaries_MinGW\ViennaCL\CMakeFiles 92
[ 33%] Building CXX object libviennacl/CMakeFiles/viennacl.dir/src/blas1_host.cpp.obj
cd /d E:\Binaries_MinGW\ViennaCL\libviennacl && C:\TDM-GCC-64\bin\g++.exe -Dviennacl_EXPORTS -DVIENNACL_WITH_OPENCL -Wall -pedantic -O3 -DNDEBUG @CMakeFiles/viennacl.dir/includes_CXX.rsp -DVIENNACL_WITH_OPENCL -o CMakeFiles\viennacl.dir\src\blas1_host.cpp.obj -c E:\Sources\viennacl-dev\libviennacl\src\blas1_host.cpp
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_report E:\Binaries_MinGW\ViennaCL\CMakeFiles 93
[ 44%] Building CXX object libviennacl/CMakeFiles/viennacl.dir/src/blas1_opencl.cpp.obj
cd /d E:\Binaries_MinGW\ViennaCL\libviennacl && C:\TDM-GCC-64\bin\g++.exe -Dviennacl_EXPORTS -DVIENNACL_WITH_OPENCL -Wall -pedantic -O3 -DNDEBUG @CMakeFiles/viennacl.dir/includes_CXX.rsp -DVIENNACL_WITH_OPENCL -o CMakeFiles\viennacl.dir\src\blas1_opencl.cpp.obj -c E:\Sources\viennacl-dev\libviennacl\src\blas1_opencl.cpp
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_report E:\Binaries_MinGW\ViennaCL\CMakeFiles
[ 44%] Building CXX object libviennacl/CMakeFiles/viennacl.dir/src/blas2.cpp.obj
cd /d E:\Binaries_MinGW\ViennaCL\libviennacl && C:\TDM-GCC-64\bin\g++.exe -Dviennacl_EXPORTS -DVIENNACL_WITH_OPENCL -Wall -pedantic -O3 -DNDEBUG @CMakeFiles/viennacl.dir/includes_CXX.rsp -DVIENNACL_WITH_OPENCL -o CMakeFiles\viennacl.dir\src\blas2.cpp.obj -c E:\Sources\viennacl-dev\libviennacl\src\blas2.cpp
In file included from E:/Sources/viennacl-dev/viennacl/device_specific/autotuning/profiles.hpp:37:0,
from E:/Sources/viennacl-dev/viennacl/device_specific/code_generator.hpp:33,
from E:/Sources/viennacl-dev/viennacl/linalg/opencl/matrix_operations.hpp:39,
from E:/Sources/viennacl-dev/viennacl/linalg/matrix_operations.hpp:41,
from E:/Sources/viennacl-dev/viennacl/matrix.hpp:28,
from E:\Sources\viennacl-dev\libviennacl\src\blas2.cpp:30:
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp: In member function 'virtual void viennacl::device_specific::scalar_reduction::configure_range_enqueue_arguments(std::size_t, const statements_type&, viennacl::ocl::kernel&, unsigned int&) const':
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp:128:49: warning: 'vector_size' may be used uninitialized in this function [-Wmaybe-uninitialized]
k.arg(n_arg++, cl_uint(vector_size/simd_width_));
^
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp:107:27: note: 'vector_size' was declared here
std::size_t vector_size;
^
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_report E:\Binaries_MinGW\ViennaCL\CMakeFiles 94
[ 55%] Building CXX object libviennacl/CMakeFiles/viennacl.dir/src/blas2_host.cpp.obj
cd /d E:\Binaries_MinGW\ViennaCL\libviennacl && C:\TDM-GCC-64\bin\g++.exe -Dviennacl_EXPORTS -DVIENNACL_WITH_OPENCL -Wall -pedantic -O3 -DNDEBUG @CMakeFiles/viennacl.dir/includes_CXX.rsp -DVIENNACL_WITH_OPENCL -o CMakeFiles\viennacl.dir\src\blas2_host.cpp.obj -c E:\Sources\viennacl-dev\libviennacl\src\blas2_host.cpp
In file included from E:/Sources/viennacl-dev/viennacl/device_specific/autotuning/profiles.hpp:37:0,
from E:/Sources/viennacl-dev/viennacl/device_specific/code_generator.hpp:33,
from E:/Sources/viennacl-dev/viennacl/linalg/opencl/matrix_operations.hpp:39,
from E:/Sources/viennacl-dev/viennacl/linalg/matrix_operations.hpp:41,
from E:/Sources/viennacl-dev/viennacl/matrix.hpp:28,
from E:\Sources\viennacl-dev\libviennacl\src\blas2_host.cpp:29:
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp: In member function 'virtual void viennacl::device_specific::scalar_reduction::configure_range_enqueue_arguments(std::size_t, const statements_type&, viennacl::ocl::kernel&, unsigned int&) const':
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp:128:49: warning: 'vector_size' may be used uninitialized in this function [-Wmaybe-uninitialized]
k.arg(n_arg++, cl_uint(vector_size/simd_width_));
^
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp:107:27: note: 'vector_size' was declared here
std::size_t vector_size;
^
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_report E:\Binaries_MinGW\ViennaCL\CMakeFiles 95
[ 66%] Building CXX object libviennacl/CMakeFiles/viennacl.dir/src/blas2_opencl.cpp.obj
cd /d E:\Binaries_MinGW\ViennaCL\libviennacl && C:\TDM-GCC-64\bin\g++.exe -Dviennacl_EXPORTS -DVIENNACL_WITH_OPENCL -Wall -pedantic -O3 -DNDEBUG @CMakeFiles/viennacl.dir/includes_CXX.rsp -DVIENNACL_WITH_OPENCL -o CMakeFiles\viennacl.dir\src\blas2_opencl.cpp.obj -c E:\Sources\viennacl-dev\libviennacl\src\blas2_opencl.cpp
In file included from E:/Sources/viennacl-dev/viennacl/device_specific/autotuning/profiles.hpp:37:0,
from E:/Sources/viennacl-dev/viennacl/device_specific/code_generator.hpp:33,
from E:/Sources/viennacl-dev/viennacl/linalg/opencl/matrix_operations.hpp:39,
from E:/Sources/viennacl-dev/viennacl/linalg/matrix_operations.hpp:41,
from E:/Sources/viennacl-dev/viennacl/matrix.hpp:28,
from E:\Sources\viennacl-dev\libviennacl\src\blas2_opencl.cpp:29:
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp: In member function 'virtual void viennacl::device_specific::scalar_reduction::configure_range_enqueue_arguments(std::size_t, const statements_type&, viennacl::ocl::kernel&, unsigned int&) const':
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp:128:49: warning: 'vector_size' may be used uninitialized in this function [-Wmaybe-uninitialized]
k.arg(n_arg++, cl_uint(vector_size/simd_width_));
^
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp:107:27: note: 'vector_size' was declared here
std::size_t vector_size;
^
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_report E:\Binaries_MinGW\ViennaCL\CMakeFiles 96
[ 77%] Building CXX object libviennacl/CMakeFiles/viennacl.dir/src/blas3.cpp.obj
cd /d E:\Binaries_MinGW\ViennaCL\libviennacl && C:\TDM-GCC-64\bin\g++.exe -Dviennacl_EXPORTS -DVIENNACL_WITH_OPENCL -Wall -pedantic -O3 -DNDEBUG @CMakeFiles/viennacl.dir/includes_CXX.rsp -DVIENNACL_WITH_OPENCL -o CMakeFiles\viennacl.dir\src\blas3.cpp.obj -c E:\Sources\viennacl-dev\libviennacl\src\blas3.cpp
In file included from E:/Sources/viennacl-dev/viennacl/device_specific/autotuning/profiles.hpp:37:0,
from E:/Sources/viennacl-dev/viennacl/device_specific/code_generator.hpp:33,
from E:/Sources/viennacl-dev/viennacl/linalg/opencl/matrix_operations.hpp:39,
from E:/Sources/viennacl-dev/viennacl/linalg/matrix_operations.hpp:41,
from E:/Sources/viennacl-dev/viennacl/matrix.hpp:28,
from E:\Sources\viennacl-dev\libviennacl\src\blas3.cpp:29:
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp: In member function 'virtual void viennacl::device_specific::scalar_reduction::configure_range_enqueue_arguments(std::size_t, const statements_type&, viennacl::ocl::kernel&, unsigned int&) const':
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp:128:49: warning: 'vector_size' may be used uninitialized in this function [-Wmaybe-uninitialized]
k.arg(n_arg++, cl_uint(vector_size/simd_width_));
^
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp:107:27: note: 'vector_size' was declared here
std::size_t vector_size;
^
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_report E:\Binaries_MinGW\ViennaCL\CMakeFiles 97
[ 88%] Building CXX object libviennacl/CMakeFiles/viennacl.dir/src/blas3_host.cpp.obj
cd /d E:\Binaries_MinGW\ViennaCL\libviennacl && C:\TDM-GCC-64\bin\g++.exe -Dviennacl_EXPORTS -DVIENNACL_WITH_OPENCL -Wall -pedantic -O3 -DNDEBUG @CMakeFiles/viennacl.dir/includes_CXX.rsp -DVIENNACL_WITH_OPENCL -o CMakeFiles\viennacl.dir\src\blas3_host.cpp.obj -c E:\Sources\viennacl-dev\libviennacl\src\blas3_host.cpp
In file included from E:/Sources/viennacl-dev/viennacl/device_specific/autotuning/profiles.hpp:37:0,
from E:/Sources/viennacl-dev/viennacl/device_specific/code_generator.hpp:33,
from E:/Sources/viennacl-dev/viennacl/linalg/opencl/matrix_operations.hpp:39,
from E:/Sources/viennacl-dev/viennacl/linalg/matrix_operations.hpp:41,
from E:/Sources/viennacl-dev/viennacl/matrix.hpp:28,
from E:\Sources\viennacl-dev\libviennacl\src\blas3.hpp:32,
from E:\Sources\viennacl-dev\libviennacl\src\blas3_host.cpp:24:
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp: In member function 'virtual void viennacl::device_specific::scalar_reduction::configure_range_enqueue_arguments(std::size_t, const statements_type&, viennacl::ocl::kernel&, unsigned int&) const':
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp:128:49: warning: 'vector_size' may be used uninitialized in this function [-Wmaybe-uninitialized]
k.arg(n_arg++, cl_uint(vector_size/simd_width_));
^
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp:107:27: note: 'vector_size' was declared here
std::size_t vector_size;
^
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_report E:\Binaries_MinGW\ViennaCL\CMakeFiles 98
[100%] Building CXX object libviennacl/CMakeFiles/viennacl.dir/src/blas3_opencl.cpp.obj
cd /d E:\Binaries_MinGW\ViennaCL\libviennacl && C:\TDM-GCC-64\bin\g++.exe -Dviennacl_EXPORTS -DVIENNACL_WITH_OPENCL -Wall -pedantic -O3 -DNDEBUG @CMakeFiles/viennacl.dir/includes_CXX.rsp -DVIENNACL_WITH_OPENCL -o CMakeFiles\viennacl.dir\src\blas3_opencl.cpp.obj -c E:\Sources\viennacl-dev\libviennacl\src\blas3_opencl.cpp
In file included from E:/Sources/viennacl-dev/viennacl/device_specific/autotuning/profiles.hpp:37:0,
from E:/Sources/viennacl-dev/viennacl/device_specific/code_generator.hpp:33,
from E:/Sources/viennacl-dev/viennacl/linalg/opencl/matrix_operations.hpp:39,
from E:/Sources/viennacl-dev/viennacl/linalg/matrix_operations.hpp:41,
from E:/Sources/viennacl-dev/viennacl/matrix.hpp:28,
from E:\Sources\viennacl-dev\libviennacl\src\blas3.hpp:32,
from E:\Sources\viennacl-dev\libviennacl\src\blas3_opencl.cpp:24:
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp: In member function 'virtual void viennacl::device_specific::scalar_reduction::configure_range_enqueue_arguments(std::size_t, const statements_type&, viennacl::ocl::kernel&, unsigned int&) const':
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp:128:49: warning: 'vector_size' may be used uninitialized in this function [-Wmaybe-uninitialized]
k.arg(n_arg++, cl_uint(vector_size/simd_width_));
^
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp:107:27: note: 'vector_size' was declared here
std::size_t vector_size;
^
Linking CXX shared library libviennacl.dll
cd /d E:\Binaries_MinGW\ViennaCL\libviennacl && "C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_link_script CMakeFiles\viennacl.dir\link.txt --verbose=1
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E remove -f CMakeFiles\viennacl.dir/objects.a
C:\TDM-GCC-64\bin\ar.exe cr CMakeFiles\viennacl.dir/objects.a @CMakeFiles\viennacl.dir\objects1.rsp
C:\TDM-GCC-64\bin\g++.exe -shared -o libviennacl.dll -Wl,--out-implib,libviennacl.dll.a -Wl,--major-image-version,0,--minor-image-version,0 -Wl,--whole-archive CMakeFiles\viennacl.dir/objects.a -Wl,--no-whole-archive E:\ThirdPartyLibraries_MinGW\64Bit\AMD\OpenCL\lib\libOpenCL.a -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32
mingw32-make[3]: Leaving directory 'E:/Binaries_MinGW/ViennaCL'
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_report E:\Binaries_MinGW\ViennaCL\CMakeFiles 90 91 92 93 94 95 96 97 98
[100%] Built target viennacl
mingw32-make[2]: Leaving directory 'E:/Binaries_MinGW/ViennaCL'
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_start E:\Binaries_MinGW\ViennaCL\CMakeFiles 0
mingw32-make[1]: Leaving directory 'E:/Binaries_MinGW/ViennaCL'
mingw32-make: Leaving directory 'E:/Binaries_MinGW/ViennaCL'

15:39:08 Build Finished (took 1m:36s.83ms)

Which means it works fine...
However, the moment I enable OpenMP, I see this
15:40:55 **** Build of project ViennaCL-Release@ViennaCL ****
"C:\TDM-GCC-64\bin\mingw32-make.exe" -C E:/Binaries_MinGW/ViennaCL viennacl
mingw32-make: Entering directory 'E:/Binaries_MinGW/ViennaCL'
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -HE:\Sources\viennacl-dev -BE:\Binaries_MinGW\ViennaCL --check-build-system CMakeFiles\Makefile.cmake 0
C:/TDM-GCC-64/bin/mingw32-make -f CMakeFiles\Makefile2 viennacl
mingw32-make[1]: Entering directory 'E:/Binaries_MinGW/ViennaCL'
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -HE:\Sources\viennacl-dev -BE:\Binaries_MinGW\ViennaCL --check-build-system CMakeFiles\Makefile.cmake 0
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_start E:\Binaries_MinGW\ViennaCL\CMakeFiles 9
C:/TDM-GCC-64/bin/mingw32-make -f CMakeFiles\Makefile2 libviennacl/CMakeFiles/viennacl.dir/all
mingw32-make[2]: Entering directory 'E:/Binaries_MinGW/ViennaCL'
C:/TDM-GCC-64/bin/mingw32-make -f libviennacl\CMakeFiles\viennacl.dir\build.make libviennacl/CMakeFiles/viennacl.dir/depend
mingw32-make[3]: Entering directory 'E:/Binaries_MinGW/ViennaCL'
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_depends "MinGW Makefiles" E:\Sources\viennacl-dev E:\Sources\viennacl-dev\libviennacl E:\Binaries_MinGW\ViennaCL E:\Binaries_MinGW\ViennaCL\libviennacl E:\Binaries_MinGW\ViennaCL\libviennacl\CMakeFiles\viennacl.dir\DependInfo.cmake --color=
mingw32-make[3]: Leaving directory 'E:/Binaries_MinGW/ViennaCL'
C:/TDM-GCC-64/bin/mingw32-make -f libviennacl\CMakeFiles\viennacl.dir\build.make libviennacl/CMakeFiles/viennacl.dir/build
mingw32-make[3]: Entering directory 'E:/Binaries_MinGW/ViennaCL'
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_report E:\Binaries_MinGW\ViennaCL\CMakeFiles 90
[ 11%] Building CXX object libviennacl/CMakeFiles/viennacl.dir/src/backend.cpp.obj
cd /d E:\Binaries_MinGW\ViennaCL\libviennacl && C:\TDM-GCC-64\bin\g++.exe -Dviennacl_EXPORTS -fopenmp -DVIENNACL_WITH_OPENMP -Wall -pedantic -O3 -DNDEBUG @CMakeFiles/viennacl.dir/includes_CXX.rsp -DVIENNACL_WITH_OPENCL -o CMakeFiles\viennacl.dir\src\backend.cpp.obj -c E:\Sources\viennacl-dev\libviennacl\src\backend.cpp
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_report E:\Binaries_MinGW\ViennaCL\CMakeFiles 91
[ 22%] Building CXX object libviennacl/CMakeFiles/viennacl.dir/src/blas1.cpp.obj
cd /d E:\Binaries_MinGW\ViennaCL\libviennacl && C:\TDM-GCC-64\bin\g++.exe -Dviennacl_EXPORTS -fopenmp -DVIENNACL_WITH_OPENMP -Wall -pedantic -O3 -DNDEBUG @CMakeFiles/viennacl.dir/includes_CXX.rsp -DVIENNACL_WITH_OPENCL -o CMakeFiles\viennacl.dir\src\blas1.cpp.obj -c E:\Sources\viennacl-dev\libviennacl\src\blas1.cpp
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_report E:\Binaries_MinGW\ViennaCL\CMakeFiles 92
[ 33%] Building CXX object libviennacl/CMakeFiles/viennacl.dir/src/blas1_host.cpp.obj
cd /d E:\Binaries_MinGW\ViennaCL\libviennacl && C:\TDM-GCC-64\bin\g++.exe -Dviennacl_EXPORTS -fopenmp -DVIENNACL_WITH_OPENMP -Wall -pedantic -O3 -DNDEBUG @CMakeFiles/viennacl.dir/includes_CXX.rsp -DVIENNACL_WITH_OPENCL -o CMakeFiles\viennacl.dir\src\blas1_host.cpp.obj -c E:\Sources\viennacl-dev\libviennacl\src\blas1_host.cpp
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_report E:\Binaries_MinGW\ViennaCL\CMakeFiles 93
[ 44%] Building CXX object libviennacl/CMakeFiles/viennacl.dir/src/blas1_opencl.cpp.obj
cd /d E:\Binaries_MinGW\ViennaCL\libviennacl && C:\TDM-GCC-64\bin\g++.exe -Dviennacl_EXPORTS -fopenmp -DVIENNACL_WITH_OPENMP -Wall -pedantic -O3 -DNDEBUG @CMakeFiles/viennacl.dir/includes_CXX.rsp -DVIENNACL_WITH_OPENCL -o CMakeFiles\viennacl.dir\src\blas1_opencl.cpp.obj -c E:\Sources\viennacl-dev\libviennacl\src\blas1_opencl.cpp
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_report E:\Binaries_MinGW\ViennaCL\CMakeFiles
[ 44%] Building CXX object libviennacl/CMakeFiles/viennacl.dir/src/blas2.cpp.obj
cd /d E:\Binaries_MinGW\ViennaCL\libviennacl && C:\TDM-GCC-64\bin\g++.exe -Dviennacl_EXPORTS -fopenmp -DVIENNACL_WITH_OPENMP -Wall -pedantic -O3 -DNDEBUG @CMakeFiles/viennacl.dir/includes_CXX.rsp -DVIENNACL_WITH_OPENCL -o CMakeFiles\viennacl.dir\src\blas2.cpp.obj -c E:\Sources\viennacl-dev\libviennacl\src\blas2.cpp
In file included from E:/Sources/viennacl-dev/viennacl/device_specific/autotuning/profiles.hpp:37:0,
from E:/Sources/viennacl-dev/viennacl/device_specific/code_generator.hpp:33,
from E:/Sources/viennacl-dev/viennacl/linalg/opencl/matrix_operations.hpp:39,
from E:/Sources/viennacl-dev/viennacl/linalg/matrix_operations.hpp:41,
from E:/Sources/viennacl-dev/viennacl/matrix.hpp:28,
from E:\Sources\viennacl-dev\libviennacl\src\blas2.cpp:30:
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp: In member function 'virtual void viennacl::device_specific::scalar_reduction::configure_range_enqueue_arguments(std::size_t, const statements_type&, viennacl::ocl::kernel&, unsigned int&) const':
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp:128:49: warning: 'vector_size' may be used uninitialized in this function [-Wmaybe-uninitialized]
k.arg(n_arg++, cl_uint(vector_size/simd_width_));
^
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp:107:27: note: 'vector_size' was declared here
std::size_t vector_size;
^
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_report E:\Binaries_MinGW\ViennaCL\CMakeFiles 94
[ 55%] Building CXX object libviennacl/CMakeFiles/viennacl.dir/src/blas2_host.cpp.obj
cd /d E:\Binaries_MinGW\ViennaCL\libviennacl && C:\TDM-GCC-64\bin\g++.exe -Dviennacl_EXPORTS -fopenmp -DVIENNACL_WITH_OPENMP -Wall -pedantic -O3 -DNDEBUG @CMakeFiles/viennacl.dir/includes_CXX.rsp -DVIENNACL_WITH_OPENCL -o CMakeFiles\viennacl.dir\src\blas2_host.cpp.obj -c E:\Sources\viennacl-dev\libviennacl\src\blas2_host.cpp
In file included from E:/Sources/viennacl-dev/viennacl/device_specific/autotuning/profiles.hpp:37:0,
from E:/Sources/viennacl-dev/viennacl/device_specific/code_generator.hpp:33,
from E:/Sources/viennacl-dev/viennacl/linalg/opencl/matrix_operations.hpp:39,
from E:/Sources/viennacl-dev/viennacl/linalg/matrix_operations.hpp:41,
from E:/Sources/viennacl-dev/viennacl/matrix.hpp:28,
from E:\Sources\viennacl-dev\libviennacl\src\blas2_host.cpp:29:
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp: In member function 'virtual void viennacl::device_specific::scalar_reduction::configure_range_enqueue_arguments(std::size_t, const statements_type&, viennacl::ocl::kernel&, unsigned int&) const':
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp:128:49: warning: 'vector_size' may be used uninitialized in this function [-Wmaybe-uninitialized]
k.arg(n_arg++, cl_uint(vector_size/simd_width_));
^
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp:107:27: note: 'vector_size' was declared here
std::size_t vector_size;
^
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_report E:\Binaries_MinGW\ViennaCL\CMakeFiles 95
[ 66%] Building CXX object libviennacl/CMakeFiles/viennacl.dir/src/blas2_opencl.cpp.obj
cd /d E:\Binaries_MinGW\ViennaCL\libviennacl && C:\TDM-GCC-64\bin\g++.exe -Dviennacl_EXPORTS -fopenmp -DVIENNACL_WITH_OPENMP -Wall -pedantic -O3 -DNDEBUG @CMakeFiles/viennacl.dir/includes_CXX.rsp -DVIENNACL_WITH_OPENCL -o CMakeFiles\viennacl.dir\src\blas2_opencl.cpp.obj -c E:\Sources\viennacl-dev\libviennacl\src\blas2_opencl.cpp
In file included from E:/Sources/viennacl-dev/viennacl/device_specific/autotuning/profiles.hpp:37:0,
from E:/Sources/viennacl-dev/viennacl/device_specific/code_generator.hpp:33,
from E:/Sources/viennacl-dev/viennacl/linalg/opencl/matrix_operations.hpp:39,
from E:/Sources/viennacl-dev/viennacl/linalg/matrix_operations.hpp:41,
from E:/Sources/viennacl-dev/viennacl/matrix.hpp:28,
from E:\Sources\viennacl-dev\libviennacl\src\blas2_opencl.cpp:29:
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp: In member function 'virtual void viennacl::device_specific::scalar_reduction::configure_range_enqueue_arguments(std::size_t, const statements_type&, viennacl::ocl::kernel&, unsigned int&) const':
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp:128:49: warning: 'vector_size' may be used uninitialized in this function [-Wmaybe-uninitialized]
k.arg(n_arg++, cl_uint(vector_size/simd_width_));
^
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp:107:27: note: 'vector_size' was declared here
std::size_t vector_size;
^
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_report E:\Binaries_MinGW\ViennaCL\CMakeFiles 96
[ 77%] Building CXX object libviennacl/CMakeFiles/viennacl.dir/src/blas3.cpp.obj
cd /d E:\Binaries_MinGW\ViennaCL\libviennacl && C:\TDM-GCC-64\bin\g++.exe -Dviennacl_EXPORTS -fopenmp -DVIENNACL_WITH_OPENMP -Wall -pedantic -O3 -DNDEBUG @CMakeFiles/viennacl.dir/includes_CXX.rsp -DVIENNACL_WITH_OPENCL -o CMakeFiles\viennacl.dir\src\blas3.cpp.obj -c E:\Sources\viennacl-dev\libviennacl\src\blas3.cpp
In file included from E:/Sources/viennacl-dev/viennacl/device_specific/autotuning/profiles.hpp:37:0,
from E:/Sources/viennacl-dev/viennacl/device_specific/code_generator.hpp:33,
from E:/Sources/viennacl-dev/viennacl/linalg/opencl/matrix_operations.hpp:39,
from E:/Sources/viennacl-dev/viennacl/linalg/matrix_operations.hpp:41,
from E:/Sources/viennacl-dev/viennacl/matrix.hpp:28,
from E:\Sources\viennacl-dev\libviennacl\src\blas3.cpp:29:
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp: In member function 'virtual void viennacl::device_specific::scalar_reduction::configure_range_enqueue_arguments(std::size_t, const statements_type&, viennacl::ocl::kernel&, unsigned int&) const':
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp:128:49: warning: 'vector_size' may be used uninitialized in this function [-Wmaybe-uninitialized]
k.arg(n_arg++, cl_uint(vector_size/simd_width_));
^
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp:107:27: note: 'vector_size' was declared here
std::size_t vector_size;
^
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_report E:\Binaries_MinGW\ViennaCL\CMakeFiles 97
[ 88%] Building CXX object libviennacl/CMakeFiles/viennacl.dir/src/blas3_host.cpp.obj
cd /d E:\Binaries_MinGW\ViennaCL\libviennacl && C:\TDM-GCC-64\bin\g++.exe -Dviennacl_EXPORTS -fopenmp -DVIENNACL_WITH_OPENMP -Wall -pedantic -O3 -DNDEBUG @CMakeFiles/viennacl.dir/includes_CXX.rsp -DVIENNACL_WITH_OPENCL -o CMakeFiles\viennacl.dir\src\blas3_host.cpp.obj -c E:\Sources\viennacl-dev\libviennacl\src\blas3_host.cpp
In file included from E:/Sources/viennacl-dev/viennacl/device_specific/autotuning/profiles.hpp:37:0,
from E:/Sources/viennacl-dev/viennacl/device_specific/code_generator.hpp:33,
from E:/Sources/viennacl-dev/viennacl/linalg/opencl/matrix_operations.hpp:39,
from E:/Sources/viennacl-dev/viennacl/linalg/matrix_operations.hpp:41,
from E:/Sources/viennacl-dev/viennacl/matrix.hpp:28,
from E:\Sources\viennacl-dev\libviennacl\src\blas3.hpp:32,
from E:\Sources\viennacl-dev\libviennacl\src\blas3_host.cpp:24:
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp: In member function 'virtual void viennacl::device_specific::scalar_reduction::configure_range_enqueue_arguments(std::size_t, const statements_type&, viennacl::ocl::kernel&, unsigned int&) const':
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp:128:49: warning: 'vector_size' may be used uninitialized in this function [-Wmaybe-uninitialized]
k.arg(n_arg++, cl_uint(vector_size/simd_width_));
^
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp:107:27: note: 'vector_size' was declared here
std::size_t vector_size;
^
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_report E:\Binaries_MinGW\ViennaCL\CMakeFiles 98
[100%] Building CXX object libviennacl/CMakeFiles/viennacl.dir/src/blas3_opencl.cpp.obj
cd /d E:\Binaries_MinGW\ViennaCL\libviennacl && C:\TDM-GCC-64\bin\g++.exe -Dviennacl_EXPORTS -fopenmp -DVIENNACL_WITH_OPENMP -Wall -pedantic -O3 -DNDEBUG @CMakeFiles/viennacl.dir/includes_CXX.rsp -DVIENNACL_WITH_OPENCL -o CMakeFiles\viennacl.dir\src\blas3_opencl.cpp.obj -c E:\Sources\viennacl-dev\libviennacl\src\blas3_opencl.cpp
In file included from E:/Sources/viennacl-dev/viennacl/device_specific/autotuning/profiles.hpp:37:0,
from E:/Sources/viennacl-dev/viennacl/device_specific/code_generator.hpp:33,
from E:/Sources/viennacl-dev/viennacl/linalg/opencl/matrix_operations.hpp:39,
from E:/Sources/viennacl-dev/viennacl/linalg/matrix_operations.hpp:41,
from E:/Sources/viennacl-dev/viennacl/matrix.hpp:28,
from E:\Sources\viennacl-dev\libviennacl\src\blas3.hpp:32,
from E:\Sources\viennacl-dev\libviennacl\src\blas3_opencl.cpp:24:
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp: In member function 'virtual void viennacl::device_specific::scalar_reduction::configure_range_enqueue_arguments(std::size_t, const statements_type&, viennacl::ocl::kernel&, unsigned int&) const':
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp:128:49: warning: 'vector_size' may be used uninitialized in this function [-Wmaybe-uninitialized]
k.arg(n_arg++, cl_uint(vector_size/simd_width_));
^
E:/Sources/viennacl-dev/viennacl/device_specific/templates/scalar_reduction.hpp:107:27: note: 'vector_size' was declared here
std::size_t vector_size;
^
Linking CXX shared library libviennacl.dll
cd /d E:\Binaries_MinGW\ViennaCL\libviennacl && "C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_link_script CMakeFiles\viennacl.dir\link.txt --verbose=1
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E remove -f CMakeFiles\viennacl.dir/objects.a
C:\TDM-GCC-64\bin\ar.exe cr CMakeFiles\viennacl.dir/objects.a @CMakeFiles\viennacl.dir\objects1.rsp
C:\TDM-GCC-64\bin\g++.exe -shared -o libviennacl.dll -Wl,--out-implib,libviennacl.dll.a -Wl,--major-image-version,0,--minor-image-version,0 -Wl,--whole-archive CMakeFiles\viennacl.dir/objects.a -Wl,--no-whole-archive E:\ThirdPartyLibraries_MinGW\64Bit\AMD\OpenCL\lib\libOpenCL.a -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x9e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xa5): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x16e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x175): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x23e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x245): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x30e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x315): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x3de): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x3e5): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x47e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x485): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x51e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x525): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x5de): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x5e5): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x67e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x685): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x74e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x755): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x81e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x825): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x8ee): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x8f5): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x9be): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x9c5): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xa5e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xa65): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xafe): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xb05): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xbbe): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xbc5): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xc5e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xc65): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xcde): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xce5): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xd5e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xd65): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xe1e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xe25): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xeee): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xef5): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xf9e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xfa5): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x105e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x1065): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x113e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x1145): undefined reference toomp_get_thread_num'
c:/tdm-gcc-64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj): bad reloc address 0x0 in section `.pdata$_ZNK8viennacl16memory_exception4whatEv'
collect2.exe: error: ld returned 1 exit status
libviennacl\CMakeFiles\viennacl.dir\build.make:327: recipe for target 'libviennacl/libviennacl.dll' failed
mingw32-make[3]: *** [libviennacl/libviennacl.dll] Error 1
mingw32-make[2]: *** [libviennacl/CMakeFiles/viennacl.dir/all] Error 2
mingw32-make[1]: *** [libviennacl/CMakeFiles/viennacl.dir/rule] Error 2
mingw32-make: *** [viennacl] Error 2
mingw32-make[3]: Leaving directory 'E:/Binaries_MinGW/ViennaCL'
CMakeFiles\Makefile2:4915: recipe for target 'libviennacl/CMakeFiles/viennacl.dir/all' failed
mingw32-make[2]: Leaving directory 'E:/Binaries_MinGW/ViennaCL'
CMakeFiles\Makefile2:4927: recipe for target 'libviennacl/CMakeFiles/viennacl.dir/rule' failed
mingw32-make[1]: Leaving directory 'E:/Binaries_MinGW/ViennaCL'
Makefile:1891: recipe for target 'viennacl' failed
mingw32-make: Leaving directory 'E:/Binaries_MinGW/ViennaCL'

15:42:35 Build Finished (took 1m:39s.935ms)

Even though I have OpenMP library in my folder. Anything that I am doing wrong here?

karlrupp added a commit that referenced this issue May 6, 2014
The OpenMP flag was only set for exectuables, leading to failures
when building libviennacl.so on MinGW.

Reported-by: skn123 on GitHub in #72
@karlrupp
Copy link
Collaborator

karlrupp commented May 6, 2014

I just pushed a tentative fix for the problem. Please pull again and let us know whether this solves the problem.

@PhilippeTillet Please fix the uninitialized variable warnings in scalar_reduction.hpp:107

@skn123
Copy link
Author

skn123 commented May 6, 2014

karl, the problem is related with the "gomp" library that comes with MinGW. I explicitly linked that library and Voila!, the problem is solved. I did it at this
...
if (ENABLE_OPENCL)
find_package(OpenCL REQUIRED)
endif(ENABLE_OPENCL)

if (ENABLE_OPENMP)
find_package(OpenMP REQUIRED)
message("Link ${OpenMP_EXE_LINKER_FLAGS}")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS} -DVIENNACL_WITH_OPENMP")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS} -DVIENNACL_WITH_OPENMP")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fopenmp")#${OpenMP_EXE_LINKER_FLAGS}")
set (omp_libs gomp) <-----
endif(ENABLE_OPENMP)

and in libviennacl folder
I have to add this:
else(ENABLE_CUDA)
if(ENABLE_OPENCL)
add_library(viennacl SHARED src/backend.cpp
src/blas1.cpp src/blas1_host.cpp src/blas1_opencl.cpp
src/blas2.cpp src/blas2_host.cpp src/blas2_opencl.cpp
src/blas3.cpp src/blas3_host.cpp src/blas3_opencl.cpp)
set_target_properties(viennacl PROPERTIES COMPILE_FLAGS "-DVIENNACL_WITH_OPENCL")
target_link_libraries(viennacl ${OPENCL_LIBRARIES} ${omp_libs}) <---

and the problem is solved.
I think a better fix for this would be to IFDEF It out for MSVC and non-MSVC stuff.

@karlrupp
Copy link
Collaborator

karlrupp commented May 6, 2014

Thanks for letting us know. Does the fix I pushed above work as well?

@skn123
Copy link
Author

skn123 commented May 6, 2014

Nope it doesnt. I think the older version was fine. The problem is with FindOpenMP.cmake where it is not able to extract the OpenMP library "gomp".
It would be better to write something like this
IF(MSVC)
ELSE()
SET (OMP_LIBS gomp)
ENDFI()
and then we can link OMP_LIBS with libviennacl.

Here is the output with ur suggested fix:
17:05:21 **** Build of project ViennaCL-Release@ViennaCL ****
"C:\TDM-GCC-64\bin\mingw32-make.exe" -C E:/Binaries_MinGW/ViennaCL viennacl
mingw32-make: Entering directory 'E:/Binaries_MinGW/ViennaCL'
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -HE:\Sources\viennacl-dev -BE:\Binaries_MinGW\ViennaCL --check-build-system CMakeFiles\Makefile.cmake 0
C:/TDM-GCC-64/bin/mingw32-make -f CMakeFiles\Makefile2 viennacl
mingw32-make[1]: Entering directory 'E:/Binaries_MinGW/ViennaCL'
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -HE:\Sources\viennacl-dev -BE:\Binaries_MinGW\ViennaCL --check-build-system CMakeFiles\Makefile.cmake 0
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_start E:\Binaries_MinGW\ViennaCL\CMakeFiles 9
C:/TDM-GCC-64/bin/mingw32-make -f CMakeFiles\Makefile2 libviennacl/CMakeFiles/viennacl.dir/all
mingw32-make[2]: Entering directory 'E:/Binaries_MinGW/ViennaCL'
C:/TDM-GCC-64/bin/mingw32-make -f libviennacl\CMakeFiles\viennacl.dir\build.make libviennacl/CMakeFiles/viennacl.dir/depend
mingw32-make[3]: Entering directory 'E:/Binaries_MinGW/ViennaCL'
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_depends "MinGW Makefiles" E:\Sources\viennacl-dev E:\Sources\viennacl-dev\libviennacl E:\Binaries_MinGW\ViennaCL E:\Binaries_MinGW\ViennaCL\libviennacl E:\Binaries_MinGW\ViennaCL\libviennacl\CMakeFiles\viennacl.dir\DependInfo.cmake --color=
Scanning dependencies of target viennacl
mingw32-make[3]: Leaving directory 'E:/Binaries_MinGW/ViennaCL'
C:/TDM-GCC-64/bin/mingw32-make -f libviennacl\CMakeFiles\viennacl.dir\build.make libviennacl/CMakeFiles/viennacl.dir/build
mingw32-make[3]: Entering directory 'E:/Binaries_MinGW/ViennaCL'
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_report E:\Binaries_MinGW\ViennaCL\CMakeFiles
[ 0%] Building CXX object libviennacl/CMakeFiles/viennacl.dir/src/blas2.cpp.obj
cd /d E:\Binaries_MinGW\ViennaCL\libviennacl && C:\TDM-GCC-64\bin\g++.exe -Dviennacl_EXPORTS -fopenmp -DVIENNACL_WITH_OPENMP -Wall -pedantic -O3 -DNDEBUG @CMakeFiles/viennacl.dir/includes_CXX.rsp -DVIENNACL_WITH_OPENCL -o CMakeFiles\viennacl.dir\src\blas2.cpp.obj -c E:\Sources\viennacl-dev\libviennacl\src\blas2.cpp
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_report E:\Binaries_MinGW\ViennaCL\CMakeFiles 94
[ 11%] Building CXX object libviennacl/CMakeFiles/viennacl.dir/src/blas2_host.cpp.obj
cd /d E:\Binaries_MinGW\ViennaCL\libviennacl && C:\TDM-GCC-64\bin\g++.exe -Dviennacl_EXPORTS -fopenmp -DVIENNACL_WITH_OPENMP -Wall -pedantic -O3 -DNDEBUG @CMakeFiles/viennacl.dir/includes_CXX.rsp -DVIENNACL_WITH_OPENCL -o CMakeFiles\viennacl.dir\src\blas2_host.cpp.obj -c E:\Sources\viennacl-dev\libviennacl\src\blas2_host.cpp
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_report E:\Binaries_MinGW\ViennaCL\CMakeFiles 95
[ 22%] Building CXX object libviennacl/CMakeFiles/viennacl.dir/src/blas2_opencl.cpp.obj
cd /d E:\Binaries_MinGW\ViennaCL\libviennacl && C:\TDM-GCC-64\bin\g++.exe -Dviennacl_EXPORTS -fopenmp -DVIENNACL_WITH_OPENMP -Wall -pedantic -O3 -DNDEBUG @CMakeFiles/viennacl.dir/includes_CXX.rsp -DVIENNACL_WITH_OPENCL -o CMakeFiles\viennacl.dir\src\blas2_opencl.cpp.obj -c E:\Sources\viennacl-dev\libviennacl\src\blas2_opencl.cpp
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_report E:\Binaries_MinGW\ViennaCL\CMakeFiles 96
[ 33%] Building CXX object libviennacl/CMakeFiles/viennacl.dir/src/blas3.cpp.obj
cd /d E:\Binaries_MinGW\ViennaCL\libviennacl && C:\TDM-GCC-64\bin\g++.exe -Dviennacl_EXPORTS -fopenmp -DVIENNACL_WITH_OPENMP -Wall -pedantic -O3 -DNDEBUG @CMakeFiles/viennacl.dir/includes_CXX.rsp -DVIENNACL_WITH_OPENCL -o CMakeFiles\viennacl.dir\src\blas3.cpp.obj -c E:\Sources\viennacl-dev\libviennacl\src\blas3.cpp
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_report E:\Binaries_MinGW\ViennaCL\CMakeFiles 97
[ 44%] Building CXX object libviennacl/CMakeFiles/viennacl.dir/src/blas3_host.cpp.obj
cd /d E:\Binaries_MinGW\ViennaCL\libviennacl && C:\TDM-GCC-64\bin\g++.exe -Dviennacl_EXPORTS -fopenmp -DVIENNACL_WITH_OPENMP -Wall -pedantic -O3 -DNDEBUG @CMakeFiles/viennacl.dir/includes_CXX.rsp -DVIENNACL_WITH_OPENCL -o CMakeFiles\viennacl.dir\src\blas3_host.cpp.obj -c E:\Sources\viennacl-dev\libviennacl\src\blas3_host.cpp
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_progress_report E:\Binaries_MinGW\ViennaCL\CMakeFiles 98
[ 55%] Building CXX object libviennacl/CMakeFiles/viennacl.dir/src/blas3_opencl.cpp.obj
cd /d E:\Binaries_MinGW\ViennaCL\libviennacl && C:\TDM-GCC-64\bin\g++.exe -Dviennacl_EXPORTS -fopenmp -DVIENNACL_WITH_OPENMP -Wall -pedantic -O3 -DNDEBUG @CMakeFiles/viennacl.dir/includes_CXX.rsp -DVIENNACL_WITH_OPENCL -o CMakeFiles\viennacl.dir\src\blas3_opencl.cpp.obj -c E:\Sources\viennacl-dev\libviennacl\src\blas3_opencl.cpp
Linking CXX shared library libviennacl.dll
cd /d E:\Binaries_MinGW\ViennaCL\libviennacl && "C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_link_script CMakeFiles\viennacl.dir\link.txt --verbose=1
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E remove -f CMakeFiles\viennacl.dir/objects.a
C:\TDM-GCC-64\bin\ar.exe cr CMakeFiles\viennacl.dir/objects.a @CMakeFiles\viennacl.dir\objects1.rsp
C:\TDM-GCC-64\bin\g++.exe -shared -o libviennacl.dll -Wl,--out-implib,libviennacl.dll.a -Wl,--major-image-version,0,--minor-image-version,0 -Wl,--whole-archive CMakeFiles\viennacl.dir/objects.a -Wl,--no-whole-archive E:\ThirdPartyLibraries_MinGW\64Bit\AMD\OpenCL\lib\libOpenCL.a -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x9e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xa5): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x16e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x175): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x23e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x245): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x30e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x315): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x3de): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x3e5): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x47e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x485): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x51e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x525): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x5de): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x5e5): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x67e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x685): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x74e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x755): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x81e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x825): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x8ee): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x8f5): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x9be): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x9c5): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xa5e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xa65): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xafe): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xb05): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xbbe): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xbc5): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xc5e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xc65): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xcde): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xce5): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xd5e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xd65): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xe1e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xe25): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xeee): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xef5): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xf9e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0xfa5): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x105e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x1065): undefined reference toomp_get_thread_num'
CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x113e): undefined reference to omp_get_num_threads' CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj):blas1.cpp:(.text+0x1145): undefined reference toomp_get_thread_num'
c:/tdm-gcc-64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles\viennacl.dir/objects.a(blas1.cpp.obj): bad reloc address 0x0 in section `.pdata$_ZNK8viennacl16memory_exception4whatEv'
libviennacl\CMakeFiles\viennacl.dir\build.make:327: recipe for target 'libviennacl/libviennacl.dll' failed
collect2.exe: error: ld returned 1 exit status
mingw32-make[3]: Leaving directory 'E:/Binaries_MinGW/ViennaCL'
mingw32-make[3]: *** [libviennacl/libviennacl.dll] Error 1
mingw32-make[2]: *** [libviennacl/CMakeFiles/viennacl.dir/all] Error 2
CMakeFiles\Makefile2:4915: recipe for target 'libviennacl/CMakeFiles/viennacl.dir/all' failed
mingw32-make[2]: Leaving directory 'E:/Binaries_MinGW/ViennaCL'
CMakeFiles\Makefile2:4927: recipe for target 'libviennacl/CMakeFiles/viennacl.dir/rule' failed
mingw32-make[1]: Leaving directory 'E:/Binaries_MinGW/ViennaCL'
Makefile:1891: recipe for target 'viennacl' failed
mingw32-make: Leaving directory 'E:/Binaries_MinGW/ViennaCL'
mingw32-make[1]: *** [libviennacl/CMakeFiles/viennacl.dir/rule] Error 2
mingw32-make: *** [viennacl] Error 2

@karlrupp
Copy link
Collaborator

karlrupp commented May 6, 2014

Thanks! I'll take this as a basis for a fix. I'm just a bit hesitant because I want to make sure that this does not break builds on other systems and compilers...

@skn123
Copy link
Author

skn123 commented May 6, 2014

Karl
Absolutely, you should test this. That's why we have CMake. As a priority, do this only for MinGw
by
IF (MINGW)
ELSE()
#Other platforms
ENDIF()

I have faced this problem isn so many libraries that I am frankly tired of this. If its Win32 it is by assumption MSVC which is not the case!

@karlrupp
Copy link
Collaborator

karlrupp commented May 6, 2014

As you stated above, in this case it's actually a CMake problem which we have to circumvent. I understand your frustration - all we (I'm referring to programmers in general) can do to improve this is to report any such troubles upstream in order to ensure these things get fixed ASAP. To the extent possible here, ViennaCL listens, so thanks for reporting :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants