|Subject:||Gcc errors when upgrading some modules for Strawberry portable.|
|Date:||Tue, 2 Aug 2016 11:45:33 -0400|
|To:||"bug-Perl-Dist-Strawberry [...] rt.cpan.org" <bug-Perl-Dist-Strawberry [...] rt.cpan.org>|
|From:||Charles Stuart Lemmen <CLemmen [...] excelsiorintegrated.com>|
First, some background info: Distro name/ver: Data::Dumper 2.160 -upgrading to- 2.161 Perl ver: (Strawberry) This is perl 5, version 24, subversion 0 (v5.24.0) built for MSWin32-x64-multi-thread O/S: Microsoft Windows [Version 10.0.10586] Details: I downloaded and installed Strawberry Perl portable version thinking this would be a good distro to use in a shared environment. Everything went well including upgrading a good number of packages within CPAN (running inside the portable shell). However, there were a handful of upgrades that didn't work. Among them: Package namespace installed latest in CPAN file DBIx::Class 0.082821 0.082840 RIBASUSHI/DBIx-Class-0.082840.tar.gz Data::Dumper 2.160 2.161 SMUELLER/Data-Dumper-2.161.tar.gz Net::SSLeay 1.74 1.77 MIKEM/Net-SSLeay-1.77.tar.gz The errors were somewhat different between packages, here's one example: Show quoted text
cpan> upgrade Net::SSLeayDatabase was generated on Tue, 02 Aug 2016 15:00:07 GMT Package namespace installed latest in CPAN file Net::SSLeay 1.74 1.77 MIKEM/Net-SSLeay-1.77.tar.gz Running install for module 'Net::SSLeay' Checksum for O:\perl\cpan\sources\authors\id\M\MI\MIKEM\Net-SSLeay-1.77.tar.gz ok Scanning cache O:\perl\cpan\build for sizes ....................................................................--------DONE DEL(1/19): O:\perl\cpan\build\Test-FailWarnings-0.008-0 DEL(2/19): O:\perl\cpan\build\Test-FailWarnings-0.008-0.yml DEL(3/19): O:\perl\cpan\build\Perl-OSType-1.010-0 DEL(4/19): O:\perl\cpan\build\Perl-OSType-1.010-0.yml DEL(5/19): O:\perl\cpan\build\PkgConfig-0.12026-0 DEL(6/19): O:\perl\cpan\build\PkgConfig-0.12026-0.yml DEL(7/19): O:\perl\cpan\build\Pod-Checker-1.73-0 DEL(8/19): O:\perl\cpan\build\Pod-Checker-1.73-0.yml DEL(9/19): O:\perl\cpan\build\Pod-Perldoc-3.26-0 DEL(10/19): O:\perl\cpan\build\Pod-Perldoc-3.26-0.yml DEL(11/19): O:\perl\cpan\build\Pod-Usage-1.69-0 DEL(12/19): O:\perl\cpan\build\Pod-Usage-1.69-0.yml DEL(13/19): O:\perl\cpan\build\SOAP-Lite-1.20-0 DEL(14/19): O:\perl\cpan\build\SOAP-Lite-1.20-0.yml DEL(15/19): O:\perl\cpan\build\XML-SemanticDiff-1.0004-0 DEL(16/19): O:\perl\cpan\build\XML-SemanticDiff-1.0004-0.yml DEL(17/19): O:\perl\cpan\build\Test-XML-0.08-0 DEL(18/19): O:\perl\cpan\build\Test-XML-0.08-0.yml DEL(19/19): O:\perl\cpan\build\Cpanel-JSON-XS-3.0217-F5sGIk cannot remove directory for O:\perl\cpan\build\Cpanel-JSON-XS-3.0217-F5sGIk: Permission denied at O:\perl\perl\lib/CPAN/CacheMgr.pm line 161. Configuring M/MI/MIKEM/Net-SSLeay-1.77.tar.gz with Makefile.PL WARNING: can't open config file: /z/extlib/_2016Q2__/ssl/openssl.cnf *** Found OpenSSL-1.0.2h installed in O:\perl\perl\..\c *** Be sure to use the same compiler and options to compile your OpenSSL, perl, and Net::SSLeay. Mixing and matching compilers is not supported. Do you want to run external tests? These tests *will* *fail* if you do not have network connectivity. [n] y Checking if your kit is complete... Looks good Generating a dmake-style Makefile Writing Makefile for Net::SSLeay Writing MYMETA.yml and MYMETA.json MIKEM/Net-SSLeay-1.77.tar.gz O:\perl\perl\bin\perl.exe Makefile.PL -- OK Running make for M/MI/MIKEM/Net-SSLeay-1.77.tar.gz dmake.exe: Warning: -- Target [config] was made but the time stamp has not been updated. cp lib/Net/SSLeay.pod blib\lib\Net\SSLeay.pod cp lib/Net/SSLeay/Handle.pm blib\lib\Net\SSLeay\Handle.pm cp lib/Net/SSLeay.pm blib\lib\Net\SSLeay.pm AutoSplitting blib\lib\Net\SSLeay.pm (blib\lib\auto\Net\SSLeay) blib\lib\Net\SSLeay.pm: some names are not unique when truncated to 8 characters: directory blib\lib\auto\Net\SSLeay: do_https3.al, do_https2.al, do_https4.al, do_https.al truncate to do_https do_httpx3.al, do_httpx2.al, do_httpx4.al truncate to do_httpx get_https.al, get_https3.al, get_https4.al, get_http.al, get_http3.al, get_http4.al, get_httpx.al, get_httpx3.al, get_httpx4.al truncate to get_http head_https.al, head_https3.al, head_https4.al, head_http.al, head_http3.al, head_http4.al, head_httpx.al, head_httpx3.al, head_httpx4.al truncate to head_htt post_https.al, post_https3.al, post_https4.al, post_http.al, post_http3.al, post_http4.al, post_httpx.al, post_httpx3.al, post_httpx4.al truncate to post_htt put_https.al, put_https3.al, put_https4.al, put_http.al, put_http3.al, put_http4.al, put_httpx.al, put_httpx3.al, put_httpx4.al truncate to put_http ssl_read_all.al, ssl_read_until.al, ssl_read_CRLF.al truncate to ssl_read ssl_write_all.al, ssl_write_CRLF.al truncate to ssl_writ tcp_read_all.al, tcp_read_until.al, tcp_read_CRLF.al truncate to tcp_read tcp_write_all.al, tcp_write_CRLF.al truncate to tcp_writ dmake.exe: Warning: -- Target [pm_to_blib] was made but the time stamp has not been updated. Running Mkbootstrap for SSLeay () "O:\perl\perl\bin\perl.exe" "-Iinc" -MExtUtils::Command -e chmod -- 644 "SSLeay.bs" dmake.exe: Warning: -- Target [SSLeay.bs] was made but the time stamp has not been updated. "O:\perl\perl\bin\perl.exe" "-Iinc" -MExtUtils::Command::MM -e cp_nonempty -- SSLeay.bs blib\arch\auto\Net\SSLeay\SSLeay.bs 644 "O:\perl\perl\bin\perl.exe" "-Iinc" "O:\perl\perl\lib\ExtUtils\xsubpp" -typemap O:\perl\perl\lib\ExtUtils\typemap -typemap O:\perl\cpan\build\Net-SSLeay-1.77-4\typemap SSLeay.xs > SSLeay.xsc "O:\perl\perl\bin\perl.exe" "-Iinc" -MExtUtils::Command -e mv -- SSLeay.xsc SSLeay.c gcc -c -IO:\perl\perl\..\c/include -s -O2 -DWIN32 -DWIN64 -DCONSERVATIVE -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fwrapv -fno-strict-aliasing -mms-bitfields -s -O2 -DVERSION=\"1.77\" -DXS_VERSION=\"1.77\" "-IO:\perl\perl\lib\CORE" SSLeay.c dmake.exe: Error code 134, while making 'SSLeay.o' MIKEM/Net-SSLeay-1.77.tar.gz O:\perl\c\bin\dmake.exe -- NOT OK Stopping: 'install' failed for 'Net::SSLeay'. Failed during this command: MIKEM/Net-SSLeay-1.77.tar.gz : make NO What they all had in common however is that during the attempted installation, Windows throws up a gcc.exe error along the lines that the compiler has stopped working. I realized it was possible that perhaps there were other Perls in my PATH that could be negatively affecting this process. However, after cleaning up my PATH environment var I was still receiving a gcc.exe compiler Application error: "The application was unable to start correctly (0xc0000006)." Googling led me to discover that the issue was from running cpan, and ultimately gcc.exe, from a non-local drive. The error has something to do with failed paging within the compiler application, a known problem when not run from a local drive. See EG: This proved correct for as soon as I copied my entire portable Strawberry folder to C:\perl, started the portable shell, started cpan, and upgraded the previously failed package - it upgraded without error. They all did. So, for the most part the Portable Strawberry Perl is quite portable but there very well may be some packages that one won't be able to install and/or upgrade without first having to move/copy the entire installation to a local drive and then ultimately back again. Perhaps there is a way to create a (portable) version of gcc.exe (and other executables that cpan uses) that is not sensitive to running on a non-local drive (the stackoverflow link above, amongst others I found, suggests there are helpful compiler flags (EG 'IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP') that can help create executables that do not exhibit these errors. Thanks for listening and providing Strawberry! It's yummy. -Stuart Stuart Lemmen IT Development & Support Excelsior Integrated LLC 413-394-4340 email@example.com<mailto:firstname.lastname@example.org> www.excelsiorintegrated.com< > [cid:image001.png@01D1ECB1.4B43DC00][cid:image003.jpg@01D1ECB3.60B2B280]
Message body is not shown because it is too large.