Skip Menu |

This queue is for tickets about the Encode CPAN distribution.

Report information
The Basics
Id: 111421
Status: resolved
Priority: 0/
Queue: Encode

People
Owner: Nobody in particular
Requestors: BINGOS [...] cpan.org
Cc: LEONT [...] cpan.org
AdminCc:

Bug Information
Severity: Important
Broken in:
  • 2.75
  • 2.76
  • 2.77
  • 2.78
  • 2.79
  • 2.80
Fixed in: (no value)



Subject: Won't build with statically built perls
Hi, Currently, Encode can't be built with statically built perls (ie. perls without dynamic loading -Uusedl). bleadbuild.log is a log of building the current bleadperl I cloned the p5-Encode repository from Github and found that the build failures started with version 2.78 (buildfromgithubrepo.log) Going back a bit further I found that whilst the build failure wasn't evident before 2.78, the testsuite failed (testfailures2_76.log). The testsuite started failing with statically-built perls with 2.75, 2.74 being the last version of Encode which built and tested cleanly. In order to reproduce one can build a statically built perl with perlbrew: perlbrew install perl-5.20.1 -U usedl Many thanks.
Subject: bleadbuild.log
Trying struct stat st_atime_n...NOT found. Trying struct stat st_atim.tv_nsec...found. Trying struct stat st_uatime...NOT found. You seem to have stat() subsecond timestamps. (Your struct stat has them, but the filesystems must help.) Processing hints file hints/linux.pl Generating a Unix-style Makefile Writing Makefile for Time::HiRes make[1]: Entering directory `/home/bingos/repos/perl.git/cpan/Time-HiRes' "../../miniperl" "-I../../lib" "-I../../lib" "../../lib/ExtUtils/xsubpp" -typemap "../../lib/ExtUtils/typemap" -typemap "typemap" HiRes.xs > HiRes.xsc && mv HiRes.xsc HiRes.c cc -c -fwrapv -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Werror=declaration-after-statement -Wextra -Wc++-compat -Wwrite-strings -O2 -DVERSION=\"1.9728\" -DXS_VERSION=\"1.9728\" "-I../.." -DTI ME_HIRES_NANOSLEEP -DTIME_HIRES_CLOCK_GETTIME -DTIME_HIRES_CLOCK_GETRES -DTIME_HIRES_CLOCK_NANOSLEEP -DTIME_HIRES_CLOCK -DTIME_HIRES_STAT=4 -DATLEASTFIVEOHOHFIVE HiRes.c In file included from ../../perl.h:5616:0, from HiRes.xs:19: HiRes.c: In function XS_Time__HiRes_constant: ../../embed.h:654:42: warning: iv may be used uninitialized in this function [-Wmaybe-uninitialized] #define sv_setiv_mg(a,b) Perl_sv_setiv_mg(aTHX_ a,b) ^ ./const-xs.inc:11:6: note: iv was declared here IV iv; ^ rm -rf ../../lib/auto/Time/HiRes/HiRes.a /usr/bin/ar cr ../../lib/auto/Time/HiRes/HiRes.a HiRes.o && : ../../lib/auto/Time/HiRes/HiRes.a chmod 755 ../../lib/auto/Time/HiRes/HiRes.a make[1]: Leaving directory `/home/bingos/repos/perl.git/cpan/Time-HiRes' ./miniperl -Ilib make_ext.pl lib/auto/Time/Piece/Piece.a MAKE="make" LIBPERL_A=libperl.a LINKTYPE=static CCCDLFLAGS= Generating a Unix-style Makefile Writing Makefile for Time::Piece make[1]: Entering directory `/home/bingos/repos/perl.git/cpan/Time-Piece' "../../miniperl" "-I../../lib" "-I../../lib" "../../lib/ExtUtils/xsubpp" -typemap "../../lib/ExtUtils/typemap" Piece.xs > Piece.xsc && mv Piece.xsc Piece.c cc -c -fwrapv -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Werror=declaration-after-statement -Wextra -Wc++-compat -Wwrite-strings -O2 -DVERSION=\"1.31\" -DXS_VERSION=\"1.31\" "-I../.." Piece.c rm -rf ../../lib/auto/Time/Piece/Piece.a /usr/bin/ar cr ../../lib/auto/Time/Piece/Piece.a Piece.o && : ../../lib/auto/Time/Piece/Piece.a chmod 755 ../../lib/auto/Time/Piece/Piece.a make[1]: Leaving directory `/home/bingos/repos/perl.git/cpan/Time-Piece' ./miniperl -Ilib make_ext.pl lib/auto/Unicode/Collate/Collate.a MAKE="make" LIBPERL_A=libperl.a LINKTYPE=static CCCDLFLAGS= Making header files for XS... make[1]: Entering directory `/home/bingos/repos/perl.git/cpan/Unicode-Collate' "../../miniperl" "-I../../lib" "-I../../lib" "../../lib/ExtUtils/xsubpp" -typemap "../../lib/ExtUtils/typemap" Collate.xs > Collate.xsc && mv Collate.xsc Collate.c cc -c -fwrapv -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Werror=declaration-after-statement -Wextra -Wc++-compat -Wwrite-strings -O2 -DVERSION=\"1.14\" -DXS_VERSION=\"1.14\" "-I../.." Collate .c rm -rf ../../lib/auto/Unicode/Collate/Collate.a /usr/bin/ar cr ../../lib/auto/Unicode/Collate/Collate.a Collate.o && : ../../lib/auto/Unicode/Collate/Collate.a chmod 755 ../../lib/auto/Unicode/Collate/Collate.a make[1]: Leaving directory `/home/bingos/repos/perl.git/cpan/Unicode-Collate' ./miniperl -Ilib make_ext.pl lib/auto/Unicode/Normalize/Normalize.a MAKE="make" LIBPERL_A=libperl.a LINKTYPE=static CCCDLFLAGS= Making header files for XS... Generating a Unix-style Makefile Writing Makefile for Unicode::Normalize make[1]: Entering directory `/home/bingos/repos/perl.git/cpan/Unicode-Normalize' "../../miniperl" "-I../../lib" "-I../../lib" "../../lib/ExtUtils/xsubpp" -typemap "../../lib/ExtUtils/typemap" Normalize.xs > Normalize.xsc && mv Normalize.xsc Normalize.c cc -c -fwrapv -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Werror=declaration-after-statement -Wextra -Wc++-compat -Wwrite-strings -O2 -DVERSION=\"1.25\" -DXS_VERSION=\"1.25\" "-I../.." Normali ze.c rm -rf ../../lib/auto/Unicode/Normalize/Normalize.a /usr/bin/ar cr ../../lib/auto/Unicode/Normalize/Normalize.a Normalize.o && : ../../lib/auto/Unicode/Normalize/Normalize.a chmod 755 ../../lib/auto/Unicode/Normalize/Normalize.a make[1]: Leaving directory `/home/bingos/repos/perl.git/cpan/Unicode-Normalize' ./miniperl -Ilib make_ext.pl lib/auto/Encode/Byte/Byte.a MAKE="make" LIBPERL_A=libperl.a LINKTYPE=static CCCDLFLAGS= Can't find extension Encode/Byte in any of cpan dist ext at make_ext.pl line 250. ./miniperl -Ilib make_ext.pl lib/auto/Encode/CN/CN.a MAKE="make" LIBPERL_A=libperl.a LINKTYPE=static CCCDLFLAGS= Can't find extension Encode/CN in any of cpan dist ext at make_ext.pl line 250. ./miniperl -Ilib make_ext.pl lib/auto/Encode/EBCDIC/EBCDIC.a MAKE="make" LIBPERL_A=libperl.a LINKTYPE=static CCCDLFLAGS= Can't find extension Encode/EBCDIC in any of cpan dist ext at make_ext.pl line 250. ./miniperl -Ilib make_ext.pl lib/auto/Encode/JP/JP.a MAKE="make" LIBPERL_A=libperl.a LINKTYPE=static CCCDLFLAGS= Can't find extension Encode/JP in any of cpan dist ext at make_ext.pl line 250. ./miniperl -Ilib make_ext.pl lib/auto/Encode/KR/KR.a MAKE="make" LIBPERL_A=libperl.a LINKTYPE=static CCCDLFLAGS= Can't find extension Encode/KR in any of cpan dist ext at make_ext.pl line 250. ./miniperl -Ilib make_ext.pl lib/auto/Encode/Symbol/Symbol.a MAKE="make" LIBPERL_A=libperl.a LINKTYPE=static CCCDLFLAGS= Can't find extension Encode/Symbol in any of cpan dist ext at make_ext.pl line 250. ./miniperl -Ilib make_ext.pl lib/auto/Encode/TW/TW.a MAKE="make" LIBPERL_A=libperl.a LINKTYPE=static CCCDLFLAGS= Can't find extension Encode/TW in any of cpan dist ext at make_ext.pl line 250. ./miniperl -Ilib make_ext.pl lib/auto/Encode/Unicode/Unicode.a MAKE="make" LIBPERL_A=libperl.a LINKTYPE=static CCCDLFLAGS= Can't find extension Encode/Unicode in any of cpan dist ext at make_ext.pl line 250. cc -o perl -fstack-protector -L/usr/local/lib perlmain.o lib/auto/arybase/arybase.a lib/auto/attributes/attributes.a lib/auto/B/B.a lib/auto/Compress/Raw/Bzip2/Bzip2.a lib/auto/Compress/Raw/Zlib/Zlib.a lib/auto/Cwd/Cwd.a lib/auto/Data/Dumper/Dumper.a lib/auto/DB_File/DB _File.a lib/auto/Devel/Peek/Peek.a lib/auto/Devel/PPPort/PPPort.a lib/auto/Digest/MD5/MD5.a lib/auto/Digest/SHA/SHA.a lib/auto/Encode/Encode.a lib/auto/Fcntl/Fcntl.a lib/auto/File/DosGlob/DosGlob.a lib/auto/File/Glob/Glob.a lib/auto/Filter/Util/Call/Call.a lib/auto/GDBM_ File/GDBM_File.a lib/auto/Hash/Util/Util.a lib/auto/Hash/Util/FieldHash/FieldHash.a lib/auto/I18N/Langinfo/Langinfo.a lib/auto/IO/IO.a lib/auto/IPC/SysV/SysV.a lib/auto/List/Util/Util.a lib/auto/Math/BigInt/FastCalc/FastCalc.a lib/auto/MIME/Base64/Base64.a lib/auto/mro/m ro.a lib/auto/NDBM_File/NDBM_File.a lib/auto/ODBM_File/ODBM_File.a lib/auto/Opcode/Opcode.a lib/auto/PerlIO/encoding/encoding.a lib/auto/PerlIO/mmap/mmap.a lib/auto/PerlIO/scalar/scalar.a lib/auto/PerlIO/via/via.a lib/auto/POSIX/POSIX.a lib/auto/re/re.a lib/auto/SDBM_Fil e/SDBM_File.a lib/auto/Socket/Socket.a lib/auto/Storable/Storable.a lib/auto/Sys/Hostname/Hostname.a lib/auto/Sys/Syslog/Syslog.a lib/auto/threads/threads.a lib/auto/threads/shared/shared.a lib/auto/Tie/Hash/NamedCapture/NamedCapture.a lib/auto/Time/HiRes/HiRes.a lib/aut o/Time/Piece/Piece.a lib/auto/Unicode/Collate/Collate.a lib/auto/Unicode/Normalize/Normalize.a lib/auto/Encode/Byte/Byte.a lib/auto/Encode/CN/CN.a lib/auto/Encode/EBCDIC/EBCDIC.a lib/auto/Encode/JP/JP.a lib/auto/Encode/KR/KR.a lib/auto/Encode/Symbol/Symbol.a lib/auto/Enc ode/TW/TW.a lib/auto/Encode/Unicode/Unicode.a libperl.a `cat ext.libs` -lpthread -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat lib/auto/Encode/Byte/Byte.a(byte_t.o):(.rodata+0xb40): multiple definition of `cp1252_encoding' lib/auto/Encode/Encode.a(def_t.o):(.rodata+0x80): first defined here lib/auto/POSIX/POSIX.a(POSIX.o): In function `XS_POSIX_tmpnam': POSIX.c:(.text+0x3743): warning: the use of `tmpnam' is dangerous, better use `mkstemp' collect2: error: ld returned 1 exit status make: *** [perl] Error 1 bingos@azkaban ~/repos/perl.git $
Subject: buildfromgithubrepo.log

