develooper Front page | perl.perl5.porters | Postings from August 2011

Re: Error building on windows 7 x64 with nmake

Thread Previous | Thread Next
From:
Nicholas Clark
Date:
August 13, 2011 13:37
Subject:
Re: Error building on windows 7 x64 with nmake
Message ID:
20110813203710.GN23881@plum.flirble.org
On Sat, Aug 13, 2011 at 10:26:12PM +0200, register wrote:
> When I try to build from source in Windows 7, x64, visual studio 2010 full,
> perl-5.14.1 I get the following error:

Previous line is

	cl -c -I.. -nologo -GF -W3 -I..\lib\CORE -I.\include -I. -I.. -DWIN32 -D_CONSOLE -DNO_STRICT -DWIN64 -DCONSERVATIVE -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DPERLDLL -DPERL_CORE   -Od -MD -Zi -DDEBUGGING -fp:precise  -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -Fo..\generate_uudmap.obj ..\generate_uudmap.c
generate_uudmap.c


>         link -subsystem:console -out:..\generate_uudmap.exe
> @C:\Users\lucar\AppD
> ata\Local\Temp\nmD6A3.tmp
> ..\generate_uudmap.obj : fatal error LNK1112: module machine type 'X86'
> conflict
> s with target machine type 'x64'
> NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio
> 10.0
> \VC\BIN\link.EXE"' : return code '0x458'
> 
> 
> Here you can find my win32/Makefile: http://pastebin.com/nxmTYsEG. It's all
> pretty default stuff and only directories, compiler version and debug are
> set.
> 
> Here there is the complete log from nmake: http://pastebin.com/YjjTtaX9.

As it's 55 lines, I think that it would have been better to include it in
the e-mail. I don't use or know Windows [yes, really :-)], but in this:

Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
Copyright (C) Microsoft Corporation.  All rights reserved.

	del /f config.h
Impossibile trovare c:\build\perl-5.14.1\win32\config.h
	copy config_H.vc64 config.h
        1 file copiati.
	if not exist ".\mini" mkdir ".\mini"
	cl -c -nologo -GF -W3 -I..\lib\CORE -I.\include -I. -I.. -DWIN32 -D_CONSOLE -DNO_STRICT -DWIN64 -DCONSERVATIVE -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DPERLDLL -DPERL_CORE   -Od -MD -Zi -DDEBUGGING -fp:precise -DPERL_EXTERNAL_GLOB -DPERL_IS_MINIPERL -Fo.\mini\av.obj ..\av.c
av.c
..\av.c(41) : warning C4244: '=' : conversion from '__int64' to 'I32', possible loss of data
..\av.c(91) : warning C4244: 'function' : conversion from '__int64' to 'size_t', possible loss of data
..\av.c(99) : warning C4244: '=' : conversion from '__int64' to 'I32', possible loss of data
..\av.c(135) : warning C4244: '=' : conversion from '__int64' to 'I32', possible loss of data
..\av.c(149) : warning C4244: '=' : conversion from 'IV' to 'I32', possible loss of data
..\av.c(152) : warning C4244: 'function' : conversion from '__int64' to 'size_t', possible loss of data
..\av.c(160) : warning C4244: '=' : conversion from '__int64' to 'I32', possible loss of data
..\av.c(228) : warning C4244: '+=' : conversion from '__int64' to 'I32', possible loss of data
..\av.c(246) : warning C4244: '+=' : conversion from '__int64' to 'I32', possible loss of data
..\av.c(318) : warning C4244: '+=' : conversion from '__int64' to 'I32', possible loss of data
..\av.c(332) : warning C4244: '+=' : conversion from '__int64' to 'I32', possible loss of data
..\av.c(455) : warning C4244: 'initializing' : conversion from '__int64' to 'I32', possible loss of data
..\av.c(492) : warning C4244: 'initializing' : conversion from '__int64' to 'I32', possible loss of data
..\av.c(551) : warning C4244: 'function' : conversion from '__int64' to 'I32', possible loss of data
..\av.c(657) : warning C4244: 'initializing' : conversion from '__int64' to 'const I32', possible loss of data
..\av.c(732) : warning C4244: 'return' : conversion from '__int64' to 'I32', possible loss of data
..\av.c(768) : warning C4244: 'initializing' : conversion from '__int64' to 'I32', possible loss of data
..\av.c(831) : warning C4244: '+=' : conversion from '__int64' to 'I32', possible loss of data
..\av.c(850) : warning C4244: '+=' : conversion from '__int64' to 'I32', possible loss of data
..\av.c(921) : warning C4244: '+=' : conversion from '__int64' to 'I32', possible loss of data
..\av.c(947) : warning C4244: '+=' : conversion from '__int64' to 'I32', possible loss of data
	cl -c -nologo -GF -W3 -I..\lib\CORE -I.\include -I. -I.. -DWIN32 -D_CONSOLE -DNO_STRICT -DWIN64 -DCONSERVATIVE -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DPERLDLL -DPERL_CORE   -Od -MD -Zi -DDEBUGGING -fp:precise -DPERL_EXTERNAL_GLOB -DPERL_IS_MINIPERL -Fo.\mini\deb.obj ..\deb.c
