Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

perl on ARM

180 views
Skip to first unread message

H.Merijn Brand

unread,
Aug 4, 2013, 5:39:50 AM8/4/13
to Perl5 Porters
I bought myself a Synology DS213, which ships with

Linux 2.6.32.12 #3211 Tue Apr 16 20:04:57 CST 2013 armv5tel GNU/Linux
CPU model Marvell Kirkwood mv6282 ARMv5te

I could not resist trying to build perl-5.18.1-rc1 on that
The default box ships with no devel tools at all and no ipkg avail,
but there is info enough on the Synology fora and wiki to get that up
and running.

Some findings …

• $LANG should be C, all other settings cause major grief
• Everything installed with ipkg ens up in /opt, which symlinks
to /volume1/@opt, so *inc* should include /opt/local/include
and /opt/include and all *lib* should include /opt/local/lib
and /opt/lib
• Even when building unthreaded perl, libpthread is needed. POSIX is
the first to complain if that is not linked
• Installing gcc does not provide a symlink to cc, so -Dcc=gcc is still
required
• Errno_pm.PL does not find errno.h because it does not look in
$Config{locincpth} and /opt/include is not scanned


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 797 tests but ran 695.
../cpan/ExtUtils-MakeMaker/t/xs.t (Wstat: 256 Tests: 5 Failed: 1)
Failed test: 5
Non-zero exit status: 1
../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.
../ext/DynaLoader/t/DynaLoader.t (Wstat: 256 Tests: 40 Failed: 1)
Failed test: 20
Non-zero exit status: 1
../lib/ExtUtils/t/Embed.t (Wstat: 0 Tests: 2 Failed: 2)
Failed tests: 1, 9
Parse errors: Tests out of sequence. Found (9) but expected (2)
Bad plan. You planned 9 tests but ran 2.
../lib/Tie/Array/std.t (Wstat: 0 Tests: 127 Failed: 1)
Failed test: 83
../lib/perl5db.t (Wstat: 0 Tests: 116 Failed: 1)
Failed test: 116
../lib/warnings.t (Wstat: 0 Tests: 792 Failed: 1)
Failed test: 266
Files=2304, Tests=624127, 6255 wallclock secs (621.61 usr 46.44 sys + 3682.44 cusr 272.85 csys = 4623.34 CPU)
Result: FAIL

Summary of my perl5 (revision 5 version 18 subversion 1) configuration:

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 -Duse64bitint -des -Dcc=gcc'
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 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O2',
cppflags='-fno-strict-aliasing -pipe -fstack-protector'
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/arm-none-linux-gnueabi/lib -lc -lm'
libpth=/opt/local/lib /opt/arm-none-linux-gnueabi/lib /lib /usr/lib
libs=
perllibs=
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_PRESERVE_IVUV PERL_SAWAMPERSAND 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:
RC1
Built under linux
Compiled at Aug 3 2013 22:27:24
@INC:
lib
/pro/lib/site_perl/5.18.1/armv5tel-linux-64int
/pro/lib/site_perl/5.18.1
/pro/lib/5.18.1/armv5tel-linux-64int
/pro/lib/5.18.1
.

I am now trying to rework all my findings in hints/linux.sh and
ext/Errno/Errno_pm.PL and push that to a branch for review when build
from scratch works

--
H.Merijn Brand http://tux.nl Perl Monger http://amsterdam.pm.org/
using perl5.00307 .. 5.19 porting perl5 on HP-UX, AIX, and openSUSE
http://mirrors.develooper.com/hpux/ http://www.test-smoke.org/
http://qa.perl.org http://www.goldmark.org/jeff/stupid-disclaimers/

Nicholas Clark

unread,
Aug 4, 2013, 5:59:59 AM8/4/13
to H.Merijn Brand, Perl5 Porters
On Sun, Aug 04, 2013 at 11:39:50AM +0200, H.Merijn Brand wrote:
> I bought myself a Synology DS213, which ships with
>
> Linux 2.6.32.12 #3211 Tue Apr 16 20:04:57 CST 2013 armv5tel GNU/Linux
> CPU model Marvell Kirkwood mv6282 ARMv5te
>
> I could not resist trying to build perl-5.18.1-rc1 on that
> The default box ships with no devel tools at all and no ipkg avail,
> but there is info enough on the Synology fora and wiki to get that up
> and running.
>
> Some findings ...
>
> * $LANG should be C, all other settings cause major grief
> * Everything installed with ipkg ens up in /opt, which symlinks
> to /volume1/@opt, so *inc* should include /opt/local/include
> and /opt/include and all *lib* should include /opt/local/lib
> and /opt/lib
> * Even when building unthreaded perl, libpthread is needed. POSIX is
> the first to complain if that is not linked
> * Installing gcc does not provide a symlink to cc, so -Dcc=gcc is still
> required
> * Errno_pm.PL does not find errno.h because it does not look in
> $Config{locincpth} and /opt/include is not scanned

