From: Ben Morrow on

Quoth Dilbert <dilbert1999(a)gmail.com>:
> On 15 mai, 13:37, Ben Morrow <b...(a)morrow.me.uk> wrote:
> > Quoth Dilbert <dilbert1...(a)gmail.com>:
> > > I have tried the command vcvarsall with "amd64", "x64", "ia64",
> > > "x86_amd64" and with "x86_ia64", but no success:
> >
> > > ++ C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC>vcvarsall
> > > amd64
> > > ++ The specified configuration type is missing. �The tools for the
> > > ++ configuration might not be installed.
> > > Well, not surprising at all, because the corresponding sub directories
> > > ("bin\amd64", "bin\ia64", "bin\x86_amd64" and "bin\x86_ia64") simply
> > > do not exist:
> >
> > It looks like you've either downloaded the wrong package,
>
> I have downloaded it from
> http://msdn.microsoft.com/fr-fr/express/aa975050.aspx
>
> is this the correct package ?
> is this the latest package?

Unless you have a good reason not to, I'd always download the English
versions. I've no idea if it is the case here, but in the past some MS
products have had language-specific versions which were missing
features.

The English version of VC9 can be downloaded from
http://www.microsoft.com/express/Downloads/ . This isn't the latest
version, but that isn't important: what matters is that it matches the
version used to build your Perl, especially with recent MS compilers
which have a nasty habit of introducing incompatible versions of libc
all the time. I don't know which compiler AS use for their 64bit builds:
I thought it was VC7, but I don't have a 64bit Win32 machine on hand to
check. The free download of VC7 was called 'Visual C++ 2003 Express
Edition', and may or may not still be available; search microsoft.com.

FWIW, all of this mess is why I gave up on ActivePerl a while ago. I'd
recommend getting
http://strawberryperl.com/download/strawberry-perl-5.12.0.1-64bit-v2.msi
which includes the correct compiler as part of the install.

Ben

From: Dilbert on
On 15 mai, 16:53, Ben Morrow <b...(a)morrow.me.uk> wrote:
> Quoth Dilbert <dilbert1...(a)gmail.com>:
> > On 15 mai, 13:37, Ben Morrow <b...(a)morrow.me.uk> wrote:
> > > Quoth Dilbert <dilbert1...(a)gmail.com>:
> > > > I have tried the command vcvarsall with "amd64", "x64", "ia64",
> > > > "x86_amd64" and with "x86_ia64", but no success:
>
> > > > ++ C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC>vcvarsall
> > > > amd64
> > > > ++ The specified configuration type is missing.  The tools for the
> > > > ++ configuration might not be installed.
> > > > Well, not surprising at all, because the corresponding sub directories
> > > > ("bin\amd64", "bin\ia64", "bin\x86_amd64" and "bin\x86_ia64") simply
> > > > do not exist:
>
> > > It looks like you've either downloaded the wrong package,
>
> > I have downloaded it from
> >http://msdn.microsoft.com/fr-fr/express/aa975050.aspx
>
> > is this the correct package ?
> > is this the latest package?
>
> Unless you have a good reason not to, I'd always download the English
> versions. I've no idea if it is the case here, but in the past some MS
> products have had language-specific versions which were missing
> features.
>
> The English version of VC9 can be downloaded from
> http://www.microsoft.com/express/Downloads/.

I uninstalled the French version (took me an hour or so)
Then I downloaded and installed the English version from
http://www.microsoft.com/express/Downloads/ (the install went straight
ahead, there was no possibility to choose between 32 bits or 64 bits)

To my disappointment, the English version is also 32 bits only:

C:\>cl /?
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01
for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.