deb.c
..\deb.c(266) : warning C4244: '=' : conversion from '__int64' to 'I32', possible loss of data
	cl -c -nologo -GF -W3 -I..\lib\CORE -I.\include -I. -I.. -DWIN32 -D_CONSOLE -DNO_STRICT -DWIN64 -DCONSERVATIVE -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DPERLDLL -DPERL_CORE   -Od -MD -Zi -DDEBUGGING -fp:precise -DPERL_EXTERNAL_GLOB -DPERL_IS_MINIPERL -Fo.\mini\doio.obj ..\doio.c
doio.c
..\doio.c(322) : warning C4244: '=' : conversion from 'UV' to 'int', possible loss of data
..\doio.c(1617) : warning C4244: '=' : conversion from 'IV' to 'I32', possible loss of data
..\doio.c(1656) : warning C4244: '=' : conversion from 'IV' to 'I32', possible loss of data
..\doio.c(1657) : warning C4244: '=' : conversion from 'IV' to 'I32', possible loss of data
..\doio.c(1711) : warning C4244: '=' : conversion from 'IV' to 'I32', possible loss of data
..\doio.c(1757) : warning C4244: '=' : conversion from 'IV' to 'I32', possible loss of data
..\doio.c(1773) : warning C4244: '=' : conversion from 'IV' to 'I32', possible loss of data
	cl -c -nologo -GF -W3 -I..\lib\CORE -I.\include -I. -I.. -DWIN32 -D_CONSOLE -DNO_STRICT -DWIN64 -DCONSERVATIVE -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DPERLDLL -DPERL_CORE   -Od -MD -Zi -DDEBUGGING -fp:precise -DPERL_EXTERNAL_GLOB -DPERL_IS_MINIPERL -Fo.\mini\doop.obj ..\doop.c
doop.c
	cl -c -nologo -GF -W3 -I..\lib\CORE -I.\include -I. -I.. -DWIN32 -D_CONSOLE -DNO_STRICT -DWIN64 -DCONSERVATIVE -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DPERLDLL -DPERL_CORE   -Od -MD -Zi -DDEBUGGING -fp:precise -DPERL_EXTERNAL_GLOB -DPERL_IS_MINIPERL -Fo.\mini\dump.obj ..\dump.c
dump.c
..\dump.c(2322) : warning C4244: 'function' : conversion from 'const PADOFFSET' to 'I32', possible loss of data
	cl -c -I.. -nologo -GF -W3 -I..\lib\CORE -I.\include -I. -I.. -DWIN32 -D_CONSOLE -DNO_STRICT -DWIN64 -DCONSERVATIVE -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DPERLDLL -DPERL_CORE   -Od -MD -Zi -DDEBUGGING -fp:precise  -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -Fo..\generate_uudmap.obj ..\generate_uudmap.c
generate_uudmap.c
	link -subsystem:console -out:..\generate_uudmap.exe @C:\Users\lucar\AppData\Local\Temp\nm21E2.tmp
..\generate_uudmap.obj : fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64'
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\link.EXE"' : return code '0x458'
Stop.


I'm suspicious about all the conversion warnings. I'm assuming that UV and IV
are 64 bit types, and __int64 will definitely be a 64 bit type. Surely they
shouldn't be there if everything is working correctly?

I had a look at README.win32, and (as best I can work out) it has no specific
instructions on what to change if one is building on a 64 bit system. Is that
correct?

I know that win32/config.vc64 exists, distinct from win32/config.vc
Is there something one needs to do to swap to the 64 bit config?

Nicholas Clark

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About