I have to say that your subject isn't quite accurate.
Perl 5 builds and tests just fine on Debian on ARM.

I don't know what distribution Tony C had been testing on, but his ARM
machines could build Perl just fine too.

The fact that the compiler isn't putting "errno.h" in its default include
path means that the compiler is wrong. Not Perl. I wonder how many of the
other things stem from this.

> -------------------
> op/array.t (Wstat: 0 Tests: 127 Failed: 1)

> use64bitint=define, use64bitall=undef, uselongdouble=undef

Those two are connected. For some reason on ARM, 64 bit IVs expose a bug
which isn't visible anywhere else. Offhand I forget exactly what it is,
and I'm not at home, so I can't power up the Raspberry Pi to reconfirm.

I'd not yet considered it a priority of my time to fix it, as it doesn't
fail with the default configuration.

> I am now trying to rework all my findings in hints/linux.sh and
> ext/Errno/Errno_pm.PL and push that to a branch for review when build
> from scratch works

So, when trying to generate a hints file for *this* setup, we need to be
careful not to bust existing sane Linux distributions.

Nicholas Clark

H.Merijn Brand

unread,
Aug 4, 2013, 6:09:15 AM8/4/13
to Nicholas Clark, Tony Cook, Perl5 Porters
On Sun, 4 Aug 2013 10:59:59 +0100, Nicholas Clark <ni...@ccl4.org> wrote:

> On Sun, Aug 04, 2013 at 11:39:50AM +0200, H.Merijn Brand wrote:
> > I bought myself a Synology DS213, which ships with
> >
> > Linux 2.6.32.12 #3211 Tue Apr 16 20:04:57 CST 2013 armv5tel GNU/Linux
> > CPU model Marvell Kirkwood mv6282 ARMv5te
> >
> > I could not resist trying to build perl-5.18.1-rc1 on that
> > The default box ships with no devel tools at all and no ipkg avail,
> > but there is info enough on the Synology fora and wiki to get that up
> > and running.
> >
> > Some findings ...
> >
> > * $LANG should be C, all other settings cause major grief
> > * Everything installed with ipkg ens up in /opt, which symlinks
> > to /volume1/@opt, so *inc* should include /opt/local/include
> > and /opt/include and all *lib* should include /opt/local/lib
> > and /opt/lib
> > * Even when building unthreaded perl, libpthread is needed. POSIX is
> > the first to complain if that is not linked
> > * Installing gcc does not provide a symlink to cc, so -Dcc=gcc is still
> > required
> > * Errno_pm.PL does not find errno.h because it does not look in
> > $Config{locincpth} and /opt/include is not scanned
>
> I have to say that your subject isn't quite accurate.
> Perl 5 builds and tests just fine on Debian on ARM.

What is the 'uname -m' on those?

> I don't know what distribution Tony C had been testing on, but his ARM
> machines could build Perl just fine too.

My current hints/linux.sh only does something new when the directory
/opt/arm-none-linux-gnueabi exists

> The fact that the compiler isn't putting "errno.h" in its default include
> path means that the compiler is wrong. Not Perl. I wonder how many of the
> other things stem from this.
>
> > -------------------
> > op/array.t (Wstat: 0 Tests: 127 Failed: 1)
>
> > use64bitint=define, use64bitall=undef, uselongdouble=undef
>
> Those two are connected. For some reason on ARM, 64 bit IVs expose a bug
> which isn't visible anywhere else. Offhand I forget exactly what it is,
> and I'm not at home, so I can't power up the Raspberry Pi to reconfirm.
>
> I'd not yet considered it a priority of my time to fix it, as it doesn't
> fail with the default configuration.

I'll build without 64bitint and see if I get a full PASS

> > I am now trying to rework all my findings in hints/linux.sh and
> > ext/Errno/Errno_pm.PL and push that to a branch for review when build
> > from scratch works
>
> So, when trying to generate a hints file for *this* setup, we need to be
> careful not to bust existing sane Linux distributions.