Also, the same situation with C:\Program Files (x86)\Microsoft Visual
Studio 10.0\VC>vcvarsall amd64 ==>The specified configuration type is
missing. The tools for the configuration might not be installed. ==>
the corresponding sub directories ("bin\amd64", "bin\ia64", "bin
\x86_amd64" and "bin\x86_ia64") simply do not exist

> This isn't the latest
> version, but that isn't important: what matters is that it matches the
> version used to build your Perl, especially with recent MS compilers
> which have a nasty habit of introducing incompatible versions of libc
> all the time. I don't know which compiler AS use for their 64bit builds:
> I thought it was VC7, but I don't have a 64bit Win32 machine on hand to
> check. The free download of VC7 was called 'Visual C++ 2003 Express
> Edition', and may or may not still be available; search microsoft.com.
>
> FWIW, all of this mess is why I gave up on ActivePerl a while ago. I'd
> recommend getting
> http://strawberryperl.com/download/strawberry-perl-5.12.0.1-64bit-v2.msi
> which includes the correct compiler as part of the install.

I agree.

The recent experience with getting a C-compiler for Perl is what
tipped my scale today from Activestate to Strawberry.

Thanks for your help.
From: Dilbert on
On 15 mai, 09:56, sisyphus <sisyphus...(a)gmail.com> wrote:
> On May 15, 3:41 am, Dilbert <dilbert1...(a)gmail.com> wrote:
> > Whatever the outcome of my battle with MS VC++ will be, I will be
> > relieved when "ppm install MinGW" works on 64 bit Windows.
>
> According to Jan Dubois, that probably won't be for a couple of months
> (at least). ActivePerl 5.12.0 needs some patching before it will work
> with the MinGW64 compilers. I have patches that enable this (included
> below)- they're a bit of a hack, and quite possibly *not* the way that
> ActiveState will deal with the issues. But they've been working fine
> for me, and you're welcome to give them a try. (I'd be interested to
> hear of any problems you strike if you do use them - feel free to
> email me at my CPAN address.)

