Subject: | SocketFactory.pm compilation issue with Socket6 on Cygwin |
When running the test suite with Socket6 perl module installed on Cygwin
(CYGWIN_NT-5.1 erybski 1.5.19(0.150/4/2) 2006-01-20 13:28 i686 Cygwin),
I get the following repeated error on any test that involves
POE::Wheel::SocketFactory:
Your vendor has not defined Socket macro AF_INET6, used at
blib/lib/POE/Wheel/SocketFactory.pm line 67
Compilation failed in require at blib/lib/POE/Component/Server/TCP.pm
line 19.
BEGIN failed--compilation aborted at
blib/lib/POE/Component/Server/TCP.pm line 19.
Compilation failed in require at (eval 33) line 1.
BEGIN failed--compilation aborted at (eval 33) line 1.
could not import qw(Component::Server::TCP) at
tests/30_loops/00_base/comp_tcp.pm line 22
BEGIN failed--compilation aborted at tests/30_loops/00_base/comp_tcp.pm
line 22.
Compilation failed in require at tests/30_loops/10_select/comp_tcp.t line 9.
# Looks like your test died before it could output anything.
The quick solution: Remove Socket6 from perl on Cygwin.
My concern is that POE used to check (and skip) tests for Socket6 on
cygwin. It appears that the addition of an import of a constant from
the Socket6 package is causing POE to now fail before it can even load
SocketFactory.pm.
An eval closure should be used to check if any of the Socket6::*_INET6
constants are defined or not.
Summary of my perl5 (revision 5 version 8 subversion 7) configuration:
Platform:
osname=cygwin, osvers=1.5.18(0.13242),
archname=cygwin-thread-multi-64int
uname='cygwin_nt-5.1 inspiron 1.5.18(0.13242) 2005-07-02 20:30 i686
unknown unknown cygwin '
config_args='-de -Dmksymlinks -Duse64bitint -Dusethreads
-Uusemymalloc -Doptimize=-O3 -Dman3ext=3pm -Dusesitecustomize'
hint=recommended, useposix=true, d_sigaction=define
usethreads=define use5005threads=undef useithreads=define
usemultiplicity=define
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=define use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='gcc', ccflags ='-DPERL_USE_SAFE_PUTENV -fno-strict-aliasing
-pipe -I/usr/local/include',
optimize='-O3',
cppflags='-DPERL_USE_SAFE_PUTENV -fno-strict-aliasing -pipe
-I/usr/local/include'
ccversion='', gccversion='3.4.4 (cygming special) (gdc 0.12, using
dmd 0.125)', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
ivtype='long long', ivsize=8, nvtype='double', nvsize=8,
Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='ld2', ldflags =' -s -L/usr/local/lib'
libpth=/usr/local/lib /lib /usr/lib
libs=-lgdbm -ldb -lcrypt -lgdbm_compat
perllibs=-lcrypt -lgdbm_compat
libc=/usr/lib/libc.a, so=dll, useshrplib=true, libperl=libperl.a
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' -s'
cccdlflags=' ', lddlflags=' -s -L/usr/local/lib'
Characteristics of this binary (from libperl):
Compile-time options: MULTIPLICITY USE_ITHREADS USE_64_BIT_INT
USE_LARGE_FILES USE_SITECUSTOMIZE
PERL_IMPLICIT_CONTEXT
Locally applied patches:
SPRINTF0 - fixes for sprintf formatting issues - CVE-2005-3962
Built under cygwin
Compiled at Dec 30 2005 02:44:25
%ENV:
CYGWIN=""binmode tty ntsec""
@INC:
/usr/lib/perl5/5.8/cygwin
/usr/lib/perl5/5.8
/usr/lib/perl5/site_perl/5.8/cygwin
/usr/lib/perl5/site_perl/5.8
/usr/lib/perl5/site_perl/5.8/cygwin
/usr/lib/perl5/site_perl/5.8
/usr/lib/perl5/vendor_perl/5.8/cygwin
/usr/lib/perl5/vendor_perl/5.8
/usr/lib/perl5/vendor_perl/5.8/cygwin
/usr/lib/perl5/vendor_perl/5.8
.