With my current change, I *extend* the search, so I do not thing I will
bust other builds:

--- 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

> Nicholas Clark

Thanks for the quick feedback

Nicholas Clark

unread,
Aug 4, 2013, 3:20:10 PM8/4/13
to H.Merijn Brand, Perl5 Porters, Tony Cook
On Sun, Aug 04, 2013 at 11:39:50AM +0200, H.Merijn Brand wrote:

> Linker and Libraries:
> ld='ld', ldflags =' -fstack-protector -L/opt/local/lib -L/opt/arm-none-linux-gnueabi/lib -lc -lm'


On Sun, Aug 04, 2013 at 12:09:15PM +0200, H.Merijn Brand wrote:
> On Sun, 4 Aug 2013 10:59:59 +0100, Nicholas Clark <ni...@ccl4.org> wrote:

> > I have to say that your subject isn't quite accurate.
> > Perl 5 builds and tests just fine on Debian on ARM.
>
> What is the 'uname -m' on those?

My raspberry pi distribution reports itself as armv6l

nick@raspberrypi ~ $ uname -m
armv6l
nick@raspberrypi ~ $ uname -a
Linux raspberrypi 3.6.11+ #474 PREEMPT Thu Jun 13 17:14:42 BST 2013 armv6l GNU/Linux

The 'l' at the end seems to confuse some configuration tools. I'm not sure
what architecture variant it stands for, and it seems to be very hard to
Google it.

But I suspect that Perl will build just fine on debian on armv5. So my hunch
is that it's not going to be uname -m that is needed to spot the toolchain
layout of devices like yours.

> > I don't know what distribution Tony C had been testing on, but his ARM
> > machines could build Perl just fine too.
>
> My current hints/linux.sh only does something new when the directory
> /opt/arm-none-linux-gnueabi exists
>
> > The fact that the compiler isn't putting "errno.h" in its default include
> > path means that the compiler is wrong. Not Perl. I wonder how many of the
> > other things stem from this.

I realise I might be wrong here. Is the compiler built only as a freestanding
implementation? In which case, (if I have this right) it only needs to
provide <float.h>, <limits.h>, <stdarg.h>, and <stddef.h> to be conformant.


> I'll build without 64bitint and see if I get a full PASS

Cool

Nicholas Clark

Brian Fraser

unread,
Aug 4, 2013, 3:59:33 PM8/4/13
to Nicholas Clark, H.Merijn Brand, Perl5 Porters, Tony Cook
On Sun, Aug 4, 2013 at 4:20 PM, Nicholas Clark <ni...@ccl4.org> wrote:
On Sun, Aug 04, 2013 at 11:39:50AM +0200, H.Merijn Brand wrote:

>   Linker and Libraries:
>     ld='ld', ldflags =' -fstack-protector -L/opt/local/lib -L/opt/arm-none-linux-gnueabi/lib -lc -lm'


On Sun, Aug 04, 2013 at 12:09:15PM +0200, H.Merijn Brand wrote:
> On Sun, 4 Aug 2013 10:59:59 +0100, Nicholas Clark <ni...@ccl4.org> wrote:

> > I have to say that your subject isn't quite accurate.
> > Perl 5 builds and tests just fine on Debian on ARM.
>
> What is the 'uname -m' on those?

My raspberry pi distribution reports itself as armv6l

nick@raspberrypi ~ $ uname -m
armv6l
nick@raspberrypi ~ $ uname -a
Linux raspberrypi 3.6.11+ #474 PREEMPT Thu Jun 13 17:14:42 BST 2013 armv6l GNU/Linux

The 'l' at the end seems to confuse some configuration tools. I'm not sure
what architecture variant it stands for, and it seems to be very hard to
Google it.

My phone doesn't have uname, but with a bit of digging, I found it has this:
ARMv6-compatible processor rev 5 (v6l)

(as another data point, I can cross-compile perl for it just fine and 99% of tests pass)

Johan Vromans

unread,
Aug 5, 2013, 2:20:51 AM8/5/13
to Nicholas Clark, H.Merijn Brand, Perl5 Porters
Nicholas Clark <ni...@ccl4.org> writes:

> I have to say that your subject isn't quite accurate.
> Perl 5 builds and tests just fine on Debian on ARM.