Message body is not shown because it is too large.

Subject: testfailures2_76.log

Message body is not shown because it is too large.

On Mon Jan 25 14:03:56 2016, BINGOS wrote: Show quoted text
> Hi, > > Currently, Encode can't be built with statically built perls (ie. > perls without dynamic loading -Uusedl). > > bleadbuild.log is a log of building the current bleadperl > > I cloned the p5-Encode repository from Github and found that the build > failures started with version > 2.78 (buildfromgithubrepo.log) > > Going back a bit further I found that whilst the build failure wasn't > evident before 2.78, the > testsuite failed (testfailures2_76.log). The testsuite started failing > with statically-built perls > with 2.75, 2.74 being the last version of Encode which built and > tested cleanly. > > In order to reproduce one can build a statically built perl with > perlbrew: > > perlbrew install perl-5.20.1 -U usedl > > Many thanks.
I've attached a patch (against blead, patch -p3 may be necessary) that should fix this issue. It's currently in a smoke-me branch but it's a fairly simple fix. Leon
Subject: 0001-Allow-Encode-to-be-built-on-static-perls.patch
From 476ec6b98f898ff52e8c56292f641ad3d9f3c142 Mon Sep 17 00:00:00 2001 From: Leon Timmermans <fawaka@gmail.com> Date: Fri, 25 Mar 2016 18:01:48 +0100 Subject: [PATCH] Allow Encode to be built on static perls Previously there were build failures because cp1252 was defined both in the default set of encodings an in the byte set. --- cpan/Encode/Byte/Makefile.PL | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpan/Encode/Byte/Makefile.PL b/cpan/Encode/Byte/Makefile.PL index b8d09e6..6824bbb 100644 --- a/cpan/Encode/Byte/Makefile.PL +++ b/cpan/Encode/Byte/Makefile.PL @@ -39,7 +39,7 @@ my %tables = ( my %not_here = map {$_ => 1} ( - '8859-1.ucm', # default + '8859-1.ucm', 'cp1252.ucm', # default qw(cp037.ucm cp1026.ucm cp1047.ucm cp500.ucm cp875.ucm), # EBCDIC qw(cp932.ucm cp936.ucm cp949.ucm cp950.ucm), # CJK ); -- 2.8.0-rc4-285-gc3ac548
Dan: We're going to apply this ticket in blead, but it would be great to see it in an upcoming release of Encode so that users can safely upgrade once they're on v5.24.0 perl. Thanks! -- rjbs
This patch is in: https://github.com/dankogai/p5-encode/commit/f61f6122ea0915b73960df42b1b6ec25e8dc746b Dan the Maintainer Thereof On Fri Apr 01 09:41:01 2016, RJBS wrote: Show quoted text
> Dan: > > We're going to apply this ticket in blead, but it would be great to > see it in an upcoming release of Encode so that users can safely > upgrade once they're on v5.24.0 perl. > > Thanks!