Skip Menu |

This queue is for tickets about the Text-Iconv CPAN distribution.

Report information
The Basics
Id: 35135
Status: open
Priority: 0/
Queue: Text-Iconv

People
Owner: Nobody in particular
Requestors: jello [...] debian.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: Can't build Text::Iconv 1.7
Date: Wed, 16 Apr 2008 20:49:35 +0000
To: bug-Text-Iconv [...] rt.cpan.org
From: Joe Nahmias <jello [...] debian.org>
Hello, I tried to install the Text::Iconv module into my Strawberry Perl installation and got a bunch of undefined references when trying to link Iconv.dll: undefined reference to `_imp__libiconv' undefined reference to `_imp__libiconv' undefined reference to `_imp__libiconvctl' undefined reference to `_imp__libiconv_open' undefined reference to `_imp__libiconv_open' undefined reference to `_imp__libiconv_close' Full build log is attached. Details on my config: D:\>perl -V Summary of my perl5 (revision 5 version 10 subversion 0) configuration: Platform: osname=MSWin32, osvers=5.1, archname=MSWin32-x86-multi-thread uname='' config_args='undef' hint=recommended, useposix=true, d_sigaction=undef useithreads=define, usemultiplicity=define useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef use64bitint=undef, use64bitall=undef, uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='gcc', ccflags =' -s -O2 -DWIN32 -DHAVE_DES_FCRYPT -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -DPERL_MSVCRT_READFIX', optimize='-s -O2', cppflags='-DWIN32' ccversion='', gccversion='3.4.5', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=12 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='long long', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='g++', ldflags ='-s -L"C:\strawberry\perl\lib\CORE" -L"C:\strawberry\c\lib"' libpth=C:\strawberry\c\lib libs= -lmsvcrt -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 perllibs= -lmsvcrt -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 libc=-lmsvcrt, so=dll, useshrplib=true, libperl=libperl510.a gnulibc_version='' Dynamic Linking: dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' ' cccdlflags=' ', lddlflags='-mdll -s -L"C:\strawberry\perl\lib\CORE" -L"C:\strawberry\c\lib"' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT PERL_IMPLICIT_SYS PERL_MALLOC_WRAP PL_OP_SLAB_ALLOC USE_ITHREADS USE_LARGE_FILES USE_PERLIO Built under MSWin32 Compiled at Dec 21 2007 14:11:41 @INC: C:/strawberry/perl/lib C:/strawberry/perl/site/lib .
Subject: Re: [rt.cpan.org #35135] Can't build Text::Iconv 1.7
Date: Wed, 16 Apr 2008 21:31:31 +0000
To: Bugs in Text-Iconv via RT <bug-Text-Iconv [...] rt.cpan.org>
From: Joe Nahmias <jello [...] debian.org>
Oops, forgot the attachment...

Message body is not shown because sender requested not to inline it.

From: mxp [...] dynalabs.de
Hi, On Wed Apr 16 16:50:10 2008, jello wrote: Show quoted text
> I tried to install the Text::Iconv module into my Strawberry Perl > installation and got a bunch of undefined references when trying to > link Iconv.dll: > > undefined reference to `_imp__libiconv' > undefined reference to `_imp__libiconv' > undefined reference to `_imp__libiconvctl' > undefined reference to `_imp__libiconv_open' > undefined reference to `_imp__libiconv_open' > undefined reference to `_imp__libiconv_close' > > Full build log is attached. Details on my config:
Apparently (judging from the build log), it is not being linked to libiconv. No wonder the functions can't be found. Since I don't have access to a Windows system, this is hard to debug. The need for -liconv is correctly detected, so -liconv should be added to the $config{LIBS}. I don't know why it is not used, maybe it's overwritten. Someone would have to figure this out.
I just managed to install Text::Iconv 1.7 on Strawberry 5.10.1, out of the box:

<<
C:\>cpan Text::Iconv
Database was generated on Tue, 19 Jan 2010 08:11:19 GMT
Running install for module 'Text::Iconv'
Running make for M/MP/MPIOTR/Text-Iconv-1.7.tar.gz
Fetching with LWP:
http://cpan.strawberryperl.com/authors/id/M/MP/MPIOTR/Text-Iconv-1.7.tar.gz
Fetching with LWP:
http://cpan.strawberryperl.com/authors/id/M/MP/MPIOTR/CHECKSUMS
Checksum for C:\strawberry\cpan\sources\authors\id\M\MP\MPIOTR\Text-Iconv-1.7.tar.gz ok

  CPAN.pm: Going to build M/MP/MPIOTR/Text-Iconv-1.7.tar.gz

Checking for iconv ... ok (added -liconv)

NOTE: If you have multiple iconv implementations installed, you might
      want to make sure that I've found the one you want to use.
      If necessary, you can explicitly specify paths like this:

      C:\strawberry\perl\bin\perl.exe Makefile.PL LIBS='-L/path/to/lib' INC='-I/path/to/include'

Checking if your kit is complete...
Looks good
Writing Makefile for Text::Iconv
(C:\strawberry\perl\bin\perl.exe Makefile.PL exited with 0)
CPAN::Reporter: Makefile.PL result is 'pass', No errors.
cp Iconv.pm blib\lib\Text\Iconv.pm
AutoSplitting blib\lib\Text\Iconv.pm (blib\lib\auto\Text\Iconv)
C:\strawberry\perl\bin\perl.exe C:\strawberry\perl\lib\ExtUtils\xsubpp  -typemap C:\strawberry\perl\lib\ExtUtils\typemap -typemap typemap  Iconv.xs > Iconv.xsc && C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e "mv" -- Iconv.xsc Iconv.cgcc -c          -s -O2 -DWIN32 -DHAVE_DES_FCRYPT -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -DPERL_MSVCRT_READFIX -s -O2    -DVERSION=\"1.7\"     -DXS_VERSION=\"1.7\"  "-IC:\strawberry\perl\lib\CORE"   Iconv.c
Running Mkbootstrap for Text::Iconv ()
C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e "chmod" -- 644 Iconv.bs
C:\strawberry\perl\bin\perl.exe -MExtUtils::Mksymlists \
     -e "Mksymlists('NAME'=>\"Text::Iconv\", 'DLBASE' => 'Iconv', 'DL_FUNCS' => {  }, 'FUNCLIST' => [], 'IMPORTS' => {  }, 'DL_VARS' => []);"
dlltool --def Iconv.def --output-exp dll.exp
g++ -o blib\arch\auto\Text\Iconv\Iconv.dll -Wl,--base-file -Wl,dll.base -mdll -s -L"C:\strawberry\perl\lib\CORE" -L"C:\strawberry\c\lib" Iconv.o -Wl,--image-base,0x3f4d0000  C:\strawberry\perl\lib\CORE\libperl510.a C:\strawberry\c\lib\libiconv.a C:\strawberry\c\lib\libmoldname.a C:\strawberry\c\lib\libkernel32.a C:\strawberry\c\lib\libuser32.a C:\strawberry\c\lib\libgdi32.a C:\strawberry\c\lib\libwinspool.a C:\strawberry\c\lib\libcomdlg32.a C:\strawberry\c\lib\libadvapi32.a C:\strawberry\c\lib\libshell32.a C:\strawberry\c\lib\libole32.a C:\strawberry\c\lib\liboleaut32.a C:\strawberry\c\lib\libnetapi32.a C:\strawberry\c\lib\libuuid.a C:\strawberry\c\lib\libws2_32.a C:\strawberry\c\lib\libmpr.a C:\strawberry\c\lib\libwinmm.a C:\strawberry\c\lib\libversion.a C:\strawberry\c\lib\libodbc32.a C:\strawberry\c\lib\libodbccp32.a dll.exp
dlltool --def Iconv.def --base-file dll.base --output-exp dll.exp
g++ -o blib\arch\auto\Text\Iconv\Iconv.dll -mdll -s -L"C:\strawberry\perl\lib\CORE" -L"C:\strawberry\c\lib" Iconv.o -Wl,--image-base,0x3f4d0000  C:\strawberry\perl\lib\CORE\libperl510.a C:\strawberry\c\lib\libiconv.a C:\strawberry\c\lib\libmoldname.a C:\strawberry\c\lib\libkernel32.a C:\strawberry\c\lib\libuser32.a C:\strawberry\c\lib\libgdi32.a C:\strawberry\c\lib\libwinspool.a C:\strawberry\c\lib\libcomdlg32.a C:\strawberry\c\lib\libadvapi32.a C:\strawberry\c\lib\libshell32.a C:\strawberry\c\lib\libole32.a C:\strawberry\c\lib\liboleaut32.a C:\strawberry\c\lib\libnetapi32.a C:\strawberry\c\lib\libuuid.a C:\strawberry\c\lib\libws2_32.a C:\strawberry\c\lib\libmpr.a C:\strawberry\c\lib\libwinmm.a C:\strawberry\c\lib\libversion.a C:\strawberry\c\lib\libodbc32.a C:\strawberry\c\lib\libodbccp32.a dll.exp
C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e "chmod" -- 755 blib\arch\auto\Text\Iconv\Iconv.dll
C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e "cp" -- Iconv.bs blib\arch\auto\Text\Iconv\Iconv.bs
C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e "chmod" -- 644 blib\arch\auto\Text\Iconv\Iconv.bs
(C:\strawberry\c\bin\dmake.EXE exited with 0)
CPAN::Reporter: dmake result is 'pass', No errors.
  MPIOTR/Text-Iconv-1.7.tar.gz
  C:\strawberry\c\bin\dmake.EXE -- OK
Running make test
C:\strawberry\perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib\lib', 'blib\arch')" t/*.t
t/00_load.t ...... ok
t/01_charsets.t .. ok
All tests successful.
Files=2, Tests=14,  1 wallclock secs ( 0.06 usr +  0.01 sys =  0.08 CPU)
Result: PASS
(C:\strawberry\c\bin\dmake.EXE test exited with 0)
CPAN::Reporter: Test result is 'pass', All tests successful.
CPAN::Reporter: preparing a CPAN Testers report for Text-Iconv-1.7
CPAN::Reporter: sending test report with 'pass' to cpan-testers@perl.org
  MPIOTR/Text-Iconv-1.7.tar.gz
  C:\strawberry\c\bin\dmake.EXE test -- OK
Running make install
Prepending C:\strawberry\cpan\build\Text-Iconv-1.7-EQT4ZA/blib/arch C:\strawberry\cpan\build\Text-Iconv-1.7-EQT4ZA/blib/lib to PERL5LIB for 'install'
Files found in blib\arch: installing files in blib\lib into architecture dependent library tree
Installing C:\strawberry\perl\site\lib\auto\Text\Iconv\Iconv.bs
Installing C:\strawberry\perl\site\lib\auto\Text\Iconv\Iconv.dll
Installing C:\strawberry\perl\site\lib\auto\Text\Iconv\autosplit.ix
Installing C:\strawberry\perl\site\lib\Text\Iconv.pm
Appending installation info to C:\strawberry\perl\lib/perllocal.pod
  MPIOTR/Text-Iconv-1.7.tar.gz
  C:\strawberry\c\bin\dmake.EXE install UNINST=1 -- OK
Show quoted text
>>
From: insane [...] mozgam.net
Win7 x64, Strawberry Perl 5.14.2.1 (32bit), still does not work: C:\Users\Insane\Documents\Dropbox\Dev\perl\gupkb>cpan Text::Iconv CPAN: LWP::UserAgent loaded ok (v6.03) CPAN: Time::HiRes loaded ok (v1.9724) Fetching with LWP: http://cpan.strawberryperl.com/authors/01mailrc.txt.gz CPAN: YAML loaded ok (v0.77) CPAN: CPAN::SQLite loaded ok (v0.202) Fetching with LWP: http://cpan.strawberryperl.com/modules/02packages.details.txt.gz Fetching with LWP: http://cpan.strawberryperl.com/modules/03modlist.data.gz Creating database file ... Done!Running install for module 'Text::Iconv' Running make for M/MP/MPIOTR/Text-Iconv-1.7.tar.gz Fetching with LWP: http://cpan.strawberryperl.com/authors/id/M/MP/MPIOTR/Text-Iconv-1.7.tar.gz CPAN: Digest::SHA loaded ok (v5.63) Fetching with LWP: http://cpan.strawberryperl.com/authors/id/M/MP/MPIOTR/CHECKSUMS CPAN: Compress::Zlib loaded ok (v2.042) Checksum for D:\strawberry\cpan\sources\authors\id\M\MP\MPIOTR\Text-Iconv-1.7.ta r.gz ok CPAN: Archive::Tar loaded ok (v1.80) CPAN: File::Temp loaded ok (v0.22) CPAN: Parse::CPAN::Meta loaded ok (v1.4401) CPAN: CPAN::Meta loaded ok (v2.112621) CPAN.pm: Building M/MP/MPIOTR/Text-Iconv-1.7.tar.gz Checking for iconv ... ok (added -liconv) NOTE: If you have multiple iconv implementations installed, you might want to make sure that I've found the one you want to use. If necessary, you can explicitly specify paths like this: D:\strawberry\perl\bin\perl.exe Makefile.PL LIBS='-L/path/to/lib' INC='-I/ path/to/include' Checking if your kit is complete... Looks good Writing Makefile for Text::Iconv Writing MYMETA.yml and MYMETA.json CPAN: Module::CoreList loaded ok (v2.57) cp Iconv.pm blib\lib\Text\Iconv.pm AutoSplitting blib\lib\Text\Iconv.pm (blib\lib\auto\Text\Iconv) D:\strawberry\perl\bin\perl.exe D:\strawberry\perl\lib\ExtUtils\xsubpp -typemap D:\strawberry\perl\lib\ExtUtils\typemap -typemap typemap Iconv.xs > Iconv.xsc && D:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e mv -- Iconv.xsc Iconv. c gcc -c -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DUSE_SITECUSTOMIZE -DPER L_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfields -s -O 2 -DVERSION=\"1.7\" -DXS_VERSION=\"1.7\" "-ID:\strawberry\perl\lib\ CORE" Iconv.c Iconv.xs: In function 'do_conv': Iconv.xs:124: warning: passing argument 2 of 'libiconv' from incompatible pointe r type d:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.4.7/../../../../include/iconv. h:83: note: expected 'char **' but argument is of type 'const char **' Running Mkbootstrap for Text::Iconv () D:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e chmod -- 644 Iconv.bs D:\strawberry\perl\bin\perl.exe -MExtUtils::Mksymlists \ -e "Mksymlists('NAME'=>\"Text::Iconv\", 'DLBASE' => 'Iconv', 'DL_FUNCS' => { }, 'FUNCLIST' => [], 'IMPORTS' => { }, 'DL_VARS' => []);" dlltool --def Iconv.def --output-exp dll.exp g++ -o blib\arch\auto\Text\Iconv\Iconv.dll -Wl,--base-file -Wl,dll.base -mdll -s -L"D:\strawberry\perl\lib\CORE" -L"D:\strawberry\c\lib" Iconv.o D:\strawberry \perl\lib\CORE\libperl514.a D:\strawberry\c\lib\libiconv.a D:\strawberry\c\i686- w64-mingw32\lib\libmoldname.a D:\strawberry\c\i686-w64-mingw32\lib\libkernel32.a D:\strawberry\c\i686-w64-mingw32\lib\libuser32.a D:\strawberry\c\i686-w64-mingw 32\lib\libgdi32.a D:\strawberry\c\i686-w64-mingw32\lib\libwinspool.a D:\strawber ry\c\i686-w64-mingw32\lib\libcomdlg32.a D:\strawberry\c\i686-w64-mingw32\lib\lib advapi32.a D:\strawberry\c\i686-w64-mingw32\lib\libshell32.a D:\strawberry\c\i68 6-w64-mingw32\lib\libole32.a D:\strawberry\c\i686-w64-mingw32\lib\liboleaut32.a D:\strawberry\c\i686-w64-mingw32\lib\libnetapi32.a D:\strawberry\c\i686-w64-ming w32\lib\libuuid.a D:\strawberry\c\i686-w64-mingw32\lib\libws2_32.a D:\strawberry \c\i686-w64-mingw32\lib\libmpr.a D:\strawberry\c\i686-w64-mingw32\lib\libwinmm.a D:\strawberry\c\i686-w64-mingw32\lib\libversion.a D:\strawberry\c\i686-w64-ming w32\lib\libodbc32.a D:\strawberry\c\i686-w64-mingw32\lib\libodbccp32.a D:\strawb erry\c\i686-w64-mingw32\lib\libcomctl32.a dll.exp dll.exp: file not recognized: File format not recognized collect2: ld returned 1 exit status dmake.EXE: Error code 129, while making 'blib\arch\auto\Text\Iconv\Iconv.dll' MPIOTR/Text-Iconv-1.7.tar.gz D:\strawberry\c\bin\dmake.EXE -- NOT OK Running make test Can't test without successful make Running make install Make had returned bad status, install seems impossible