January 2011 Archives
~/Perl/B-C-work $ /usr/local/bin/perl5.6.2d-nt -Iblib/arch -Iblib/lib -MO=C -e 'use Class::Accessor; print "ok"' | grep DynaLoader::dl_install_xsub -e syntax OK
~/Perl/B-C-work $ /usr/local/bin/perl5.6.2d-nt -Mblib -MO=C -e 'use Class::Accessor; print "ok"' | grep DynaLoader::dl_install_xsub Using /cygdrive/d/data/urbanr/My Documents/Perl/B-C-work/blib gv_list = gv_fetchpv("DynaLoader::dl_install_xsub", TRUE, SVt_PV); GvCV(gv_list) = (CV*)(newXS("DynaLoader::dl_install_xsub", XS_DynaLoader_dl_install_xsub, (char*)xsfile)); -e syntax OK
What does blib do to fix the old compiler? Note that cwd contains spaces in the path.
The compiler uses something like
$ /usr/local/bin/perl5.6.2d-nt -I"/cygdrive/d/data/urbanr/My Documents/Perl/B-C-work/blib/arch" -I"/cygdrive/d/data/urbanr/My Documents/Perl/B-C-work/blib/lib" -MO=C -e 'use Class::Accessor; print "ok"' | grep DynaLoader::dl_install_xsub
Explanation of the problem
Explanation of the root cause
Need to investigate it later
I never understood why Module::Build attracted people at all
It is limited, broken and has less features than the good old EU::MM (ExtUtils::MakeMaker).
1. dependencies, like the equivalent of make or make clean never works.
It does not check or clean important intermediate dirs and object files.
I always have to do a make realclean, to start testing with a new perl,
or updated xs file.
2. You cannot use a XS as a submodule in your package.
E.g. with Base\XS.xs windows builds will fail. Windows only!