Building VM on windows: lining problem

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
12 messages Options
Reply | Threaded
Open this post in threaded view
|

Building VM on windows: lining problem

philippeback
 
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"

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
Reply | Threaded
Open this post in threaded view
|

Re: Building VM on windows: lining problem

EstebanLM
 



On Tue, Nov 19, 2013 at 11:01 AM, [hidden email] <[hidden email]> wrote:
 
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


Reply | Threaded
Open this post in threaded view
|

Re: Building VM on windows: lining problem

philippeback
In reply to this post by philippeback
 
I found why the vmVersionInfo.h isn't there...

build.sh contains:

#!bash

if [ ! -e vmVersionInfo.h ]; then
../codegen-scripts/extract-commit-info.sh
fi
cmake -G "MSYS Makefiles" .
make


and ../codegen-scripts/extract-commit-info.sh is nowhere to be found from the git clone...

It lives in scripts/ 

Phil




On Tue, Nov 19, 2013 at 11:01 AM, [hidden email] <[hidden email]> wrote:
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"

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

Reply | Threaded
Open this post in threaded view
|

Re: Building VM on windows: lining problem

EstebanLM
 
mmm... yes, Camillo changed the path and forgot to change the script generation... I will fix it. 



On Tue, Nov 19, 2013 at 11:16 AM, [hidden email] <[hidden email]> wrote:
 
I found why the vmVersionInfo.h isn't there...

build.sh contains:

#!bash

if [ ! -e vmVersionInfo.h ]; then
../codegen-scripts/extract-commit-info.sh
fi
cmake -G "MSYS Makefiles" .
make


and ../codegen-scripts/extract-commit-info.sh is nowhere to be found from the git clone...

It lives in scripts/ 

Phil




On Tue, Nov 19, 2013 at 11:01 AM, [hidden email] <[hidden email]> wrote:
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"

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



Reply | Threaded
Open this post in threaded view
|

Re: Building VM on windows: lining problem

Camillo Bruni-3
In reply to this post by philippeback
 
ok, you just discovered a minor mess... onto fixing it quickly..

On 2013-11-19, at 11:16, [hidden email] wrote:

> I found why the vmVersionInfo.h isn't there...
>
> build.sh contains:
>
> #!bash
>
> if [ ! -e vmVersionInfo.h ]; then
> ../codegen-scripts/extract-commit-info.sh
> fi
> cmake -G "MSYS Makefiles" .
> make
>
>
> and ../codegen-scripts/extract-commit-info.sh is nowhere to be found from the git clone...
>
> It lives in scripts/
>
> Phil
>
>
>
>
> On Tue, Nov 19, 2013 at 11:01 AM, [hidden email] <[hidden email]> wrote:
> 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"
>
> 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
>


