Front page | perl.perl5.porters |
Postings from June 2010
RE: Building 64-bit perl on Win32
Thread Previous
|
Thread Next
From:
Steve Hay
Date:
June 29, 2010 08:19
Subject:
RE: Building 64-bit perl on Win32
Message ID:
1B32FF956ABF414C9BCE5E487A1497E707130D2B@ukmail02.planit.group
Jan Dubois wrote on 2010-06-28:
> On Mon, 28 Jun 2010, Steve Hay wrote:
>> What are the options for building a 64-bit perl on Win32 using
>> Microsoft tools?
>>
>> The Makefile says that the SDK 64-bit compiler is supported. Does
this
>> mean that the 64-bit compiler in VS2008 is also supported? If so, can
>> it be built on a 32-bit OS, or does it have to be built on a 64-bit
OS?
>>
>> (I'm trying to use the VS2008 64-bit compiler (the x86_amd64 one),
but
>> working on a 32-bit OS, and I'm not having any luck.)
> I don't actually know if the 64-bit compiler is still a 32-bit
> executable itself, but it wouldn't work anyways, as the Perl build
> process requires you to run the miniperl.exe that you have just built.
>
> So _maybe_ it would be possible to build miniperl.exe with the 32-bit
> compiler, and then build the full perl.exe and all extensions with the
> 64-bit one, but the bundled Makefiles are not set up for this. I also
> see little utility in this, as you wouldn't be able to run the test
> suite either.
I think the x86_amd64 compiler is a 32-bit compiler that produces 64-bit
output, whereas the amd64 compiler is 64-bit itself, but I agree with
your comments about miniperl.exe and the test suite.
So I've now moved on to trying to build perl (5.12.1) with the 64-bit
compiler (amd64) on a 64-bit machine, but it still isn't working for me.
I opened up the standard VC++ x64 command prompt, set CCTYPE=MSVC90 in
the win32/Makefile (I'm using Visual Studio 2008 SP1), and typed nmake.
It started by emitting a mountain of warnings about type conversions for
every file that it compiles. Is that normal? Then it produced this
strange error message immediately after linking perl.exe:
..\miniperl.exe -I..\lib bin\exetype.pl ..\wperl.exe WINDOWS
'x' outside of string in unpack at bin\exetype.pl line 39.
NMAKE : fatal error U1077: '..\miniperl.exe' : return code '0xff'
Stop.
Line 39 in that file is:
($signature,$size,$magic) = unpack "Lx16Sx2S", $record;
What on earth has happened here?
Are there are any other options in the win32/Makefile that need setting?
The command-lines being echoed during the build definitely had -DWIN64
in the compiler options, so it's correctly spotted the
PROCESSOR_ARCHITECTURE (AMD64) okay. I don't see anything else that
needs setting.
Thread Previous
|
Thread Next