I have a Netgear ReadyNAS NV + on which I am trying to do something with perl.
Since the perl installation from the provider was compiled without uselargefiles -flag, I tried to compile / install my own version to work in parallel with the system one.
When I first tried to compile perl on the machine itself, I ran into a problem because the system did not have many ordinary system tools that prevent the Configure script from working properly.
To get around this, I installed and used this cross-compiler to create perl on another machine. I could not figure out how to cross-compile using the standard configure-script from perl, so I used this .
After that, I can simply copy the new perl folder to the NAS and have the following thing:
Therefore, in a sense, I feel that I have been successful in my quest to get "my" perl running on a machine.
I am having problems when I try to install additional modules.
I tried installing Image :: ExifTool using cpanp (among others), but the installation does not finish.
Today I resorted to manual installation.
wget http://search.cpan.org/CPAN/authors/id/E/EX/EXIFTOOL/Image-ExifTool-9.12.tar.gz tar xzf Image-ExifTool-9.12.tar.gz cd Image-ExifTool-9.12 ~/sparc-perl-5.16.2/bin/perl Makefile.pl make
All work as expected.
when I get to make test , but it hangs endlessly like this:
# make test PERL_DL_NONLAZY=1 /root/sparc-perl-5.16.2/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.tt/AFCP.t ...........
Looking at the running processes, I think these are the ones that represent the command:
# ps aux | grep per[l] root 26187 0.5 0.7 12000 7808 pts/0 S+ 10:31 0:07 /root/sparc-perl-5.16.2/bin/perl -MExtUtils::Command::MM -e test_harness(0, 'blib/lib', 'blib/arch') t/AFCP.tt/AIFF.tt/APE.tt/ASF.tt/BigTIFF.tt/BMP.tt/CanonRaw.tt/Canon.tt/CanonVRD.tt/Casio.tt/DICOM.tt/DjVu.tt/DNG.tt/DV.tt/EXE.tt/ExifTool.tt/FLAC.tt/FlashPix.tt/Flash.tt/Font.tt/FotoStation.tt/FujiFilm.tt/Geotag.tt/GeoTiff.tt/GE.tt/GIF.tt/GIMP.tt/GPS.tt/HTML.tt/InDesign.tt/IPTC.tt/ITC.tt/Jpeg2000.tt/JVC.tt/Kodak.tt/KyoceraRaw.tt/Lang.tt/LNK.tt/M2TS.tt/Matroska.tt/MIE.tt/MIFF.tt/Minolta.tt/MP3.tt/MWG.tt/MXF.tt/Nikon.tt/Olympus.tt/OpenEXR.tt/Panasonic.tt/PDF.tt/Pentax.tt/PGF.tt/PhotoCD.tt/PhotoMechanic.tt/Photoshop.tt/PICT.tt/PNG.tt/PostScript.tt/PPM.tt/PSP.tt/QuickTime.tt/Radiance.tt/Real.tt/Ricoh.tt/RIFF.tt/RTF.tt/Sanyo.tt/Sigma.tt/Sony.tt/Unknown.tt/Vorbis.tt/Writer.tt/XMP.tt/ZIP.t root 26189 1.7 0.0 0 0 pts/0 Z+ 10:31 0:24 [perl] <defunct>
This is exactly what happens when I try to perform the same installation using cpanp.
I suppose I can just run make install and hope that it will not be a big problem that the test cannot execute / complete, but it makes me feel a little awkward. I would rather understand what is wrong.
I also find it strange that the test freezes, how it does it, I can agree that it fails, but that it just continues to work unproductive, it seems strange.
Since this is the first time I have built perl from the source code, and the first time I used the cross compiler, I would not be surprised to know that I did something very bad, any help in determining what is very welcome .
What am I doing wrong?
EDIT - compilation on mahcine:
It turned out how to configure a Configure script running on a machine. Let's try building there to see if this works better. It will take some time, the car is slow.
To run configure script I need:
NKU
apt-get install libc6-dev gcc gdb libtag1-dev uuid-dev
Coreutils
apt-get install coreutils
-Dcc = NKU
./Configure -des -Dprefix=$HOME/perl-5.16.2 -Dcc=gcc
EDIT2 - compilation failed:
Shortest success:
# make `sh cflags "optimize='-O2'" perlmini.o` -DPERL_IS_MINIPERL -DPERL_EXTERNAL_GLOB perlmini.c CCCMD = gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -Wall In file included from perl.c:33: perl.h:699: error: conflicting types for `syscall' /usr/include/unistd.h:939: error: previous declaration of `syscall' ake: *** [perlmini.o] Error 1
EDIT3 - testdriving fork:
Tried the following to make sure fork is working as it should. I believe the test was successful, but I have never tried fork before, so please let me know if I read the result incorrectly.
# cat test_forkwait.px #!/root/sparc-perl-5.16.2/bin/perl $pid = fork(); die if $pid < 0; $SIG{CHLD} = sub { warn "SIGCHLD\n"; }; if($pid) { $status = waitpid($pid, 0); warn "wait status: $status\n"; } else { warn "Child starting\n"; sleep 1; warn "Child terminating\n"; } # ./test_forkwait.px Child starting Child terminating SIGCHLD wait status: 29913