I smoke Perl builds on RaspberryPI with Raspbian (daily) and Pidora
(occasionally). No problems (except a few in Test::Smoke :)).

-- Johan

H.Merijn Brand

unread,
Aug 5, 2013, 4:50:05 AM8/5/13
to Perl5 Porters
On Sun, 4 Aug 2013 20:20:10 +0100, Nicholas Clark <ni...@ccl4.org> wrote:

> > I'll build without 64bitint and see if I get a full PASS
>
> Cool

I ran out of tuits. When I modified the hints to recognize the
installed development environment (my first stab never saw db/gdbm
etc), and applied the fix to Errno_pm.PL *before* running Configure,
both -Duse64bitint and plain dumped core (no core) with

$ make
:
./perl -f -Ilib pod/buildtoc -q
make: *** [pod/perltoc.pod] Segmentation fault

At that time I realized I had no gdb installed and my tuits depleted.
It is very likely I will try again later (next weekend)

H.Merijn Brand

unread,
Aug 5, 2013, 11:59:43 AM8/5/13
to H.Merijn Brand, Perl5 Porters
On Mon, 5 Aug 2013 10:50:05 +0200, "H.Merijn Brand"
<h.m....@xs4all.nl> wrote:

> On Sun, 4 Aug 2013 20:20:10 +0100, Nicholas Clark <ni...@ccl4.org> wrote:
>
> > > I'll build without 64bitint and see if I get a full PASS
> >
> > Cool
>
> I ran out of tuits. When I modified the hints to recognize the
> installed development environment (my first stab never saw db/gdbm
> etc), and applied the fix to Errno_pm.PL *before* running Configure,
> both -Duse64bitint and plain dumped core (no core) with
>
> $ make
> :
> ./perl -f -Ilib pod/buildtoc -q
> make: *** [pod/perltoc.pod] Segmentation fault
>
> At that time I realized I had no gdb installed and my tuits depleted.
> It is very likely I will try again later (next weekend)

(gdb) run -f -Ilib pod/buildtoc -q
Starting program: /volume1/@merijn/perl/perl-5.18.1-RC1/perl -f -Ilib pod/buildtoc -q

Program received signal SIGSEGV, Segmentation fault.
0x4028cdb0 in XS_Cwd_abs_path () from lib/auto/Cwd/Cwd.so
(gdb) where
#0 0x4028cdb0 in XS_Cwd_abs_path () from lib/auto/Cwd/Cwd.so
#1 0x000a7844 in Perl_pp_entersub ()
#2 0x000a1eb4 in Perl_runops_standard ()
#3 0x0003983c in Perl_call_sv ()
#4 0x00039d70 in Perl_call_list ()
#5 0x00021adc in S_process_special_blocks ()
#6 0x00031b44 in Perl_newATTRSUB_flags ()
#7 0x000325a4 in Perl_newATTRSUB ()
#8 0x000645c0 in Perl_yyparse ()
#9 0x000dc8b0 in S_doeval ()
#10 0x000ddc94 in Perl_pp_require ()
#11 0x000a1eb4 in Perl_runops_standard ()
#12 0x0003983c in Perl_call_sv ()
#13 0x00039d70 in Perl_call_list ()
#14 0x00021adc in S_process_special_blocks ()
#15 0x00031b44 in Perl_newATTRSUB_flags ()
#16 0x000325a4 in Perl_newATTRSUB ()
#17 0x00030ac0 in Perl_utilize ()
#18 0x000639b8 in Perl_yyparse ()
#19 0x0003b2c8 in S_parse_body ()
#20 0x0003c118 in perl_parse ()
#21 0x0001fc74 in main ()

Brian Fraser

unread,
Aug 5, 2013, 12:31:50 PM8/5/13
to H.Merijn Brand, Perl5 Porters
On Mon, Aug 5, 2013 at 5:50 AM, H.Merijn Brand <h.m....@xs4all.nl> wrote:
On Sun, 4 Aug 2013 20:20:10 +0100, Nicholas Clark <ni...@ccl4.org> wrote:

> > I'll build without 64bitint and see if I get a full PASS
>
> Cool

I ran out of tuits. When I modified the hints to recognize the
installed development environment (my first stab never saw db/gdbm
etc), and applied the fix to Errno_pm.PL *before* running Configure,
both -Duse64bitint and plain dumped core (no core) with

$ make
:
./perl -f -Ilib pod/buildtoc -q
make: *** [pod/perltoc.pod] Segmentation fault

At that time I realized I had no gdb installed and my tuits depleted.
It is very likely I will try again later (next weekend)

Too late now, and looks like you got gdb running properly in any case, but for future reference, I was recently pleasantly surprised to find out that you can run gdb remotely -- you just need to find a gdbserver binary built for the arch you're targeting and you're practically set.

H.Merijn Brand

unread,
Aug 19, 2013, 8:10:35 AM8/19/13
to Perl5 Porters
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
.

H.Merijn Brand

unread,
Sep 2, 2013, 2:10:25 AM9/2/13
to perl5-...@perl.org
This one counts as a ping to look at the op/array.t fail on ARM with
-Duse64bitint

(a second one without -Duse64bitint just started, but that will take a
while)


On Mon, 19 Aug 2013 14:10:35 +0200, "H.Merijn Brand"
<h.m....@xs4all.nl> wrote:

> 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

Summary of my perl5 (revision 5 version 19 subversion 4) configuration:
Commit id: a8f52b62a9a286742b10878b4bb35fea1f0a012d
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'

Test Summary Report
-------------------
op/array.t (Wstat: 0 Tests: 137 Failed: 1)
Failed test: 83
op/for.t (Wstat: 512 Tests: 105 Failed: 0)
Non-zero exit status: 2
Parse errors: Bad plan. You planned 106 tests but ran 105.
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.

vvvvvvvvvvvvvvvvvvvvv-- ignore that one
porting/cmp_version.t (Wstat: 0 Tests: 37 Failed: 1)
Failed test: 27
../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: 137 Failed: 1)
Failed test: 83
../lib/warnings.t (Wstat: 0 Tests: 805 Failed: 1)
Failed test: 266
Files=2270, Tests=623405, 4576 wallclock secs (570.87 usr 20.47 sys + 3486.85 cusr 133.64 csys = 4211.83 CPU)
Result: FAIL

$ cd t
$ ./perl -I../lib harness -v op/array.t op/for.t op/taint.t \
porting/cmp_version.t ../cpan/Term-Cap/test.pl \
../lib/Tie/Array/std.t ../lib/warnings.t
# Failed test 83 - $a[-1] = 0 at op/array.t line 269
# got 'Modification of non-creatable array value attempted, subscript 0 at (eval 9) line 1.
# '
# expected /(?^:Modification of non-creatable array value attempted, subscript -1)/
op/array.t ................
1..137
ok 1
ok 2
:
ok 82
not ok 83 - $a[-1] = 0
ok 84 - $\# on freed array is undef
:
ok 137 - no assertion failure after assigning ref to arylen when ary is gone
Failed 1/137 subtests
Can't locate XS/APItest.pm in @INC (you may need to install the XS::APItest module) (@INC contains: ../lib .) at op/for.t line 576.
# Looks like you planned 106 tests but ran 105.
op/for.t ..................
1..106
ok 1 - Forwards for array
:
ok 101 - Reverse for array and value with var
ok 102 - Reverse for array and value via map with var
not ok 103 # TODO & SKIP RT #1085: what should be output of perl -we 'print do { foreach (1, 2) { 1; } }'
not ok 104 # TODO & SKIP RT #2166: foreach spuriously autovivifies
ok 105 - foreach (@array_containing_undef)
Dubious, test returned 2 (wstat 512, 0x200)
Failed 1/106 subtests
The crypt() function is unimplemented due to excessive paranoia. at op/taint.t line 2001.
# Looks like you planned 798 tests but ran 695.
op/taint.t ................
1..798
ok 1
:
ok 694
ok 695 - \S match with chr 256
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 103/798 subtests
(less 6 skipped subtests: 689 okay)
porting/cmp_version.t .....
1..37
ok 1 - dist/Carp/lib/Carp.pm
ok 2 - dist/Carp/lib/Carp/Heavy.pm
:

This one is open, as that file has been patched.
# diff --git a/ext/Errno/Errno_pm.PL b/ext/Errno/Errno_pm.PL

