On Sun Dec 27 09:42:49 2015, RURBAN wrote:
Show quoted text> On Sat Dec 26 19:38:11 2015, LEONT wrote:
> > The issue at hand is that MakeMaker has a sanity check to ensure it
> > doesn't use the Config.pm of another perl install. This check assumes
> > it will be found in the core library dir, while XSConfig typically
> > installs to site.
>
> I added an gh issue here:
https://github.com/perl11/p5-Config/issues/5
> The fix is trivial.
> There was more breakage in 6.05
>
Installing to 'perl' means that XSConfig CANT be uninstalled, and will pretty much destroy your installed perl and you have to rebuild perl from source (I have an idea how to create an uninstall process for a 'perl' install but I'd rather keep the whole thing in 'site', deleting 'site' is a normal produce to fix a broken perl that cant build modules). For a currently somewhat unstable module installing to 'perl' seems like a very bad idea.
The warning "Your perl and your Config.pm seem to have different ideas about the architecture they are running on." is just a warning and console noise for me, it doesn't cause breakage, atleast on Win32. Fixing the warning in EUMM is very low priority for me, since EUMM dev is frozen and it is impossible to fix old EUMMs on old perls. If I add a minimum ver of EUMM of a future EUMM 7.14, I will decreases compatibility/the pool of perls that can install the module. Example of a successful with the EUMM warning module build on my system.
-------------------------------------------------
cpan[1]> test Time::Piece
Reading 'C:\Users\Owner\.cpan\Metadata'
Database was generated on Sun, 27 Dec 2015 20:53:32 GMT
Running test for module 'Time::Piece'
Fetching with LWP:
http://www.cpan.org/authors/id/E/ES/ESAYM/Time-Piece-1.31.tar.gz
Warning (usually harmless): 'YAML' not installed, cannot parse 'C:\Users\Owner\.
cpan\FTPstats.yml'
Fetching with LWP:
http://www.cpan.org/authors/id/E/ES/ESAYM/CHECKSUMS
Checksum for C:\Users\Owner\.cpan\sources\authors\id\E\ES\ESAYM\Time-Piece-1.31.
tar.gz ok
Scanning cache C:\Users\Owner\.cpan\build for sizes
............................................................................DONE
'YAML' not installed, will not store persistent state
Configuring E/ES/ESAYM/Time-Piece-1.31.tar.gz with Makefile.PL
Checking if your kit is complete...
Looks good
Have \p523\site\lib
Want \p523\lib
Your perl and your Config.pm seem to have different ideas about the
architecture they are running on.
Perl thinks: [lib]
Config says: [MSWin32-x86-multi-thread]
This may or may not cause problems. Please check your installation of perl
if you have problems building this extension.
Generating a dmake-style Makefile
Writing Makefile for Time::Piece
Writing MYMETA.yml and MYMETA.json
ESAYM/Time-Piece-1.31.tar.gz
C:\p523\bin\perl.exe Makefile.PL -- OK
Running make for E/ES/ESAYM/Time-Piece-1.31.tar.gz
cp Seconds.pm blib\lib\Time\Seconds.pm
cp Piece.pm blib\lib\Time\Piece.pm
Running Mkbootstrap for Time::Piece ()
"C:\p523\bin\perl.exe" -MExtUtils::Command -e chmod -- 644 "Piece.bs"
"C:\p523\bin\perl.exe" "C:\p523\lib\ExtUtils\xsubpp" -typemap "C:\p523\lib\ExtU
tils\typemap" Piece.xs > Piece.xsc && "C:\p523\bin\perl.exe" -MExtUtils::Comman
d -e mv -- Piece.xsc Piece.c
cl -c -nologo -GF -W3 -O1 -MD -Zi -DNDEBUG -GL -DWIN32 -D_CONSOLE -DNO
_STRICT -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DPERL_TEXTMODE_S
CRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -O1 -MD -Zi -DNDEBUG -GL
-DVERSION=\"1.31\" -DXS_VERSION=\"1.31\" "-IC:\p523\lib\CORE" Piece.c
Piece.c
"C:\p523\bin\perl.exe" -MExtUtils::Mksymlists \
-e "Mksymlists('NAME'=>\"Time::Piece\", 'DLBASE' => 'Piece', 'DL_FUNCS' =>
{ }, 'FUNCLIST' => [], 'IMPORTS' => { }, 'DL_VARS' => []);"
link -out:blib\arch\auto\Time\Piece\Piece.dll -dll -nologo -nodefaultlib -debug
-opt:ref,icf -ltcg -libpath:"c:\p523\lib\CORE" -machine
:x86 "/manifestdependency:type='Win32' name='Microsoft.Windows.Common-Controls'
version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' la
nguage='*'" -subsystem:console,"5.01" Piece.obj "C:\p523\lib\CORE\perl523.lib"
oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi
32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.l
ib winmm.lib version.lib odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib -def:Pi
ece.def
Creating library blib\arch\auto\Time\Piece\Piece.lib and object blib\arch\aut
o\Time\Piece\Piece.exp
Generating code
Finished generating code
if exist blib\arch\auto\Time\Piece\Piece.dll.manifest mt -nologo -manifest blib\
arch\auto\Time\Piece\Piece.dll.manifest -outputresource:blib\arch\auto\Time\Piec
e\Piece.dll;2
if exist blib\arch\auto\Time\Piece\Piece.dll.manifest del blib\arch\auto\Time\Pi
ece\Piece.dll.manifest
"C:\p523\bin\perl.exe" -MExtUtils::Command -e chmod -- 755 blib\arch\auto\Time\P
iece\Piece.dll
ESAYM/Time-Piece-1.31.tar.gz
dmake -- OK
Running make test
"C:\p523\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *
Test::Harness::Switches; test_harness(0, 'blib\lib', 'blib\arch')" t/*.t
t/01base.t ...... ok
t/02core.t ...... ok
t/02core_dst.t .. ok
t/03compare.t ... ok
t/04mjd.t ....... ok
t/05overload.t .. ok
t/06subclass.t .. ok
t/07arith.t ..... ok
All tests successful.
Files=8, Tests=229, 1 wallclock secs ( 0.08 usr + 0.06 sys = 0.14 CPU)
Result: PASS
ESAYM/Time-Piece-1.31.tar.gz
dmake test -- OK
cpan[2]>
-------------------------------------------------
I dont understand the error "make: *** No rule to make target '/home/sand/src/perl/repoperls/installed-perls/perl/v5.23.6-29-g903c858/127e/lib/5.23.7/x86_64-linux-ld/Config.pm', needed by 'Makefile'. Stop."
The EUMM mkf has a time dep on the original PP Config in /lib/arch, the EUMM mkf is unaware of a /site/arch [XS] Config.pm and doesn't check the timestamp of XS Config and doesn't need to, as XS Config promises to be a copy of PP Config and XS Config.pm supposed to be mtime backdated to the mtime of PP Config.pm to further create the illusion that it is identical to PP Config.pm
MM_Any.pm contains
-------------------------------------------------------------
push @m, q{
# Where is the Config information that we are using/depend on
CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_INCDEP)$(DFSEP)config.h
} if -e File::Spec->catfile( $self->{PERL_INC}, 'config.h' );
-------------------------------------------------------------