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
|
#ifndef CBLAS_H
|
||||||
#define CBLAS_H
|
#define CBLAS_H
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
@ -11,9 +12,9 @@ extern "C" { /* Assume C declarations for C++ */
|
||||||
* Enumerated and derived types
|
* Enumerated and derived types
|
||||||
*/
|
*/
|
||||||
#ifdef WeirdNEC
|
#ifdef WeirdNEC
|
||||||
#define CBLAS_INDEX long
|
#define CBLAS_INDEX int64_t
|
||||||
#else
|
#else
|
||||||
#define CBLAS_INDEX int
|
#define CBLAS_INDEX int32_t
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef enum {CblasRowMajor=101, CblasColMajor=102} CBLAS_LAYOUT;
|
typedef enum {CblasRowMajor=101, CblasColMajor=102} CBLAS_LAYOUT;
|
||||||
|
|
|
@ -9,6 +9,8 @@
|
||||||
#ifndef CBLAS_F77_H
|
#ifndef CBLAS_F77_H
|
||||||
#define CBLAS_F77_H
|
#define CBLAS_F77_H
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
#ifdef CRAY
|
#ifdef CRAY
|
||||||
#include <fortran.h>
|
#include <fortran.h>
|
||||||
#define F77_CHAR _fcd
|
#define F77_CHAR _fcd
|
||||||
|
@ -17,8 +19,12 @@
|
||||||
#define F77_STRLEN(a) (_fcdlen)
|
#define F77_STRLEN(a) (_fcdlen)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef F77_INT
|
||||||
#ifdef WeirdNEC
|
#ifdef WeirdNEC
|
||||||
#define F77_INT long
|
#define F77_INT int64_t
|
||||||
|
#else
|
||||||
|
#define F77_INT int32_t
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef F77_CHAR
|
#ifdef F77_CHAR
|
||||||
|
|
|
@ -14,6 +14,19 @@ macro( CheckLAPACKCompilerFlags )
|
||||||
|
|
||||||
set( FPE_EXIT FALSE )
|
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
|
# GNU Fortran
|
||||||
if( CMAKE_Fortran_COMPILER_ID STREQUAL "GNU" )
|
if( CMAKE_Fortran_COMPILER_ID STREQUAL "GNU" )
|
||||||
if( "${CMAKE_Fortran_FLAGS}" MATCHES "-ffpe-trap=[izoupd]")
|
if( "${CMAKE_Fortran_FLAGS}" MATCHES "-ffpe-trap=[izoupd]")
|
||||||
|
|
|
@ -53,7 +53,7 @@ if(BUILD_INDEX64)
|
||||||
set(LAPACKELIB "lapacke64")
|
set(LAPACKELIB "lapacke64")
|
||||||
set(TMGLIB "tmglib64")
|
set(TMGLIB "tmglib64")
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWeirdNEC -DLAPACK_ILP64 -DHAVE_LAPACK_CONFIG_H")
|
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()
|
else()
|
||||||
set(BLASLIB "blas")
|
set(BLASLIB "blas")
|
||||||
set(CBLASLIB "cblas")
|
set(CBLASLIB "cblas")
|
||||||
|
|
|
@ -49,12 +49,13 @@ extern "C" {
|
||||||
#endif /* __cplusplus */
|
#endif /* __cplusplus */
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
#ifndef lapack_int
|
#ifndef lapack_int
|
||||||
#if defined(LAPACK_ILP64)
|
#if defined(LAPACK_ILP64)
|
||||||
#define lapack_int long
|
#define lapack_int int64_t
|
||||||
#else
|
#else
|
||||||
#define lapack_int int
|
#define lapack_int int32_t
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue