Hi David,

I have done a lot of debugging on dragonfly and the issue proved to be pretty basic.

Module::Build and ExtUtils::CBuilder both do some lookup based on platform, the two lists are inconsistent and dragonfly is not mentioned in the list in CBuilder, so dragonfly is not regarded as a Unix system and the env command is not applied to the link commandline produced in Module::Build's t/xs.t tests (test 13 to be exact).

So updating the list does the job in ExtUtils::CBuilder does the job for dragonfly. The inconsistency does not matter, but the DRY violation is of course a bit ugly.

Code snippets below,

jonasbn

from Module::Build (in Build.pm) version 1.32:

# Okay, this is the brute-force method of finding out what kind of
# platform we're on.  I don't know of a systematic way.  These values
# came from the latest (bleadperl) perlport.pod.

my %OSTYPES = qw(
                 aix       Unix
                 bsdos     Unix
                 dgux      Unix
                 dragonfly Unix
                 dynixptx  Unix
                 freebsd   Unix
                 linux     Unix
                 haiku     Unix
                 hpux      Unix
                 irix      Unix
                 darwin    Unix
                 machten   Unix
                 midnightbsd Unix
                 mirbsd    Unix
                 next      Unix
                 openbsd   Unix
                 netbsd    Unix
                 dec_osf   Unix
                 nto       Unix
                 svr4      Unix
                 svr5      Unix
                 sco_sv    Unix
                 unicos    Unix
                 unicosmk  Unix
                 solaris   Unix
                 sunos     Unix
                 cygwin    Unix
                 os2       Unix
                 interix   Unix
                 gnu       Unix
                 gnukfreebsd Unix

                 dos       Windows
                 MSWin32   Windows

                 os390     EBCDIC
                 os400     EBCDIC
                 posix-bc  EBCDIC
                 vmesa     EBCDIC

                 MacOS     MacOS
                 VMS       VMS
                 VOS       VOS
                 riscos    RiscOS
                 amigaos   Amiga
                 mpeix     MPEiX
                );

from ExtUtils::CBuilder (CBuilder.pm) version 0.24

# Okay, this is the brute-force method of finding out what kind of
# platform we're on.  I don't know of a systematic way.  These values
# came from the latest (bleadperl) perlport.pod.

my %OSTYPES = qw(
                 aix       Unix
                 bsdos     Unix
                 dgux      Unix
                 dynixptx  Unix
                 freebsd   Unix
                 linux     Unix
                 hpux      Unix
                 irix      Unix
                 darwin    Unix
                 machten   Unix
                 next      Unix
                 openbsd   Unix
                 netbsd    Unix
                 dec_osf   Unix
                 svr4      Unix
                 svr5      Unix
                 sco_sv    Unix
                 unicos    Unix
                 unicosmk  Unix
                 solaris   Unix
                 sunos     Unix
                 cygwin    Unix
                 os2       Unix
                 gnu       Unix
                 gnukfreebsd Unix
                
                 dos       Windows
                 MSWin32   Windows

                 os390     EBCDIC
                 os400     EBCDIC
                 posix-bc  EBCDIC
                 vmesa     EBCDIC

                 MacOS     MacOS
                 VMS       VMS
                 VOS       VOS
                 riscos    RiscOS
                 amigaos   Amiga
                 mpeix     MPEiX
                );



On 02/04/2009, at 17.45, David Golden wrote:

Anyone want to volunteer to fix M::B on dragonfly?

http://matrix.cpantesters.org/?dist=Module-Build

-- David

Reply via email to