[...Can't find your CPAN address...]

> For the MinGW64 compiler, you go tohttp://sourceforge.net/projects/mingw-w64/files
> , as you've already discovered. Under "Toolchains targetting Win64"
> grab either one of the "personal builds" or one of the "automated
> builds" that has been built for win64 mingw (not for linux or cygwin)
> - and make sure it's a 64-bit build (as they're also providing a 32-
> bit compiler). The "automated builds" are a cross-compiler with the
> names of the executables prefixed with "x86_64-w64-mingw32-" (ie
> "x86_64-w64-mingw32-gcc.exe", etc.), so it might be simpler if you
> choose the "sezero_20100428" build ("mingw-w64-bin_x86_64-
> mingw_20100428_sezero.zip"). My patches accommodate both types of
> build.
>
> Then just unzip and add the bin folder to the path.
>
> Patch to lib/ExtUtils/MM_Win32.pm (ActivePerl build 1200):
> [...]
> Patch to lib/ActivePerl/Config.pm (ActivePerl build 1200):
> [...]

I have downloaded and unzipped "mingw-w64-bin_x86_64-
mingw_20100515_sezero.zip" (that's "...20100515..." and not "...
20100428...") from http://sourceforge.net/projects/mingw-w64/files.

Then I added the "mingw64\bin" directory to the path.

Now, C:\>perl -V:make reports

C:\Users\CK\Documents\PerlModules\Text-CSV_XS\Text-CSV_XS-0.73>perl -
V:make
Set up gcc environment - 4.4.5 20100513 (prerelease) [svn/rev.159365 -
mingw-w64/oz]
make='dmake';

But there is no dmake.exe anywhere on my Windows Vista 64 bits. ==> I
quickly google for "dmake" and I find ==> http://www.oooforum.org/forum/viewtopic.phtml?t=241
==> if you are using windows use this use this link ==>
http://www.cpan.org/authors/id/GSAR/dmake-4.1pl1-win32.zip

So I download and unzip "dmake-4.1pl1-win32.zip" (it's a 32 bit app,
but that doesn't matter) and add the directory "dmake-4.1pl1-
win32" (that's where dmake.exe lives) to the path (also, please be
aware that "dmake.exe" relies on a file "startup\startup.mk", so you
make sure that this exists)

I also applied the two patches:
- to lib/ExtUtils/MM_Win32.pm
- to lib/ActivePerl/Config.pm

Now I want to download and make Text::CSV_XS, but unfortunately there
is an error "gcc.exe: CreateProcess: No such file or directory"

C:\Users\CK\Documents\PerlModules\Text-CSV_XS\Text-CSV_XS-0.73>dmake
cp CSV_XS.pm blib\lib\Text\CSV_XS.pm
C:\Perl64\bin\perl.exe C:\Perl64\lib\ExtUtils\xsubpp -typemap C:
\Perl64\lib\ExtUtils\typemap CSV_XS.xs > CSV_XS.xsc && C:\Perl64\bin\
perl.exe -MExtUtils::Command -e "mv" -- CSV_XS.xsc CSV_XS.c
C:/Users/CK/DOCUME~1/PROGRA~2/MINGW6~1/gcc.exe -c -DNDEBUG -
DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DWIN64 -DCONSERVATIV
E -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -
DUSE_PERLIO -DPERL_MSVCRT_READFIX -DHASATTRIBUTE -fno-strict-aliasin
g -mms-bitfields -O2 -DVERSION=\"0.73\" -DXS_VERSION=\"0.73\"
"-IC:\Perl64\lib\CORE" CSV_XS.c
gcc.exe: CreateProcess: No such file or directory
dmake.exe: Error code 1, while making 'CSV_XS.o'
From: sisyphus on
On May 16, 6:18 am, Dilbert <dilbert1...(a)gmail.com> wrote:
> On 15 mai, 09:56, sisyphus <sisyphus...(a)gmail.com> wrote:

> C:/Users/CK/DOCUME~1/PROGRA~2/MINGW6~1/gcc.exe -c       -DNDEBUG -
> DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DWIN64 -DCONSERVATIV
> E -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -
> DUSE_PERLIO -DPERL_MSVCRT_READFIX -DHASATTRIBUTE -fno-strict-aliasin
> g -mms-bitfields -O2      -DVERSION=\"0.73\"    -DXS_VERSION=\"0.73\"
> "-IC:\Perl64\lib\CORE"   CSV_XS.c
> gcc.exe: CreateProcess: No such file or directory
> dmake.exe:  Error code 1, while making 'CSV_XS.o'

Odd - I've just downloaded that exact same compiler, and it works fine
for me with ActivePerl. I've just used it to build Text::CSV_XS-0.73.
I don't think I've overlooked anything in my instructions (apart from
the need to have dmake - but you're ahead of me on that, anyway :-)

The solitary "-O2" in the failing command is a bit of a puzzle - the
patch should have changed that to an "-s -O2", but I don't think
that's what's causing the failure.

Anyway, if you're happy with Strawberry Perl (and there's no reason
you oughtn't be) then that's the simplest route to travel. It gives
you a compiler built by the same person (and same toolchain) as the
20100515_sezero zip you downloaded - but Strawberry has gcc-4.4.3, not
the gcc-4.4.5 that's currently on offer.

Cheers,
Rob
From: Dilbert on
On 16 mai, 11:00, sisyphus <sisyphus...(a)gmail.com> wrote:
> On May 16, 6:18 am, Dilbert <dilbert1...(a)gmail.com> wrote:
>
> > On 15 mai, 09:56, sisyphus <sisyphus...(a)gmail.com> wrote:
> > C:/Users/CK/DOCUME~1/PROGRA~2/MINGW6~1/gcc.exe -c       -DNDEBUG -
> > DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DWIN64 -DCONSERVATIV
> > E -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -
> > DUSE_PERLIO -DPERL_MSVCRT_READFIX -DHASATTRIBUTE -fno-strict-aliasin
> > g -mms-bitfields -O2      -DVERSION=\"0.73\"    -DXS_VERSION=\"0.73\"
> > "-IC:\Perl64\lib\CORE"   CSV_XS.c
> > gcc.exe: CreateProcess: No such file or directory
> > dmake.exe:  Error code 1, while making 'CSV_XS.o'
>
> Odd - I've just downloaded that exact same compiler, and it works fine
> for me with ActivePerl. I've just used it to build Text::CSV_XS-0.73.
> I don't think I've overlooked anything in my instructions (apart from
> the need to have dmake - but you're ahead of me on that, anyway :-)
>
> The solitary "-O2" in the failing command is a bit of a puzzle - the
> patch should have changed that to an "-s -O2"

That's my fault, because I accidently patched the wrong file. That's
fixed now:

C:\Users\CK\Documents\PerlModules\Text-CSV_XS\Text-CSV_XS-0.73>dmake
Skip blib\lib\Text\CSV_XS.pm (unchanged)
C:/Users/CK/DOCUME~1/PROGRA~2/MINGW6~1/gcc.exe -c -DNDEBUG -
DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DWIN64 -DCONSERVATIV
E -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -
DUSE_PERLIO -DPERL_MSVCRT_READFIX -DHASATTRIBUTE -fno-strict-aliasin
g -mms-bitfields -s -O2 -DVERSION=\"0.73\" -DXS_VERSION=
\"0.73\" "-IC:\Perl64\lib\CORE" CSV_XS.c
gcc.exe: CreateProcess: No such file or directory
dmake.exe: Error code 1, while making 'CSV_XS.o'

> but I don't think
> that's what's causing the failure.

You're right, that's not causing the failure.

> Anyway, if you're happy with Strawberry Perl (and there's no reason
> you oughtn't be) then that's the simplest route to travel. It gives
> you a compiler built by the same person (and same toolchain) as the
> 20100515_sezero zip you downloaded - but Strawberry has gcc-4.4.3, not
> the gcc-4.4.5 that's currently on offer.

I will install Strawberry Perl 5.12, 64 bits on my Windows Vista and
see if that works for me.