ILP support
long's in windows are 4 bytes (MSVS, intel compilers). Use int64_t and int32_t to ensure 8 byte integers for ILP interface. support 8 byte integer flag for intel ifort compiler
This commit is contained in:
parent
3efbf968f1
commit
8fe3555792
|
@ -1,6 +1,7 @@
|
|||
#ifndef CBLAS_H
|
||||
#define CBLAS_H
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -11,9 +12,9 @@ extern "C" { /* Assume C declarations for C++ */
|
|||
* Enumerated and derived types
|
||||
*/
|
||||
#ifdef WeirdNEC
|
||||
#define CBLAS_INDEX long
|
||||
#define CBLAS_INDEX int64_t
|
||||
#else
|
||||
#define CBLAS_INDEX int
|
||||
#define CBLAS_INDEX int32_t
|
||||
#endif
|
||||
|
||||
typedef enum {CblasRowMajor=101, CblasColMajor=102} CBLAS_LAYOUT;
|
||||
|
|
|
@ -9,6 +9,8 @@
|
|||
#ifndef CBLAS_F77_H
|
||||
#define CBLAS_F77_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef CRAY
|
||||
#include <fortran.h>
|
||||
#define F77_CHAR _fcd
|
||||
|
@ -17,8 +19,12 @@
|
|||
#define F77_STRLEN(a) (_fcdlen)
|
||||
#endif
|
||||
|
||||
#ifndef F77_INT
|
||||
#ifdef WeirdNEC
|
||||
#define F77_INT long
|
||||
#define F77_INT int64_t
|
||||
#else
|
||||
#define F77_INT int32_t
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef F77_CHAR
|
||||
|
|
|
@ -14,6 +14,19 @@ macro( CheckLAPACKCompilerFlags )
|
|||
|
||||
set( FPE_EXIT FALSE )
|
||||
|
||||
# FORTRAN ILP default
|
||||
if ( FORTRAN_ILP )
|
||||
if( CMAKE_Fortran_COMPILER_ID STREQUAL "Intel" )
|
||||
if ( WIN32 )
|
||||
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} /integer-size:64")
|
||||
else ()
|
||||
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -integer-size 64")
|
||||
endif()
|
||||
else()
|
||||
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fdefault-integer-8")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# GNU Fortran
|
||||
if( CMAKE_Fortran_COMPILER_ID STREQUAL "GNU" )
|
||||
if( "${CMAKE_Fortran_FLAGS}" MATCHES "-ffpe-trap=[izoupd]")
|
||||
|
|
|
@ -53,7 +53,7 @@ if(BUILD_INDEX64)
|
|||
set(LAPACKELIB "lapacke64")
|
||||
set(TMGLIB "tmglib64")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWeirdNEC -DLAPACK_ILP64 -DHAVE_LAPACK_CONFIG_H")
|
||||
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fdefault-integer-8")
|
||||
set(FORTRAN_ILP TRUE)
|
||||
else()
|
||||
set(BLASLIB "blas")
|
||||
set(CBLASLIB "cblas")
|
||||
|
|
|
@ -49,12 +49,13 @@ extern "C" {
|
|||
#endif /* __cplusplus */
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#ifndef lapack_int
|
||||
#if defined(LAPACK_ILP64)
|
||||
#define lapack_int long
|
||||
#define lapack_int int64_t
|
||||
#else
|
||||
#define lapack_int int
|
||||
#define lapack_int int32_t
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in New Issue