Re: Problem with building XS module on AS 1401

[email protected] ("Sisyphus")
Newsgroups perl.xs
Message-ID <19184E9C4D8B416FA90E197D63CF651C@desktop2>
----- Original Message ----- 
From: "Erland Sommarskog" <[email protected]>
To: <[email protected]>
Sent: Wednesday, August 03, 2011 7:44 AM
Subject: Re: Problem with building XS module on AS 1401


> "Sisyphus" ([email protected]) writes:
>> If your 32-bit perl, and therefore also your binaries, use a runtime
>> other than msvcrt.dll (eg msvcr80.dll), then that also can cause *big*
>> problems - in the form of a crash. ActivePerl uses the msvcrt.dll
>> runtime, and  that runtime won't know what to make of any handles passed
>> to it that were created by a different runtime. If that's happening with
>> your 32-bit builds, then the only solution I know of is to use a
>> compiler (and a perl) that *does* use the msvcrt.dll runtime - eg MSVC++
>> 6.0 or MinGW (and a perl built with the same).
>
> It occurred to me that I use the /MT option to compile the MSVCRTnn dll
> statically. I tried removing that option. No change. But then I realised
> I had defined CCFLAGS for another option as well. Removed that. And
> that turned the tables. To the worse, since linking now failed with
> tons of errors referring to the C Run-time library.
>
>> If that is the problem, I would also think you would then get the same
>> issue with earlier versions of ActivePerl. Did that happen ?
>
> No. And it does not occur with ActivePerl 64-bit.
>
>> Does the problem arise only when you use *ActivePerl* with your compiler
>> to build your module ?
>
> So far, yes.
>
>> Do you get a similar problem if you take the binaries that tested fine on
>> *your* build of perl-5.14.1, and use them with ActivePerl-5.14.1 ?
>
> I've yet to test that. But if the problem is the mix of MSVCRT versions,
> this should not help.
>

True. But if those binaries *do* work fine with ActivePerl-5.14.1 then the 
problem is probably *not* the mixing of runtimes.
Of course, the fact that it happens only with the 32-bit perl-5.14 suggests 
that it's something else, anyway - and you may well be on the right track by 
investigating the compilation flags. (Have you tried a different 
optimization ?)

Cheers,
Rob
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.