On Tue, Nov 19, 2013 at 11:01 AM, phil@highoctane.be phil@highoctane.bewrote:
I've been moving forward with building the VM for Windows from the GitHub sources with MinGW.
Now, to get the thing to compile, I had to replace the oft_t things by _oft_t, same for the 64 flavor.
So, modifiying two header files, one being mingw.h where I put #define oft_t _oft_t at the end.
This did the trick and I now have all plugins/dlls building fine:
FT2Plugin.dll libcairo-2.dll libeay32.dll libfreetype-6.dll libfreetype.dll.a libFT2Plugin.dll.a libpixman-1-0.dll libpng-3.dll libSqueakFFIPrims.dll.a libSqueakSSL.dll.a SqueakFFIPrims.dll SqueakSSL.dll ssleay32.dll zlib1.dll
are in results/
Also, to get there, one has to create a vmVersionInfo.h file in platforms\Cross\vm with something in the REVISION_STRING
#define REVISION_STRING "Pharo VM - Philippe Back from GitHub Sources 20131119"
are you following the instructions? because this part at least is auto-generated, you should not doit by hand. check in the generated build.sh... all the needed sequence is there.
and in any case, if you execute
build$ ../script/extract-commit-info.sh
it is also generated.
cheers, Esteban
I wonder why this isn't something automagically generated in the process as it seems that the CI build has something.
The last step is getting Pharo.exe to link but this doesn't work:
Linking C executable /C/MinGW/msys/1.0/home/Philippe/pharo-vm/results/Pharo.exe c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot fin d -lcrtdll collect2.exe: error: ld returned 1 exit status make[2]: *** [C:/MinGW/msys/1.0/home/Philippe/pharo-vm/results/Pharo.exe] Error 1 make[1]: *** [CMakeFiles/Pharo.dir/all] Error 2 make: *** [all] Error 2
Looks like a library path is wrong or else.
Idea?
Also, there are quite a number of warnings spit out during the compiling process all over the place, more than the Mac VM build I think.
e.g.
[ 92%] Building C object CMakeFiles/Pharo.dir/C_/MinGW/msys/1.0/home/Philippe/ph aro-vm/platforms/win32/vm/sqWin32Prefs.c.obj In file included from C:/MinGW/msys/1.0/home/Philippe/pharo-vm/platforms/Cross/v m/sq.h:193:0, from c:/MinGW/msys/1.0/home/Philippe/pharo-vm/platforms/win32/v m/sqWin32Prefs.c:20:
C:/MinGW/msys/1.0/home/Philippe/pharo-vm/platforms/win32/vm/sqPlatformSpecific.h :52:0: warning: "VM_EXPORT" redefined [enabled by default] # define VM_EXPORT __declspec( dllexport ) ^ In file included from c:/MinGW/msys/1.0/home/Philippe/pharo-vm/platforms/win32/v m/sqWin32Prefs.c:20:0: C:/MinGW/msys/1.0/home/Philippe/pharo-vm/platforms/Cross/vm/sq.h:48:0: note: thi s is the location of the previous definition #define VM_EXPORT ^ [ 93%] Building C object CMakeFiles/Pharo.dir/C_/MinGW/msys/1.0/home/Philippe/ph aro-vm/platforms/win32/vm/sqWin32Utils.c.obj In file included from C:/MinGW/msys/1.0/home/Philippe/pharo-vm/platforms/Cross/v m/sq.h:193:0, from c:/MinGW/msys/1.0/home/Philippe/pharo-vm/platforms/win32/v m/sqWin32Utils.c:14:
C:/MinGW/msys/1.0/home/Philippe/pharo-vm/platforms/win32/vm/sqPlatformSpecific.h :52:0: warning: "VM_EXPORT" redefined [enabled by default] # define VM_EXPORT __declspec( dllexport ) ^ In file included from c:/MinGW/msys/1.0/home/Philippe/pharo-vm/platforms/win32/v m/sqWin32Utils.c:14:0: C:/MinGW/msys/1.0/home/Philippe/pharo-vm/platforms/Cross/vm/sq.h:48:0: note: thi s is the location of the previous definition #define VM_EXPORT
Phil