develooper Front page | perl.perl5.porters | Postings from April 2007

[PATCH] Restore Win64 compilation with the Windows Platform SDK

Thread Next
From:
Jan Dubois
Date:
April 9, 2007 17:30
Subject:
[PATCH] Restore Win64 compilation with the Windows Platform SDK
Message ID:
4kll13df3tndn8alp54gi9ur9jmq063aij@4ax.com
The Windows Platform SDK contains 64-bit compilers for x64 (and IA64)
that claim to be VC8, but really aren't.  They are earlier versions
of the compiler before VS2005 was released, and they are different in
at least one important aspect:

The Platform SDK compilers link against the 64-bit version of MSVCRT.dll
instead of MSVCR80.DLL.  They are almost like a 64-bit version of VC6.
There are 2 implications for Perl:

1) There is no _set_invalid_parameter_handler() mechanism.
2) There are no MSVCR80.DLL related manifests to add.

I found a different #defined symbol that I could check for in win32.c
to see if the _set_invalid_parameter_handler() typedef is present in
stdlib.h.

Unfortunately I can't think of anything simple to disable embedding
of manifests in MakeMaker.  The attached patch disables the manifest
stuff for 64-bit Perl versions.  This re-enables building with the
Platform SDK, but will probably break VS2005 64-bit.  Note that only
the Professional edition and higher of VS2005 include the 64-bit
compiler; the Platform SDK compiler is the only free one, AFAIK.

Ideally Config.pm should record if Perl itself was built using
VS2005.  I'm not sure if _anyone_ is building Win64 builds using
VS2005, so I think supporting just the Platform SDK is fine for now.

Cheers,
-Jan


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