Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Warnings building Perl itself on Windows 64

by mpersico (Beadle)
on Sep 19, 2013 at 19:57 UTC ( #1054907=perlquestion: print w/ replies, xml ) Need Help??
mpersico has asked for the wisdom of the Perl Monks concerning the following question:

Strawberry's gcc-generated libs won't talk to Sybase's client libs, so I am back to compiling using VC2012, full edition.

-perl 5.18.1

-I'm on a Win7 machine, 64 bit.

-I'm using a 64 bit compiler:

U:\perlbuild\tools>cl Microsoft (R) C/C++ Optimizing Compiler Version 17.00.50727.1 for x64 Copyright (C) Microsoft Corporation. All rights reserved. usage: cl [ option... ] filename... [ /link linkoption... ] U:\perlbuild\tools>

I have read the README.win32 and set the appropriate values in the win32\Makefile file. But when I compile, I get lots of size mismatch warnings. Here is the unique set:

conversion from 'IV' to 'DWORD', possible loss of data conversion from 'IV' to 'I32', possible loss of data conversion from 'IV' to 'U32', possible loss of data conversion from 'IV' to 'const I32', possible loss of data conversion from 'IV' to 'const U32', possible loss of data conversion from 'IV' to 'const int', possible loss of data conversion from 'IV' to 'int', possible loss of data conversion from 'IV' to 'volatile U32', possible loss of data conversion from 'PADOFFSET' to 'I32', possible loss of data conversion from 'PADOFFSET' to 'U32', possible loss of data conversion from 'SOCKET' to 'int', possible loss of data conversion from 'STRLEN' to 'NV', possible loss of data conversion from 'UINT_PTR' to 'UINT', possible loss of data conversion from 'UV' to 'I32', possible loss of data conversion from 'UV' to 'NV', possible loss of data conversion from 'UV' to 'U32', possible loss of data conversion from 'UV' to 'const unsigned int', possible loss of data conversion from 'UV' to 'gid_t', possible loss of data conversion from 'UV' to 'int', possible loss of data conversion from 'UV' to 'unsigned int', possible loss of data conversion from '__int64' to 'I32', possible loss of data conversion from '__int64' to 'U16', possible loss of data conversion from '__int64' to 'U32', possible loss of data conversion from '__int64' to 'const I32', possible loss of data conversion from '__int64' to 'const U32', possible loss of data conversion from '__int64' to 'const int', possible loss of data conversion from '__int64' to 'const long', possible loss of data conversion from '__int64' to 'int', possible loss of data conversion from '__int64' to 'long', possible loss of data conversion from '__int64' to 'unsigned int', possible loss of data conversion from '__int64' to 'volatile I32', possible loss of data conversion from 'const IV' to 'I32', possible loss of data conversion from 'const IV' to 'int', possible loss of data conversion from 'const IV' to 'uid_t', possible loss of data conversion from 'const PADOFFSET' to 'I32', possible loss of data conversion from 'const UV' to 'I32', possible loss of data conversion from 'const UV' to 'U32', possible loss of data conversion from 'const UV' to 'gid_t', possible loss of data conversion from 'const UV' to 'uid_t', possible loss of data conversion from 'const __int64' to 'I32', possible loss of data conversion from 'fpos_t' to 'long', possible loss of data conversion from 'intptr_t' to 'int', possible loss of data conversion from 'size_t' to 'DWORD', possible loss of data conversion from 'size_t' to 'I32', possible loss of data conversion from 'size_t' to 'U32', possible loss of data conversion from 'size_t' to 'U8', possible loss of data conversion from 'size_t' to 'const I32', possible loss of data conversion from 'size_t' to 'const int', possible loss of data conversion from 'size_t' to 'int', possible loss of data conversion from 'size_t' to 'long', possible loss of data conversion from 'size_t' to 'unsigned int', possible loss of data conversion from 'size_t' to 'unsigned long', possible loss of data

I'm thinking I'm missing a flag setting somewhere. Here is a sample compile command:

cl -c -nologo -GF -W3 -I..\lib\CORE -I.\include -I. -I.. -DWIN32 - +D_CONSOLE -DNO_STRICT -DWIN64 -DCONSERVATIVE -D_CRT_SECURE_NO_DEPRECA +TE -D_CRT_NONSTDC_NO_DEPRECATE -DPERLDLL -DPERL_CORE -O1 -MD -Zi -D +NDEBUG -GL -fp:precise -DPERL_IS_MINIPERL -Fo.\mini\win32thread.obj w +in32thread.c

I'll keep testing, but if someone has done this and would like to point out if I am missing a flag somewhere, I'd appreciate it.

Thanks

Comment on Warnings building Perl itself on Windows 64
Select or Download Code
Re: Warnings building Perl itself on Windows 64
by BrowserUk (Pope) on Sep 19, 2013 at 21:36 UTC
    I'm thinking I'm missing a flag setting somewhere.

    No. Gobs of warnings is (unfortunately) quite normal when building Perl on Windows.


    With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.
      BrowserUk is correct. The 32 bit build should be warningless, but the 64 bit build is a sea of cast warning. Make sure your terminal is a chain printer and not a puny dot matrix before your try compiling 64 bit VC Perl.
Re: Warnings building Perl itself on Windows 64
by mpersico (Beadle) on Sep 23, 2013 at 00:45 UTC
    And then when I tried to link with some external libs, I got blowups galore. Since I don't really need any process to address more than 4GB of memory, I'm dropping back to 32 bits.
      And then when I tried to link with some external libs, I got blowups galore

      That shouldn't happen if the external libs were built with the same compiler that built perl.

      Cheers,
      Rob
Re: Warnings building Perl itself on Windows 64
by mpeppler (Vicar) on Sep 24, 2013 at 15:21 UTC
    I've never used strawberry perl - but under cygwin you HAVE to put the Sybase libs under c:\sql10 for things to work - maybe strawberry + gcc has a similar limitation?

    Michael

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1054907]
Approved by bulk88
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (8)
As of 2014-08-23 03:00 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (171 votes), past polls