signature.asc (457 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Building VM on windows: lining problem

philippeback
 
I am running on Windows 8.1 and this crtdll missing thing worried me as this is a pretty common dll on Windows.

So, I had a look at Pharo.exe from Zeroconf and got the following when looking at it in depends.exe


Looks like the dll is missing from the system. The fact that some other module loads msvcrt.dll should compensate for it since it is a kind of clone. (there are a lot of missing DLLs listed as well.


Still, that's not too clean.

What Windows version do you guys do the CI on ? I'd like to know where crtdll is because it is nowhere to be found on my windows (sub)folders.

And msvcrt is what is installed with the mingw installer specified in the instructions.

Phil




---
Philippe Back
Dramatic Performance Improvements
Mob: +32(0) 478 650 140 | Fax: +32 (0) 70 408 027
Blog: http://philippeback.be | Twitter: @philippeback

High Octane SPRL
rue cour Boisacq 101 | 1301 Bierges | Belgium

Pharo Consortium Member - http://consortium.pharo.org/
Featured on the Software Process and Measurement Cast - http://spamcast.libsyn.com
Sparx Systems Enterprise Architect and Ability Engineering EADocX Value Added Reseller
 



On Tue, Nov 19, 2013 at 11:20 AM, Camillo Bruni <[hidden email]> wrote:
 
ok, you just discovered a minor mess... onto fixing it quickly..

On 2013-11-19, at 11:16, [hidden email] wrote:

> I found why the vmVersionInfo.h isn't there...
>
> build.sh contains:
>
> #!bash
>
> if [ ! -e vmVersionInfo.h ]; then
>       ../codegen-scripts/extract-commit-info.sh
> fi
> cmake -G "MSYS Makefiles" .
> make
>
>
> and ../codegen-scripts/extract-commit-info.sh is nowhere to be found from the git clone...
>
> It lives in scripts/
>
> Phil
>
>
>
>
> On Tue, Nov 19, 2013 at 11:01 AM, [hidden email] <[hidden email]> wrote:
> 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"
>
> 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
>




Screenshot (2).png (385K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Building VM on windows: lining problem

philippeback
In reply to this post by Camillo Bruni-3
 
Continuing on the story...

There was no crtdll.dll on my Windows 8.0 box either.

So, I tried some black magic:

copied msvcrt.dll over to crtdll.dll in Windows\System32
copied libmsvcrt.a over to libcrtdll.a in MinGW\lib

Now, of course the linking goes fine.

I started the vm, which opened the usual filedialog.

I picked an image file and then got the message in attach.

Are you guys building on a 32-bit windows box so that you do not get these problems ?

Phil





On Tue, Nov 19, 2013 at 11:20 AM, Camillo Bruni <[hidden email]> wrote:
 
ok, you just discovered a minor mess... onto fixing it quickly..

On 2013-11-19, at 11:16, [hidden email] wrote:

> I found why the vmVersionInfo.h isn't there...
>
> build.sh contains:
>
> #!bash
>
> if [ ! -e vmVersionInfo.h ]; then
>       ../codegen-scripts/extract-commit-info.sh
> fi
> cmake -G "MSYS Makefiles" .
> make
>
>
> and ../codegen-scripts/extract-commit-info.sh is nowhere to be found from the git clone...
>
> It lives in scripts/
>
> Phil
>
>
>
>
> On Tue, Nov 19, 2013 at 11:01 AM, [hidden email] <[hidden email]> wrote:
> 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"
>
> 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
>




Capture.PNG (17K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Building VM on windows: lining problem

philippeback
In reply to this post by Camillo Bruni-3
 
Well, after searching more, crtdll.dll lives in c:\Windows\SysWOW64, just seems it is not found by the build process.

I copied it straight into C:\MinGW\bin and be it.

But the issue is not there, it is with the time_t 32 bit problem.

Got a look into the .h files and time_t 32 bit is the 2038 unix year issue, where time_t 64 bit alleviates it.


Here is the part of time.h

#ifndef _TIME32_T_DEFINED
typedef __int32 __time32_t;
#define _TIME32_T_DEFINED
#endif

#ifndef _TIME64_T_DEFINED
/* A 64-bit time_t to get to Y3K */
typedef __int64 __time64_t;
#define _TIME64_T_DEFINED
#endif

#ifndef _TIME_T_DEFINED
# if defined(_USE_32BIT_TIME_T)
   typedef __time32_t time_t;
# else
   typedef __time64_t time_t;
# endif /* _USE_32BIT_TIME_T */
# define _TIME_T_DEFINED
#endif


So, I guess we need to have some -D_USE_32BIT_TIME_T defined somewhere in CMake and which goes missing...


---
Philippe Back
Dramatic Performance Improvements
Mob: +32(0) 478 650 140 | Fax: +32 (0) 70 408 027
Blog: http://philippeback.be | Twitter: @philippeback

High Octane SPRL
rue cour Boisacq 101 | 1301 Bierges | Belgium

Pharo Consortium Member - http://consortium.pharo.org/
Featured on the Software Process and Measurement Cast - http://spamcast.libsyn.com
Sparx Systems Enterprise Architect and Ability Engineering EADocX Value Added Reseller
 



On Tue, Nov 19, 2013 at 11:20 AM, Camillo Bruni <[hidden email]> wrote:
 
ok, you just discovered a minor mess... onto fixing it quickly..

On 2013-11-19, at 11:16, [hidden email] wrote:

> I found why the vmVersionInfo.h isn't there...
>
> build.sh contains:
>
> #!bash
>
> if [ ! -e vmVersionInfo.h ]; then
>       ../codegen-scripts/extract-commit-info.sh
> fi
> cmake -G "MSYS Makefiles" .
> make
>
>
> and ../codegen-scripts/extract-commit-info.sh is nowhere to be found from the git clone...
>
> It lives in scripts/
>
> Phil
>
>
>
>
> On Tue, Nov 19, 2013 at 11:01 AM, [hidden email] <[hidden email]> wrote:
> 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"
>
> 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
>



Reply | Threaded
Open this post in threaded view
|

Re: Building VM on windows: lining problem

philippeback
In reply to this post by Camillo Bruni-3
 

---
Philippe Back
Dramatic Performance Improvements
Mob: +32(0) 478 650 140 | Fax: +32 (0) 70 408 027
Blog: http://philippeback.be | Twitter: @philippeback

High Octane SPRL
rue cour Boisacq 101 | 1301 Bierges | Belgium

Pharo Consortium Member - http://consortium.pharo.org/
Featured on the Software Process and Measurement Cast - http://spamcast.libsyn.com
Sparx Systems Enterprise Architect and Ability Engineering EADocX Value Added Reseller
 



On Tue, Nov 19, 2013 at 11:20 AM, Camillo Bruni <[hidden email]> wrote:
 
ok, you just discovered a minor mess... onto fixing it quickly..

On 2013-11-19, at 11:16, [hidden email] wrote:

> I found why the vmVersionInfo.h isn't there...
>
> build.sh contains:
>
> #!bash
>
> if [ ! -e vmVersionInfo.h ]; then
>       ../codegen-scripts/extract-commit-info.sh
> fi
> cmake -G "MSYS Makefiles" .
> make
>
>
> and ../codegen-scripts/extract-commit-info.sh is nowhere to be found from the git clone...
>
> It lives in scripts/
>
> Phil
>
>
>
>
> On Tue, Nov 19, 2013 at 11:01 AM, [hidden email] <[hidden email]> wrote:
> 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"
>
> 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
>



Reply | Threaded
Open this post in threaded view
|

Re: Building VM on windows: lining problem

philippeback
In reply to this post by Camillo Bruni-3
 
I did a full fresh clone of the repo and now, there is a cairo issue I hadn't before:

checking for cairo's PNG functions feature...
configure: WARNING: Could not find libpng in the pkg-config search path
checking whether cairo's PNG functions feature could be enabled... no
configure: error: recommended PNG functions feature could not be enabled
make[3]: *** [thirdparty/out/bin/libcairo-2.dll] Error 1
make[2]: *** [thirdParty/cairo/CMakeFiles/cairo.dir/all] Error 2
make[1]: *** [thirdParty/cairo/CMakeFiles/cairo.dir/rule] Error 2
make: *** [cairo] Error 2

Looks like the build stuff is quite f*kced up on a 64-bit Windows 8 OS and current MinGW.

Phil 


On Tue, Nov 19, 2013 at 11:20 AM, Camillo Bruni <[hidden email]> wrote:
 
ok, you just discovered a minor mess... onto fixing it quickly..

On 2013-11-19, at 11:16, [hidden email] wrote:

> I found why the vmVersionInfo.h isn't there...
>
> build.sh contains:
>
> #!bash
>
> if [ ! -e vmVersionInfo.h ]; then
>       ../codegen-scripts/extract-commit-info.sh
> fi
> cmake -G "MSYS Makefiles" .
> make
>
>
> and ../codegen-scripts/extract-commit-info.sh is nowhere to be found from the git clone...
>
> It lives in scripts/
>
> Phil
>
>
>
>
> On Tue, Nov 19, 2013 at 11:01 AM, [hidden email] <[hidden email]> wrote:
> 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"
>
> 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
>



Reply | Threaded
Open this post in threaded view
|

Re: Building VM on windows: lining problem

philippeback
In reply to this post by Camillo Bruni-3
 
I've traced the issue down to 

Philippe@gravitation7 ~/pharo-vm/build
$ pkg-config --cflags libpng
Package libpng was not found in the pkg-config search path.
Perhaps you should add the directory containing `libpng.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libpng' found

Philippe@gravitation7 ~/pharo-vm/build
$ echo $PKG_CONFIG_PATH
/home/Philippe/pharo-vm/build/thirdParty/out/lib/pkgconfig


So, looks like pkg-config doesn't picks the PKG_CONFIG_PATH var and then cannot find libpng while building cairo.

Ah, damn...



---
Philippe Back
Dramatic Performance Improvements
Mob: +32(0) 478 650 140 | Fax: +32 (0) 70 408 027
Blog: http://philippeback.be | Twitter: @philippeback

High Octane SPRL
rue cour Boisacq 101 | 1301 Bierges | Belgium

Pharo Consortium Member - http://consortium.pharo.org/
Featured on the Software Process and Measurement Cast - http://spamcast.libsyn.com
Sparx Systems Enterprise Architect and Ability Engineering EADocX Value Added Reseller
 



On Tue, Nov 19, 2013 at 11:20 AM, Camillo Bruni <[hidden email]> wrote:
 
ok, you just discovered a minor mess... onto fixing it quickly..

On 2013-11-19, at 11:16, [hidden email] wrote:

> I found why the vmVersionInfo.h isn't there...
>
> build.sh contains:
>
> #!bash
>
> if [ ! -e vmVersionInfo.h ]; then
>       ../codegen-scripts/extract-commit-info.sh
> fi
> cmake -G "MSYS Makefiles" .
> make
>
>
> and ../codegen-scripts/extract-commit-info.sh is nowhere to be found from the git clone...
>
> It lives in scripts/
>
> Phil
>
>
>
>
> On Tue, Nov 19, 2013 at 11:01 AM, [hidden email] <[hidden email]> wrote:
> 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"
>
> 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
>



Reply | Threaded
Open this post in threaded view
|

Re: Building VM on windows: lining problem

Igor Stasenko
 
if i remember, you can pass pkg-config path in command line
(no need for env var).. this is what i was using , if i remember:

CMWin32Cairo>>#build
    gen
        puts:
'
add_custom_command(OUTPUT "${libcairoInstalled}"
    COMMAND ./configure --prefix=''${installPrefix}'' PKG_CONFIG="${pkgconfigPath}"
        PKG_CONFIG_PATH="${installPrefix}/lib/pkgconfig" CFLAGS="-m32 -march=pentium4 -I${installPrefix}/include" LDFLAGS="-m32 -march=pentium4 -L${installPrefix}/lib"
        --disable-silent-rules --disable-xlib --disable-dependency-tracking

so the question is to verify that ${pkgconfigPath} variable is properly set
(and not ignored by configure/cairo makefile.. well it shouldn't since it worked before)

You can do

yourBuildDir> make VERBOSE=1 cairo

to see all output




On 19 November 2013 15:57, [hidden email] <[hidden email]> wrote:
 
I've traced the issue down to 

Philippe@gravitation7 ~/pharo-vm/build
$ pkg-config --cflags libpng
Package libpng was not found in the pkg-config search path.
Perhaps you should add the directory containing `libpng.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libpng' found

Philippe@gravitation7 ~/pharo-vm/build
$ echo $PKG_CONFIG_PATH
/home/Philippe/pharo-vm/build/thirdParty/out/lib/pkgconfig


So, looks like pkg-config doesn't picks the PKG_CONFIG_PATH var and then cannot find libpng while building cairo.

Ah, damn...



---
Philippe Back
Dramatic Performance Improvements
Mob: <a href="tel:%2B32%280%29%20478%20650%20140" value="+32478650140" target="_blank">+32(0) 478 650 140 | Fax: <a href="tel:%2B32%20%280%29%2070%20408%20027" value="+3270408027" target="_blank">+32 (0) 70 408 027
Blog: http://philippeback.be | Twitter: @philippeback

High Octane SPRL
rue cour Boisacq 101 | 1301 Bierges | Belgium

Pharo Consortium Member - http://consortium.pharo.org/
Featured on the Software Process and Measurement Cast - http://spamcast.libsyn.com
Sparx Systems Enterprise Architect and Ability Engineering EADocX Value Added Reseller
 



On Tue, Nov 19, 2013 at 11:20 AM, Camillo Bruni <[hidden email]> wrote:
 
ok, you just discovered a minor mess... onto fixing it quickly..

On 2013-11-19, at 11:16, [hidden email] wrote:

> I found why the vmVersionInfo.h isn't there...
>
> build.sh contains:
>
> #!bash
>
> if [ ! -e vmVersionInfo.h ]; then
>       ../codegen-scripts/extract-commit-info.sh
> fi
> cmake -G "MSYS Makefiles" .
> make
>
>
> and ../codegen-scripts/extract-commit-info.sh is nowhere to be found from the git clone...
>
> It lives in scripts/
>
> Phil
>
>
>
>
> On Tue, Nov 19, 2013 at 11:01 AM, [hidden email] <[hidden email]> wrote:
> 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"
>
> 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
>







--
Best regards,
Igor Stasenko.