--- imach/src/imach.c 2015/01/03 12:06:26 1.173 +++ imach/src/imach.c 2015/01/04 09:35:48 1.178 @@ -1,6 +1,21 @@ -/* $Id: imach.c,v 1.173 2015/01/03 12:06:26 brouard Exp $ +/* $Id: imach.c,v 1.178 2015/01/04 09:35:48 brouard Exp $ $State: Exp $ $Log: imach.c,v $ + Revision 1.178 2015/01/04 09:35:48 brouard + *** empty log message *** + + Revision 1.177 2015/01/03 18:40:56 brouard + Summary: Still testing ilc32 on OSX + + Revision 1.176 2015/01/03 16:45:04 brouard + *** empty log message *** + + Revision 1.175 2015/01/03 16:33:42 brouard + *** empty log message *** + + Revision 1.174 2015/01/03 16:15:49 brouard + Summary: Still in cross-compilation + Revision 1.173 2015/01/03 12:06:26 brouard Summary: trying to detect cross-compilation @@ -617,11 +632,11 @@ typedef struct { #define ODIRSEPARATOR '\\' #endif -/* $Id: imach.c,v 1.173 2015/01/03 12:06:26 brouard Exp $ */ +/* $Id: imach.c,v 1.178 2015/01/04 09:35:48 brouard Exp $ */ /* $State: Exp $ */ char version[]="Imach version 0.98p, December 2014,INED-EUROREVES-Institut de longevite-Japan Society for the Promotion of Science (Grant-in-Aid for Scientific Research 25293121), Intel Software 2015"; -char fullversion[]="$Revision: 1.173 $ $Date: 2015/01/03 12:06:26 $"; +char fullversion[]="$Revision: 1.178 $ $Date: 2015/01/04 09:35:48 $"; char strstart[80]; char optionfilext[10], optionfilefiname[FILENAMELENGTH]; int erreur=0, nberr=0, nbwarn=0; /* Error number, number of errors number of warnings */ @@ -5495,11 +5510,27 @@ BOOL IsWow64() return bIsWow64 != FALSE; } #endif + void syscompilerinfo() { /* #include "syscompilerinfo.h"*/ - /* #include */ /* Only on gnu */ + +#if defined __INTEL_COMPILER +#if defined(__GNUC__) + struct utsname sysInfo; /* For Intel on Linux and OS/X */ +#endif +#elif defined(__GNUC__) +#include /* Only on gnu */ + struct utsname sysInfo; + int cross = CROSS; + if (cross){ + printf("Cross-"); + fprintf(ficlog, "Cross-"); + } +#endif + #include + printf("Compiled with:");fprintf(ficlog,"Compiled with:"); #if defined(__clang__) printf(" Clang/LLVM");fprintf(ficlog," Clang/LLVM"); /* Clang/LLVM. ---------------------------------------------- */ @@ -5525,21 +5556,21 @@ void syscompilerinfo() #if defined(__SUNPRO_C) || defined(__SUNPRO_CC) printf(" Oracle Solaris Studio");fprintf(ficlog," Oracle Solaris Studio\n");/* Oracle Solaris Studio. ----------------------------------- */ #endif - printf(". ");fprintf(ficlog,". "); + printf(" for ");fprintf(ficlog," for "); // http://stackoverflow.com/questions/4605842/how-to-identify-platform-compiler-from-preprocessor-macros #ifdef _WIN32 // note the underscore: without it, it's not msdn official! // Windows (x64 and x86) - printf("Windows (x64 and x86). ");fprintf(ficlog,"Windows (x64 and x86). "); + printf("Windows (x64 and x86) ");fprintf(ficlog,"Windows (x64 and x86) "); #elif __unix__ // all unices, not all compilers // Unix - printf("Unix. ");fprintf(ficlog,"Unix. "); + printf("Unix ");fprintf(ficlog,"Unix "); #elif __linux__ // linux - printf("linux. ");fprintf(ficlog,"linux. "); + printf("linux ");fprintf(ficlog,"linux "); #elif __APPLE__ - // Mac OS, not sure if this is covered by __posix__ and/or __unix__ though... - printf("Mac OS. ");fprintf(ficlog,"Mac OS. "); + // Mac OS, not sure if this is covered by __posix__ and/or __unix__ though.. + printf("Mac OS ");fprintf(ficlog,"Mac OS "); #endif /* __MINGW32__ */ @@ -5553,22 +5584,13 @@ void syscompilerinfo() /* _DEBUG // Defined when you compile with /LDd, /MDd, and /MTd. */ #if UINTPTR_MAX == 0xffffffff - printf(" 32-bit.\n"); fprintf(ficlog," 32-bit.\n");/* 32-bit */ + printf(" 32-bit"); fprintf(ficlog," 32-bit");/* 32-bit */ #elif UINTPTR_MAX == 0xffffffffffffffff - printf(" 64-bit.\n"); fprintf(ficlog," 64-bit.\n");/* 64-bit */ + printf(" 64-bit"); fprintf(ficlog," 64-bit");/* 64-bit */ #else - printf(" wtf-bit.\n"); fprintf(ficlog," wtf-bit.\n");/* wtf */ + printf(" wtf-bit"); fprintf(ficlog," wtf-bit");/* wtf */ #endif -/* struct utsname sysInfo; - - if (uname(&sysInfo) != -1) { - printf(" %s %s %s %s %s\n",sysInfo.sysname, sysInfo.nodename, sysInfo.release, sysInfo.version, sysInfo.machine); - fprintf(ficlog," %s %s %s %s %s\n ",sysInfo.sysname, sysInfo.nodename, sysInfo.release, sysInfo.version, sysInfo.machine); - } - else - perror("uname() error"); - */ #if defined(__GNUC__) # if defined(__GNUC_PATCHLEVEL__) # define __GNUC_VERSION__ (__GNUC__ * 10000 \ @@ -5578,25 +5600,38 @@ void syscompilerinfo() # define __GNUC_VERSION__ (__GNUC__ * 10000 \ + __GNUC_MINOR__ * 100) # endif - printf("GNU C version %d.\n", __GNUC_VERSION__); - fprintf(ficlog, "GNU C version %d.\n", __GNUC_VERSION__); + printf(" using GNU C version %d.\n", __GNUC_VERSION__); + fprintf(ficlog, " using GNU C version %d.\n", __GNUC_VERSION__); + + if (uname(&sysInfo) != -1) { + printf("Running on: %s %s %s %s %s\n",sysInfo.sysname, sysInfo.nodename, sysInfo.release, sysInfo.version, sysInfo.machine); + fprintf(ficlog,"Running on: %s %s %s %s %s\n ",sysInfo.sysname, sysInfo.nodename, sysInfo.release, sysInfo.version, sysInfo.machine); + } + else + perror("uname() error"); +#ifndef __INTEL_COMPILER + printf("GNU libc version: %s\n", gnu_get_libc_version()); + fprintf(ficlog,"GNU libc version: %s\n", gnu_get_libc_version()); +#endif #endif // void main() // { #if defined(_MSC_VER) - if (IsWow64()) - printf("The process is running under WOW64.\n"); - else - printf("The process is not running under WOW64.\n"); - + if (IsWow64()){ + printf("The program (probably compiled for 32bit) is running under WOW64 (64bit) emulation.\n"); + fprintf(ficlog, "The program (probably compiled for 32bit) is running under WOW64 (64bit) emulation.\n"); + } + else{ + printf("The process is not running under WOW64 (i.e probably on a 64bit Windows).\n"); + fprintf(ficlog,"The programm is not running under WOW64 (i.e probably on a 64bit Windows).\n"); + } // printf("\nPress Enter to continue..."); // getchar(); // } #endif - /* printf("GNU libc version: %s\n", gnu_get_libc_version()); */ }