../cpan/Term-Cap/test.pl ..
1..45
ok 1 - use Term::Cap;
:
ok 31 - should set _bc field correctly
Dubious, test returned 1 (wstat 256, 0x100)
Failed 14/45 subtests
# Failed test 83 - $a[-1] = 0 at op/array.t line 269
# got 'Modification of non-creatable array value attempted, subscript 0 at (eval 10) line 1.
# '
# expected /(?^:Modification of non-creatable array value attempted, subscript -1)/
../lib/Tie/Array/std.t ....
1..137
ok 1
:
ok 82
not ok 83 - $a[-1] = 0
ok 84 - $\# on freed array is undef
:
ok 137 - no assertion failure after assigning ref to arylen when ary is gone
Failed 1/137 subtests
PROG:
use warnings 'uninitialized';
my ($m1, $v);
our ($g1);

$v = crypt $m1, $g1;

$v = ord;
$v = ord $m1;
$v = chr;
$v = chr $m1;

$v = ucfirst;
$v = ucfirst $m1;
$v = lcfirst;
$v = lcfirst $m1;
$v = uc;
$v = uc $m1;
$v = lc;
$v = lc $m1;

$v = quotemeta;
$v = quotemeta $m1;
EXPECTED:
Use of uninitialized value $m1 in crypt at - line 5.
Use of uninitialized value $g1 in crypt at - line 5.
Use of uninitialized value $_ in ord at - line 7.
Use of uninitialized value $m1 in ord at - line 8.
Use of uninitialized value $_ in chr at - line 9.
Use of uninitialized value $m1 in chr at - line 10.
Use of uninitialized value $_ in ucfirst at - line 12.
Use of uninitialized value $m1 in ucfirst at - line 13.
Use of uninitialized value $_ in lcfirst at - line 14.
Use of uninitialized value $m1 in lcfirst at - line 15.
Use of uninitialized value $_ in uc at - line 16.
Use of uninitialized value $m1 in uc at - line 17.
Use of uninitialized value $_ in lc at - line 18.
Use of uninitialized value $m1 in lc at - line 19.
Use of uninitialized value $_ in quotemeta at - line 21.
Use of uninitialized value $m1 in quotemeta at - line 22.
GOT:
The crypt() function is unimplemented due to excessive paranoia. at - line 5.
# Failed test 266 - at lib/warnings/9uninit line 1067
../lib/warnings.t .........
1..805
# From lib/warnings/1global
ok 1
:
ok 265
not ok 266
ok 267
:
ok 281
# PROG:
# use warnings;
#
# my $c;
# my $d = 1;
# while ($c == 0 && $d) {
# # a
# # few
# # blank
# # lines
# undef $d;
# }
# EXPECTED:
# Use of uninitialized value $c in numeric eq (==) at - line 5.
# Use of uninitialized value $c in numeric eq (==) at - line 5.
# GOT:
# Use of uninitialized value $c in numeric eq (==) at - line 5.
# Use of uninitialized value $c in numeric eq (==) at - line 10.
not ok 282 # TODO long standing bug - conditions of while loops
# Failed test 282 - at lib/warnings/9uninit line 1478
# PROG:
# use warnings;
#
# my $c;
# my $d;
# until ($c == 1) {
# # a
# # few
# # blank
# # lines
# $c = 1 if ++$d == 2;
# }
# EXPECTED:
# Use of uninitialized value $c in numeric eq (==) at - line 5.
# Use of uninitialized value $c in numeric eq (==) at - line 5.
# GOT:
# Use of uninitialized value $c in numeric eq (==) at - line 5.
# Use of uninitialized value $c in numeric eq (==) at - line 10.
not ok 283 # TODO long standing bug - conditions of until loops
# Failed test 283 - at lib/warnings/9uninit line 1494
# PROG:
# use warnings;
#
# my $c;
# my $d;
# for ($d = 1; $c == 0 && $d; ) {
# # a
# # few
# # blank
# # lines
# undef $d;
# }
#
# my $e;
# for ($d = 2; $d > 0; $e = !($c == 0)) {
# # a
# # few
# # blank
# # lines
# --$d;
# }
# EXPECTED:
# Use of uninitialized value $c in numeric eq (==) at - line 5.
# Use of uninitialized value $c in numeric eq (==) at - line 5.
# Use of uninitialized value $c in numeric eq (==) at - line 14.
# Use of uninitialized value $c in numeric eq (==) at - line 14.
# GOT:
# Use of uninitialized value $c in numeric eq (==) at - line 5.
# Use of uninitialized value $c in numeric eq (==) at - line 10.
# Use of uninitialized value $c in numeric eq (==) at - line 14.
# Use of uninitialized value $c in numeric eq (==) at - line 14.
not ok 284 # TODO long standing bug - conditions of for loops
# Failed test 284 - at lib/warnings/9uninit line 1510
# PROG:
# use warnings;
# my $undef;
#
# my $a = $undef + 1;
# my $b
# = $undef
# + 1;
# EXPECTED:
# Use of uninitialized value $undef in addition (+) at - line 4.
# Use of uninitialized value $undef in addition (+) at - line 7.
# GOT:
# Use of uninitialized value $undef in addition (+) at - line 4.
# Use of uninitialized value $undef in addition (+) at - line 5.
not ok 285 # TODO long standing bug - more general variant of the above problem
# Failed test 285 - at lib/warnings/9uninit line 1537
ok 286
:
ok 773
# PROG:
# use warnings 'utf8';
# chr(0x110000) =~ /\p{lb=cr}/;
# no warnings 'non_unicode';
# chr(0x110000) =~ /\p{lb=cr}/;
# EXPECTED:
# Code point 0x110000 is not Unicode, all \p{} matches fail; all \P{} matches succeed at - line 2.
# GOT:
#
not ok 774 # TODO optimized regnode should still give warnings
# Failed test 774 - at lib/warnings/utf8 line 653
ok 775
:
Failed 1/805 subtests

