From 9385b3323a64d01245379e813c16aca679d10258 Mon Sep 17 00:00:00 2001 From: Torsten Merz <mer114@moon-ph.nexus.csiro.au> Date: Mon, 10 Feb 2020 15:59:54 +1000 Subject: [PATCH] added "long" data type check for 64bit --- smi/CMakeLists.txt.64_gnu90 | 7 ++++--- smi/src/nrt_system.c | 7 ++++++- smi/src/rt_def.h | 4 ++++ 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/smi/CMakeLists.txt.64_gnu90 b/smi/CMakeLists.txt.64_gnu90 index ff1eee9..5122d58 100644 --- a/smi/CMakeLists.txt.64_gnu90 +++ b/smi/CMakeLists.txt.64_gnu90 @@ -9,13 +9,14 @@ endif() # RTAI if($ENV{RTAI}) -SET(RTCFLAGS "$(shell rtai-config --lxrt-cflags) -D_RTAI -Wall -std=gnu90") +SET(RTCFLAGS "$(shell rtai-config --lxrt-cflags) -D_RTAI -Wall -std=gnu90 +-D_64") else() # PREEMPT_RT -SET(RTCFLAGS "-O2 -Wall -fno-stack-protector -std=gnu90") +SET(RTCFLAGS "-O2 -Wall -fno-stack-protector -std=gnu90 -D_64") endif() -SET(NRTCFLAGS "-D_NRT -O2 -Wall -std=gnu90") +SET(NRTCFLAGS "-D_NRT -D_64 -O2 -Wall -std=gnu90") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/../bin) diff --git a/smi/src/nrt_system.c b/smi/src/nrt_system.c index 940f118..1d11dc4 100644 --- a/smi/src/nrt_system.c +++ b/smi/src/nrt_system.c @@ -388,10 +388,15 @@ int nrtSmi(char *esmFile, char *tssFile, char *tdeFile, char *cfgFile) { /* check size of data types */ if (sizeof(char)!=CHAR_S || sizeof(short)!=SHORT_S || sizeof(int)!=INT_S || sizeof(long)!=LONG_S || - sizeof(RTIME)!=RTIME_S) + sizeof(RTIME)!=RTIME_S || sizeof(float)!=FLOAT_S || + sizeof(double)!=DOUBLE_S) { error=4; printf("[nrtSmi] data type mismatch\n"); +//printf("CHAR_BIT=%d\n",CHAR_BIT); +//printf("%d %d %d %d %d\n",CHAR_S,SHORT_S,INT_S,LONG_S,RTIME_S); +//printf("%ld %ld %ld %ld %ld\n",sizeof(char),sizeof(short),sizeof(int), +//sizeof(long),sizeof(RTIME)); goto exit; } diff --git a/smi/src/rt_def.h b/smi/src/rt_def.h index 2b39eaf..10bf737 100644 --- a/smi/src/rt_def.h +++ b/smi/src/rt_def.h @@ -20,7 +20,11 @@ #define CHAR_S 1 #define SHORT_S 2 #define INT_S 4 +#ifdef _64 +#define LONG_S 8 +#elif #define LONG_S 4 +#endif #define RTIME_S 8 #define DOUBLE_S 8 #define FLOAT_S 4 -- GitLab