Monday, April 7, 2014

Why did Extutils::ParseXS fail tests after building perl on Windows 8.1?

After installing Windows 8.1, the first thing I wanted to build was Gvim. I am not a Vim expert by any means, but it is the only editor that makes me feel "at home" on multiple systems. When I was using Windows XP, building Gvim using MSVC 2010 Express had been a breeze, so, without much thinking or research, I figured installing MS Visual Studio 2013 Express for Windows Desktop applications would be the way to go. It turned out it wasn't. Instead, I had to download the SDK for Windows 7 to build Gvim.

But, when that worked, including the installation of the shell extension, I was emboldened to build perl. Seemed straightforward enough as it was something I had done before. Lo and behold, everything seemed to go OK, but a bunch of tests for Module::Build and ExtUtils::ParseXS failed. The failures in Module::Build tests were also related to XS.

Hmmmmm …

The good news is I don't think there is anything wrong with Extutils::ParseXS.

A little manual playing around revealed that creating a dynamic library was failing. And, while the error messages were those shown in this Microsoft Knowledgebase article, the build environment is not the same, and in fact, there doesn't seem to be a bufferoverflowU.lib file under the Windows 7 SDK tree. Where is one under the Windows 8 SDK, but that one does not actually provide a command line environment and you have to use the VS 2013 Express tools which had failed me earlier.

The problem could be in the tools I used. Or, it might be related to how Extutils::CBuilder works with those tools.

I think a little bit of environmental cleanup is in order before I try this from scratch again.

PS: Or, I could just use Strawberry Perl, but my goals do not just consist of "install a perl and go" at this point ;-)

No comments:

Post a Comment