H.Merijn Brand

unread,
Sep 2, 2013, 11:17:50 AM9/2/13
to perl5-...@perl.org
On Mon, 19 Aug 2013 14:10:35 +0200, "H.Merijn Brand"
<h.m....@xs4all.nl> wrote:

> > > I'll build without 64bitint and see if I get a full PASS
> >
> > Cool

Test Summary Report
-------------------
op/for.t (Wstat: 512 Tests: 105 Failed: 0)
Non-zero exit status: 2
Parse errors: Bad plan. You planned 106 tests but ran 105.
porting/cmp_version.t (Wstat: 0 Tests: 37 Failed: 1)
Failed test: 27
../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.
Files=2270, Tests=623165, 4362 wallclock secs (565.71 usr 18.32 sys + 3344.61 cusr 127.07 csys = 4055.71 CPU)
Result: FAIL

No more libcrypt warnings

The cmp_version fail is from what I patched in Errno_pm.PL and should
be ignored here

The Term-Cap is now fixed by adding a missing entry for "dumb"
in /etc/termcap (which is never used, as all programs will use
either /opt/etc/termcap or /pro/lib/termcat which is set in
$ENV{TERMCAP}). Should I report this on RT to the Term::Cap queue?

$ cd t
$ ./perl harness -v op/for.t
op/for.t .................. Can't locate XS/APItest.pm in @INC (you may need to install the XS::APItest module) (@INC contains: ../lib .) at op/for.t line 576.
# Looks like you planned 106 tests but ran 105.

1..106
ok 1 - Forwards for array
ok 2 - Forwards for list
:
ok 102 - Reverse for array and value via map with var
not ok 103 # TODO & SKIP RT #1085: what should be output of perl -we 'print do { foreach (1, 2) { 1; } }'
not ok 104 # TODO & SKIP RT #2166: foreach spuriously autovivifies
ok 105 - foreach (@array_containing_undef)
Dubious, test returned 2 (wstat 512, 0x200)
Failed 1/106 subtests

Test Summary Report
-------------------
op/for.t (Wstat: 512 Tests: 105 Failed: 0)
Non-zero exit status: 2
Parse errors: Bad plan. You planned 106 tests but ran 105.



$ ./perl -Ilib -V
Summary of my perl5 (revision 5 version 19 subversion 4) configuration:
Commit id: e1c60bf347fcb74764d4f3baf79980d3252ccf0a
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='-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 -lcrypt -lc -lgdbm_compat -lpthread
perllibs=-lnsl -lgdbm -ldb -lm -lcrypt -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 Sep 2 2013 15:08:18
@INC:
lib
/pro/lib/perl5/site_perl/5.19.4/armv5tel-linux
/pro/lib/perl5/site_perl/5.19.4
/pro/lib/perl5/5.19.4/armv5tel-linux
/pro/lib/perl5/5.19.4

Brian Fraser

unread,
Sep 2, 2013, 12:33:20 PM9/2/13
to H.Merijn Brand, Perl5 Porters Mailing List
Looks like the other uses of 'require XS::APItest' wrap that in an eval {}, but for.t doesn't, which explains why this test fails but the others don't; The problem of why it's failing to find the module remains.

0 new messages