Page 1 of 1
Build Problem using VS 2013
Posted: Tue Sep 16, 2014 2:13 pm
by anyech
Hi, I am new to MAGMA.
While I am building solution using VS 2013, It keep giving me this error message:
Code: Select all
e:\14_fall\magma\magma-1.5.0\include\magma_mangling.h(32): fatal error C1189: #error : "One of ADD_, NOCHANGE, or UPCASE must be defined to set how Fortran functions are name mangled. For example, in MAGMA, add -DADD_ to CFLAGS, FFLAGS, etc. in make.inc. If using CMake, it defines MAGMA_GLOBAL instead."
Does anyone have any idea about how to solve it?
Re: Build Problem using VS 2013
Posted: Tue Sep 16, 2014 4:52 pm
by mgates3
Please give complete details about how you are building.
Are you using CUDA MAGMA 1.5.0 (final)?
Are you compiling using Makefiles or CMake?
If with Makefiles, what is your make.inc file? What tools (cygwin, gnu make, etc.) are you using?
If with CMake, what version? (Although, CMake should not have this issue.)
Otherwise, generally do what the error message says: add one of -DADD_, or -DNOCHANGE, or -DUPCASE (depending on your compiler) to CFLAGS, FFLAGS, etc. in your make.inc file. If you are unsure which to use, try -DADD_ first.
-mark
Re: Build Problem using VS 2013
Posted: Tue Sep 16, 2014 6:37 pm
by anyech
Thank you for your response.
Yes, I am using CUDA MAGMA 1.5.0 (final), and I am using CMake (version 3.0.1).
When I use CMake following the steps in "README-Windows", it gives me the error message
Code: Select all
CMake Error at CMakeLists.txt:4 (project):
No CMAKE_Fortran_COMPILER could be found.
I am using INTEL Parallel Studio XE 2015 with MKL and Fortran compiler.
And I found some helps on stack overflow
http://stackoverflow.com/questions/2225 ... s-7-64-bit
Add
Code: Select all
SET (CMAKE_Fortran_COMPILER_FORCED true)
to CMakeList.txt then manually specify the path for Intel Fortran Compiler (D:/Intel/Composer XE 2015/bin/ia32/ifort.exe)
Then the CMake went through.
But, when I try to build the solution, the error mentioned earlier appears.
Hope this information could help you identify the problem of me.
Thank you!
Re: Build Problem using VS 2013
Posted: Tue Sep 16, 2014 7:00 pm
by anyech
In addition, I have got some other error messages while I was building solution.
Code: Select all
3> magma_z_no_fortran.c
3>e:\14_fall\magma\magma-1.5.0\include\magma_types.h(589): error C2054: expected '(' to follow 'inline'
3>e:\14_fall\magma\magma-1.5.0\include\magma_types.h(589): error C2085: 'lapacke_const' : not in formal parameter list
3>e:\14_fall\magma\magma-1.5.0\include\magma_types.h(589): error C2143: syntax error : missing ';' before '{'
3>e:\14_fall\magma\magma-1.5.0\include\magma_types.h(590): error C2054: expected '(' to follow 'inline'
3>e:\14_fall\magma\magma-1.5.0\include\magma_types.h(590): error C2085: 'lapacke_bool_const' : not in formal parameter list
3>e:\14_fall\magma\magma-1.5.0\include\magma_types.h(590): error C2143: syntax error : missing ';' before '{'
...
Code: Select all
3> magma_c_no_fortran.c
3>e:\14_fall\magma\magma-1.5.0\include\magma_types.h(589): error C2054: expected '(' to follow 'inline'
3>e:\14_fall\magma\magma-1.5.0\include\magma_types.h(589): error C2085: 'lapacke_const' : not in formal parameter list
3>e:\14_fall\magma\magma-1.5.0\include\magma_types.h(589): error C2143: syntax error : missing ';' before '{'
...
Code: Select all
4> Building NVCC (Device) object CMakeFiles/magma.dir/magmablas/Debug/magma_generated_zcaxpycp.cu.obj
3>e:\14_fall\magma\magma-1.5.0\include\magmablas.h(192): error C2054: expected '(' to follow 'inline'
3>e:\14_fall\magma\magma-1.5.0\include\magmablas.h(197): error C2085: 'magma_isetvector_internal' : not in formal parameter list
3>e:\14_fall\magma\magma-1.5.0\include\magmablas.h(197): error C2143: syntax error : missing ';' before '{'
...
Code: Select all
3> magma_d_no_fortran.c
3>e:\14_fall\magma\magma-1.5.0\include\magma_types.h(589): error C2054: expected '(' to follow 'inline'
3>e:\14_fall\magma\magma-1.5.0\include\magma_types.h(589): error C2085: 'lapacke_const' : not in formal parameter list
3>e:\14_fall\magma\magma-1.5.0\include\magma_types.h(589): error C2143: syntax error : missing ';' before '{'
3>e:\14_fall\magma\magma-1.5.0\include\magma_types.h(590): error C2054: expected '(' to follow 'inline'
...
Code: Select all
3> magma_s_no_fortran.c
3>e:\14_fall\magma\magma-1.5.0\include\magma_types.h(589): error C2054: expected '(' to follow 'inline'
3>e:\14_fall\magma\magma-1.5.0\include\magma_types.h(589): error C2085: 'lapacke_const' : not in formal parameter list
3>e:\14_fall\magma\magma-1.5.0\include\magma_types.h(589): error C2143: syntax error : missing ';' before '{'
...
Re: Build Problem using VS 2013
Posted: Thu Sep 18, 2014 10:17 am
by mgates3
What does include/mangling.h look like?
CMake should detect your Fortran mangling scheme and generate that file with the appropriate MAGMA_GLOBAL function. I'm guessing in your case it did not do that. mangling.h should look something like this (here, assuming Fortran appends _ ):
Code: Select all
#ifndef MAGMA_HEADER_INCLUDED
#define MAGMA_HEADER_INCLUDED
/* Mangling for Fortran global symbols without underscores. */
#define MAGMA_GLOBAL(name,NAME) name##_
/* Mangling for Fortran global symbols with underscores. */
#define MAGMA_GLOBAL_(name,NAME) name##_
/* Mangling for Fortran module symbols without underscores. */
#define MAGMA_MODULE(mod_name,name, mod_NAME,NAME) __##mod_name##_MOD_##name
/* Mangling for Fortran module symbols with underscores. */
#define MAGMA_MODULE_(mod_name,name, mod_NAME,NAME) __##mod_name##_MOD_##name
#endif
Your other errors seem to indicate your compiler isn't accepting "inline" as a keyword. This could happen if it was configured to compile C89 instead of C99 or C11.
-mark