Hello fellow Perlmonks,
I am trying to build Encode 2.88-3 from CPAN on AIX 7.2. During the make test phase I receive various errors about unknown characters:
Use of uninitialized value $txt in pattern match (m//) at /usr/opt/per
+l5/lib/5.20.1/_charnames.pm line 499.
Unknown charname 'alpha' at t/Encode.t line 44, within string
BEGIN not safe after errors--compilation aborted at t/Encode.t line 14
+8.
t/Encode.t .................
t/encoding-locale.t ........ ok
Use of uninitialized value $txt in pattern match (m//) at /usr/opt/per
+l5/lib/5.20.1/_charnames.pm line 459.
Unknown charname 'LATIN SMALL LETTER SHARP S' at t/encoding.t line 77,
+ within string
BEGIN not safe after errors--compilation aborted at t/encoding.t line
+165.
Use of uninitialized value $txt in pattern match (m//) at /usr/opt/per
+l5/lib/5.20.1/_charnames.pm line 459.
Unknown charname 'POUND SIGN' at t/mime-header.t line 166, within stri
+ng
Execution of t/mime-header.t aborted due to compilation errors.
# Looks like your test exited with 2 just after 1.
t/mime-header.t ............
To test whether this is an AIX problem or a perl problem, I tried to build the same version on my linux system, where Encode installs just fine.
To pick the first error:
is "\N{alpha}",substr($uni,0,1),"alpha does not map to symbol 'a'";
It seems AIX perl is unable to find the \N{alpha} character. I am a bit lost here - where does perl usually search for characters like this?
I need a hint into the direction I have to search for with this problem. Can someone provide some debugging tips?
Updates:
perl -E 'use charnames (); say $charnames::VERSION'
1.40
perl -C -E 'say "\x{3b1} - \x{df} - \x{a3}"'
Wide character in say at -e line 1.
α - ß - £
perl -E 'use Unicode::UCD; say $Unicode::UCD::VERSION'
0.58
perl -MUnicode::UCD=charprops_all -E 'say charprops_all("U+$_")->{Age}
+ for qw{3b1 df a3}'
"charprops_all" is not exported by the Unicode::UCD module
Can't continue after import errors at -e line 0.
perl -C -E 'say "\N{greek:alpha}"'
Use of uninitialized value $txt in pattern match (m//) at /usr/opt/per
+l5/lib/5.20.1/_charnames.pm line 459.
Use of uninitialized value $txt in pattern match (m//) at /usr/opt/per
+l5/lib/5.20.1/_charnames.pm line 499.
Unknown charname 'greek:alpha' at -e line 1, within string
Execution of -e aborted due to compilation errors.
The build process is using CPAN (perl -MCPAN -eshell) to install modules. We use local::lib to install to a specific directory, rather than the system perl path. The perl we are using is the one coming with AIX 7.2, so we did not build perl ourself.
perl -V
Summary of my perl5 (revision 5 version 20 subversion 1) configuration
+:
Platform:
osname=aix, osvers=6.1.0.0, archname=aix-thread-multi
uname='aix blade08 1 6 00003c3ad100 '
config_args='-d -Dprefix=/usr/opt/perl5 -Dcc=xlc_r -Duseshrplib -D
+usethreads'
hint=recommended, useposix=true, d_sigaction=define
useithreads=define, usemultiplicity=define
use64bitint=undef, use64bitall=undef, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='xlc_r -q32', ccflags ='-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX
+_SOURCE -qmaxmem=-1 -qnoansialias -qlanglvl=extc99 -DUSE_NATIVE_DLOPE
+N -DNEED_PTHREAD_INIT -q32 -D_LARGE_FILES',
optimize='-O',
cppflags='-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=
+-1 -qnoansialias -qlanglvl=extc99 -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_
+INIT'
ccversion='12.1.0.9', gccversion='', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
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 =' -brtl -bdynamic -b32'
libpth=/lib /usr/lib /usr/ccs/lib
libs=-lbind -lnsl -ldbm -ldl -lld -lm -lcrypt -lpthreads -lc
perllibs=-lbind -lnsl -ldl -lld -lm -lcrypt -lpthreads -lc
libc=, so=a, useshrplib=true, libperl=libperl.a
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_aix.xs, dlext=so, d_dlsymun=undef, ccdlflags=' -bE:/usr/
+opt/perl5/lib/5.20.1/aix-thread-multi/CORE/perl.exp'
cccdlflags=' ', lddlflags='-bhalt:4 -G -bI:$(PERL_INC)/perl.exp -b
+E:$(BASEEXT).exp -bnoentry -lpthreads -lc -lm'
Characteristics of this binary (from libperl):
Compile-time options: HAS_TIMES MULTIPLICITY PERLIO_LAYERS
PERL_DONT_CREATE_GVSV
PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP
PERL_NEW_COPY_ON_WRITE PERL_PRESERVE_IVUV
USE_ITHREADS USE_LARGE_FILES USE_LOCALE
USE_LOCALE_COLLATE USE_LOCALE_CTYPE
USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF
USE_REENTRANT_API
Built under aix
Compiled at Feb 6 2015 14:54:29
%ENV:
PERL5LIB="/home/perl_ss/perl5/lib/perl5/aix-thread-multi:/home/per
+l_ss/perl5/lib/perl5:/usr/local/lib/site_perl/5.8.8:/usr/local/site_p
+erl/common"
PERL5OPT=""
PERL5_CPANPLUS_IS_RUNNING="9961732"
PERL5_CPAN_IS_RUNNING="9961732"
PERL_LOCAL_LIB_ROOT="/home/perl_ss/perl5"
PERL_MB_OPT="--install_base /home/perl_ss/perl5"
PERL_MM_OPT="INSTALL_BASE=/home/perl_ss/perl5"
@INC:
/home/perl_ss/perl5/lib/perl5/aix-thread-multi
/home/perl_ss/perl5/lib/perl5/aix-thread-multi
/home/perl_ss/perl5/lib/perl5
/usr/local/lib/site_perl/5.8.8/aix-thread-multi
/usr/local/lib/site_perl/5.8.8
/usr/local/site_perl/common
/usr/opt/perl5/lib/site_perl/5.20.1/aix-thread-multi
/usr/opt/perl5/lib/site_perl/5.20.1
/usr/opt/perl5/lib/5.20.1/aix-thread-multi
/usr/opt/perl5/lib/5.20.1
/usr/opt/perl5/lib/site_perl/5.8.8
/usr/opt/perl5/lib/site_perl