Re: Problem with building XS module on AS 1401

[email protected] (Erland Sommarskog)
Newsgroups perl.xs
Organization Erland Sommarskog
Message-ID <[email protected]>
"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.
 
>> Revelant information may be that I've build my module on an x64 machine,
>> using the C++ compiler from either VS2005 or VS2010. (The module does
>> not compile with earlier versions.)

Tried tonight to build on a pure 32-bit machine. No change.
 
> Jan Dubois possibly has some ideas (and definitely has a better 
> understanding) about this. If he doesn't turn up here, and you wish to get 
> some feedback from him, try posting to the perl-win32-users list hosted by 
> ActiveState - he seems to keep a close eye on that list.
 
Seems like Jan turns up whenever I ask a Perl question - unless I ask
it in ActiveStates own forums. This time he is silent, but vacation 
is commonplace this time of year.


-- 
Erland Sommarskog, Stockholm, [email protected]
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.