A new attempt, starting from scratch with a git clone
(I just leave a problem-related tab open in Opera until
it annoys me enough to try building again)
side note: in order to have Configure detect libm, one will
have to symlink /lib/libm.so.6 to /lib/libm.so
In finding that I also found how to enable X11Forwarding to
this box just to find the gvim was compiled without X11 support :(
First 64bitint then 32bitint …
$ cd perl-git
$ git pull
$ git clean -dfx
$ cp ../Policy.sh .
$ cat Policy.sh
#!/bin/sh
LANG=C
LD_LIBRARY_PATH=/pro/local/lib:/pro/lib:/opt/lib:/opt/local/lib:/lib
prefix=/pro
cc=gcc
libpth="/opt/local/lib /opt/lib /lib"
locincpth="/opt/local/include /opt/include /usr/local/include"
loclibpth="/opt/local/lib /opt/lib /lib"
$ export LANG=C
$ export LD_LIBRARY_PATH=/opt/lib:/opt/local/lib:/lib
$ patch -p1 <../arm.diff
$ ./Configure -Dprefix=/pro -Dcc=gcc -Duse64bitint -Dusedevel -des
:
:
$ make
:
:
$ make test_harness
:
:
The crypt() function is unimplemented due to excessive paranoia. at -
line 5.
Test Summary Report
-------------------
op/array.t (Wstat:
0 Tests: 127 Failed: 1) Failed test: 83
op/taint.t (Wstat:
65280 Tests: 695 Failed: 0) Non-zero exit status: 255
Parse errors: Bad plan. You planned 798 tests but ran 695.
porting/cmp_version.t (Wstat:
0 Tests: 39 Failed: 1) Failed test: 30
../cpan/Term-Cap/
test.pl (Wstat:
256 Tests: 31 Failed: 0) Non-zero exit status: 1
Parse errors: Bad plan. You planned 45 tests but ran 31.
../lib/Tie/Array/std.t (Wstat:
0 Tests: 127 Failed: 1) Failed test: 83
../lib/perl5db.t (Wstat:
0 Tests: 119 Failed: 1) Failed test: 119
../lib/warnings.t (Wstat:
0 Tests: 799 Failed: 1) Failed test: 266
Files=2260, Tests=622503, 4505 wallclock secs (587.82 usr 19.86 sys +
3473.72 cusr 132.57 csys = 4213.97 CPU) Result: FAIL
$ ./perl -Ilib -V
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Summary of my perl5 (revision 5 version 19 subversion 3) configuration:
Derived from: 3bcf54a5101e82a7b6351d1c47a85c1e9c5cf6c3
Platform:
osname=linux, osvers=2.6.32.12, archname=armv5tel-linux-64int
uname='linux nasynology 2.6.32.12 #3211 tue apr 16 20:04:57 cst
2013 armv5tel gnulinux ' config_args='-Dprefix=/pro -Dcc=gcc
-Duse64bitint -Dusedevel -des' hint=recommended, useposix=true,
d_sigaction=define useithreads=undef, usemultiplicity=undef
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=define, use64bitall=undef, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='gcc', ccflags ='-fno-strict-aliasing -pipe -fstack-protector
-I/opt/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O2', cppflags='-fno-strict-aliasing -pipe -fstack-protector
-I/opt/include' ccversion='', gccversion='4.2.3', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=8
ivtype='long long', ivsize=8, nvtype='double', nvsize=8,
Off_t='off_t', lseeksize=8 alignbytes=8, prototype=define
Linker and Libraries:
ld='ld', ldflags =' -fstack-protector -L/opt/local/lib -L/opt/lib
-L/lib' libpth=/opt/local/lib /opt/lib /lib
libs=-lnsl -lgdbm -ldb -lc -lgdbm_compat -lpthread -lm
perllibs=-lnsl -lgdbm -ldb -lc -lgdbm_compat -lpthread -lm
libc=, so=so, useshrplib=false, libperl=libperl.a
gnulibc_version='2.5'
Dynamic Linking:
dlsrc=dl_none.xs, dlext=none, d_dlsymun=undef, ccdlflags=''
cccdlflags='', lddlflags=''
Characteristics of this binary (from libperl):
Compile-time options: HAS_TIMES PERLIO_LAYERS PERL_DONT_CREATE_GVSV
PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
PERL_MALLOC_WRAP PERL_NEW_COPY_ON_WRITE PERL_PRESERVE_IVUV
PERL_USE_DEVEL USE_64_BIT_INT USE_LARGE_FILES
USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE
USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF
Locally applied patches:
uncommitted-changes
Built under linux
Compiled at Aug 18 2013 20:16:09
@INC:
lib
/pro/lib/perl5/site_perl/5.19.3/armv5tel-linux-64int
/pro/lib/perl5/site_perl/5.19.3
/pro/lib/perl5/5.19.3/armv5tel-linux-64int
/pro/lib/perl5/5.19.3
.
$ git diff
diff --git a/ext/Errno/Errno_pm.PL b/ext/Errno/Errno_pm.PL
index b372875..1a9c49a 100644
--- a/ext/Errno/Errno_pm.PL
+++ b/ext/Errno/Errno_pm.PL
@@ -138,8 +138,10 @@ sub get_files {
) {
# Some Linuxes have weird errno.hs which generate
# no #file or #line directives
- my $linux_errno_h = -e '/usr/include/errno.h' ?
- '/usr/include/errno.h' : '/usr/local/include/errno.h';
+ my ($linux_errno_h) = grep { -e $_ } map { "$_/errno.h" }
+ "/usr/include", "/usr/local/include",
+ split / / => $Config{locincpth} or
+ die "Cannot find errno.h";
$file{$linux_errno_h} = 1;
} elsif ($^O eq 'haiku') {
# hidden in a special place
@@ -267,8 +269,8 @@ sub write_errno_pm {
$err{$name} = hex $expr;
}
else {
- $err{$name} = eval $expr;
- }
+ $err{$name} = eval $expr;
+ }
delete $err{$name} unless defined $err{$name};
}
close(CPPO);
@@ -276,7 +278,7 @@ sub write_errno_pm {
# escape $Config{'archname'}
my $archname = $Config{'archname'};
- $archname =~ s/([@%\$])/\\\1/g;
+ $archname =~ s/([@%\$])/\\$1/g;
# Write Errno.pm
diff --git a/hints/linux.sh b/hints/linux.sh
index a148248..e485e60 100644
--- a/hints/linux.sh
+++ b/hints/linux.sh
@@ -361,6 +361,35 @@ if [ -r /usr/lib/libndbm.so -a -x /usr/bin/nm
] ; then fi
fi
+# Linux on ARM. This is just one case, possibly needs more exceptions
+case "`uname -m`" in
+ arm*tel)
+ if [ -d /opt/arm-none-linux-gnueabi ]; then
+ # Tested on Synology DS213
+ # CPU model Marvell Kirkwood mv6282 ARMv5te
+ # Linux 2.6.32.12 #3211 Tue Apr 16 20:04:57 CST 2013
armv5tel GNU/Linux
+ # All development stuff is installed in /opt, which is
probably a
+ # symbolic link to /volum1/@opt
+ # Without /opt/* nothing works. The devel tools installed
with ipkg
+ # all end up in /opt
+ export
LD_LIBRARY_PATH=/opt/local/lib:/opt/lib:/usr/local/lib:/usr/lib:/lib:${LD_LIBRARY_PATH:-}
+ if [ "$LANG" = "" -o "$LANG" = "C" ]; then
+ echo 'Your LANG is safe'
+ else
+ echo 'Please set $LANG to "C". All other $LANG
settings will cause havoc' >&4
+ LANG=C
+ fi
+ echo 'Setting up to use /opt/*' >&4
+ locincpth="/opt/local/include /opt/include $locincpth"
+ libpth="/opt/local/lib /opt/lib $libpth"
+ libspth="/opt/local/lib /opt/lib $libspth"
+ loclibpth="/opt/local/lib /opt/lib $loclibpth"
+ # POSIX will not link without the pthread lib
+ libswanted="$libswanted pthread m"
+ echo "$libswanted" >&4
+ fi
+ ;;
+esac
# This script UU/usethreads.cbu will get 'called-back' by Configure
# after it has prompted the user for whether to use threads.
$
$ git clean -dfx
$ cp ../Policy.sh .
$ ./Configure -Dprefix=/pro -Dcc=gcc -Dusedevel -des
:
:
$ make
:
:
$ make test_harness
:
:
Test Summary Report
-------------------
op/taint.t (Wstat: 65280 Tests: 695 Failed: 0)
Non-zero exit status: 255
Parse errors: Bad plan. You planned 798 tests but ran 695.
porting/cmp_version.t (Wstat: 0 Tests: 39 Failed: 1)
Failed test: 30
../cpan/Term-Cap/
test.pl (Wstat: 256 Tests: 31 Failed: 0)
Non-zero exit status: 1
Parse errors: Bad plan. You planned 45 tests but ran 31.
../lib/perl5db.t (Wstat: 0 Tests: 119 Failed: 1)
Failed test: 119
../lib/warnings.t (Wstat: 0 Tests: 799 Failed: 1)
Failed test: 266
Files=2260, Tests=622176, 4321 wallclock secs (555.95 usr 18.06 sys + 3330.51 cusr 129.86 csys = 4034.38 CPU)
Result: FAIL
$ ./perl -Ilib -V
Summary of my perl5 (revision 5 version 19 subversion 3) configuration:
Commit id: 3bcf54a5101e82a7b6351d1c47a85c1e9c5cf6c3
Platform:
osname=linux, osvers=2.6.32.12, archname=armv5tel-linux
uname='linux nasynology 2.6.32.12 #3211 tue apr 16 20:04:57 cst 2013 armv5tel gnulinux '
config_args='-Dprefix=/pro -Dcc=gcc -Dusedevel -des'
hint=recommended, useposix=true, d_sigaction=define
useithreads=undef, usemultiplicity=undef
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=undef, use64bitall=undef, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='gcc', ccflags ='-fno-strict-aliasing -pipe -fstack-protector -I/opt/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O2',
cppflags='-fno-strict-aliasing -pipe -fstack-protector -I/opt/include'
ccversion='', gccversion='4.2.3', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=8
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='ld', ldflags =' -fstack-protector -L/opt/local/lib -L/opt/lib -L/lib'
libpth=/opt/local/lib /opt/lib /lib
libs=-lnsl -lgdbm -ldb -lm -lc -lgdbm_compat -lpthread
perllibs=-lnsl -lgdbm -ldb -lm -lc -lgdbm_compat -lpthread
libc=, so=so, useshrplib=false, libperl=libperl.a
gnulibc_version='2.5'
Dynamic Linking:
dlsrc=dl_none.xs, dlext=none, d_dlsymun=undef, ccdlflags=''
cccdlflags='', lddlflags=''
Characteristics of this binary (from libperl):
Compile-time options: HAS_TIMES PERLIO_LAYERS PERL_DONT_CREATE_GVSV
PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_MALLOC_WRAP
PERL_NEW_COPY_ON_WRITE PERL_PRESERVE_IVUV
PERL_USE_DEVEL USE_LARGE_FILES USE_LOCALE
USE_LOCALE_COLLATE USE_LOCALE_CTYPE
USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF
Built under linux
Compiled at Aug 19 2013 11:09:26
@INC:
lib
/pro/lib/perl5/site_perl/5.19.3/armv5tel-linux
/pro/lib/perl5/site_perl/5.19.3
/pro/lib/perl5/5.19.3/armv5tel-linux
/pro/lib/perl5/5.19.3
.