Hi > I believe there is a simpler way to achieve this: just teaching ECL (not > GMP) that there exist long long integers in Windows/32. Why not just change > config.h.msvc6 to define ecl_uint64_t also for 32 bits? It seems that I now able to build ECL with int64 numbers support Patch: *** msvc\ecl\config.h.msvc6.old Wed Feb 15 17:16:30 2012 --- msvc\ecl\config.h.msvc6 Sat Feb 18 17:49:26 2012 *************** *** 120,126 **** #define ecl_uint32_t unsigned int #define ecl_int32_t int
! #ifdef _WIN64 # define ecl_uint64_t unsigned __int64 # define ecl_int64_t __int64 # define ecl_long_long_t long long --- 120,126 ---- #define ecl_uint32_t unsigned int #define ecl_int32_t int ! #if defined(_WIN64) || defined(BITS64) # define ecl_uint64_t unsigned __int64 # define ecl_int64_t __int64 # define ecl_long_long_t long long *** msvc\Makefile.old Wed Feb 15 16:01:44 2012 --- msvc\Makefile Sat Feb 18 18:05:10 2012 *************** *** 60,65 **** --- 60,68 ---- # Profiling ECL_PROFILE = + # Bitness of numbers - set it to non-empty to build 64bit numbers on win32 + ECL_64BITS = 1 + # <END> (ECL configuration) # ============================================================= *************** *** 91,97 **** --- 94,106 ---- ARCHITECTURE=AMD64 VCREDIST=vcredist_x64.exe !else + !if "$(ECL_64BITS)" != "" + GMP_BITS=32 + ECL_BITS64=/D BITS64 + !else GMP_BITS=32 + ECL_BITS64= + !endif GC_CPU=i386 ARCHITECTURE=PENTIUM4 VCREDIST=vcredist_x86.exe *************** *** 102,114 **** # !if "$(ECL_DEBUG)" != "" CFLAGS_OPTIMIZE = /Od ! CFLAGS_CONFIG = /Zi /D_DEBUG /MDd $(CFLAGS_OPTIMIZE) $(CFLAGS_SSE) LDFLAGS_CONFIG = /debug /nodefaultlib:msvcrt.lib SHARED_LDFLAGS = /LDd GCFLAGS = !else CFLAGS_OPTIMIZE = /O2 ! CFLAGS_CONFIG = /DNDEBUG /MD $(CFLAGS_OPTIMIZE) $(CFLAGS_SSE) LDFLAGS_CONFIG = /nodefaultlib:msvcrtd.lib SHARED_LDFLAGS = /LD GCFLAGS = nodebug=1 --- 111,123 ---- # !if "$(ECL_DEBUG)" != "" CFLAGS_OPTIMIZE = /Od ! CFLAGS_CONFIG = /Zi /D_DEBUG /MDd $(CFLAGS_OPTIMIZE) $(CFLAGS_SSE) $(ECL_BITS64) LDFLAGS_CONFIG = /debug /nodefaultlib:msvcrt.lib SHARED_LDFLAGS = /LDd GCFLAGS = !else CFLAGS_OPTIMIZE = /O2 ! CFLAGS_CONFIG = /DNDEBUG /MD $(CFLAGS_OPTIMIZE) $(CFLAGS_SSE) $(ECL_BITS64) LDFLAGS_CONFIG = /nodefaultlib:msvcrtd.lib SHARED_LDFLAGS = /LD GCFLAGS = nodebug=1 *************** *** 352,358 **** eclgmp.lib: cd gmp $(MAKE) "MPN_TYPE=$(GMP_TYPE)" "CFLAGS_CONFIG=$(CFLAGS_CONFIG)" \ ! "BITS=$(GMP_BITS)" $(CP) gmp.lib ..\eclgmp.lib $(CP) gmp.h ..\ecl\gmp.h cd .. --- 361,367 ---- eclgmp.lib: cd gmp $(MAKE) "MPN_TYPE=$(GMP_TYPE)" "CFLAGS_CONFIG=$(CFLAGS_CONFIG)" \ ! "BITS=$(GMP_BITS)" "BITS64=$(ECL_BITS64)" $(CP) gmp.lib ..\eclgmp.lib $(CP) gmp.h ..\ecl\gmp.h cd .. After building: dumpbin /exports ecl.dll | grep int64 1040 40F 000B44E0 ecl_make_int64_t 1058 421 000B4470 ecl_make_uint64_t 1176 497 000B4380 ecl_to_int64_t 1182 49D 000B4270 ecl_to_uint64_t ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ Ecls-list mailing list Ecls-list@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ecls-list