Skip Menu |

This queue is for tickets about the version CPAN distribution.

Report information
The Basics
Id: 14743
Status: resolved
Priority: 0/
Queue: version

People
Owner: Nobody in particular
Requestors: r.kobes [...] uwinnipeg.ca
Cc:
AdminCc:

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



Subject: Win32 build fails
With the change in version-0.48 to use version::vxs to avoid conflicts with the existing VERSION.LIB on Win32, I find on Win32 (ActivePerl 813) that the build fails because of an undefined symbol boot_version. This comes about because the lib/version/vxs.def file contains EXPORTS boot_version _boot_version = boot_version whereas vxs.c defines boot_version__vxs. A workaround for this is to change the module name in Build.PL: my $m = $class->new( module_name => 'version::vxs', dist_name => 'version', license => 'perl', c_source => './vutil', requires => { perl => '> 5.005, !=5.9.1, !=5.9.2', }, ); which then generates the correct .def file: EXPORTS boot_version__vxs _boot_version__vxs = boot_version__vxs and all tests subsequently pass. However, this change wouldn't work if version::vpp was used.
Thanks for the report (and the quick fix). I've committed this change to my repository and I'll release 0.49 as soon as I perform a rewrite of the POD that is long overdue. It won't be a problem dealing with version::vpp. I'll be adding code to Build.PL to determine whether the XS code can be compiled and if not, I'll just do something like this (in pseudocode): my $module_name = 'version::vxs'; unless ( can_compile_xs ) { $module_name = 'version::vpp'; } my $m = $class->new( module_name => $module_name, dist_name => 'version', license => 'perl', c_source => './vutil', requires => { perl => '> 5.005, !=5.9.1, !=5.9.2', }, ); Thanks John