Skip Menu |

This queue is for tickets about the Math-Cephes CPAN distribution.

Report information
The Basics
Id: 19716
Status: resolved
Priority: 0/
Queue: Math-Cephes

People
Owner: Nobody in particular
Requestors: aaron [...] FreeBSD.org
Cc:
AdminCc:

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



Subject: Problem building under Perl 5.6+
It appears that make does not run in libmd/ directory before it is run in the main directory, so the library is not built by the time make tries to link against it. I do not know what operation creates a zero-length file, but the solution would be to trick make to execute "subdirs" target before doing the actual build. This happens about 6 builds out of 10. Sometimes it does manage to build all the libmd files first, but usually not. Below is the erroneous build log. moondance# perl Makefile.PL Checking if your kit is complete... Looks good Writing Makefile for Math::Cephes::libmd Writing Makefile for Math::Cephes The file libmd/mconf.h, which contains machine-dependent definitions, may require some manual editing for your platform. moondance# make cp lib/Math/Cephes.pod blib/lib/Math/Cephes.pod cp lib/Math/Cephes/Matrix.pm blib/lib/Math/Cephes/Matrix.pm cp lib/Math/Cephes.pm blib/lib/Math/Cephes.pm cp lib/Math/Cephes/Polynomial.pm blib/lib/Math/Cephes/Polynomial.pm cp lib/Math/Cephes/Fraction.pm blib/lib/Math/Cephes/Fraction.pm cp lib/Math/Cephes/Complex.pm blib/lib/Math/Cephes/Complex.pm cc -c -I/usr/ports/math/p5-Math-Cephes/work/Math-Cephes-0.42/libmd -DAPPLLIB_EXP="/usr/local/lib/perl5/5.8.8/BSDPAN" -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -O -pipe -DVERSION=\"0.42\" -DXS_VERSION=\"0.42\" -DPIC -fPIC "-I/usr/local/lib/perl5/5.8.8/mach/CORE" Cephes_wrap.c Cephes_wrap.c: In function `SWIG_Perl_ConvertPtr': Cephes_wrap.c:517: warning: cast to pointer from integer of different size cc -c -I/usr/ports/math/p5-Math-Cephes/work/Math-Cephes-0.42/libmd -DAPPLLIB_EXP="/usr/local/lib/perl5/5.8.8/BSDPAN" -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -O -pipe -DVERSION=\"0.42\" -DXS_VERSION=\"0.42\" -DPIC -fPIC "-I/usr/local/lib/perl5/5.8.8/mach/CORE" arrays.c Running Mkbootstrap for Math::Cephes () chmod 644 Cephes.bs rm -f blib/arch/auto/Math/Cephes/Cephes.so cc -shared -L/usr/local/lib Cephes_wrap.o arrays.o -o blib/arch/auto/Math/Cephes/Cephes.so /usr/ports/math/p5-Math-Cephes/work/Math-Cephes-0.42/libmd/libmd.a -L/usr/ports/math/p5-Math-Cephes/work/Math-Cephes-0.42/libmd -lmd /usr/ports/math/p5-Math-Cephes/work/Math-Cephes-0.42/libmd/libmd.a: file not recognized: File truncated *** Error code 1 Stop in /usr/ports/math/p5-Math-Cephes/work/Math-Cephes-0.42.
On Mon Jun 05 16:29:31 2006, guest wrote: Show quoted text
> It appears that make does not run in libmd/ directory before it is run in > the main directory, so the library is not built by the time make tries to > link against it. I do not know what operation creates a zero-length file, > but the solution would be to trick make to execute "subdirs" target before > doing the actual build. > > This happens about 6 builds out of 10. Sometimes it does manage to > build all the libmd files first, but usually not. Below is the > erroneous build log.
Thanks for the report. The operation that creates a zero-length file comes from the top-level Makefile.PL, where it opens the DUMMY filehandle. The reason that's there is that, without it, one gets a warning that the library can't be found, and at least for some systems, linking against that library is then dropped. This dummy file seems like it may be part of the problem; if you comment out the lines open(DUMMY, ">$dummy") or die ... close(DUMMY) does that help?
On Mon Jun 12 13:14:53 2006, RKOBES wrote: Show quoted text
> On Mon Jun 05 16:29:31 2006, guest wrote:
> > It appears that make does not run in libmd/ directory before it is
run in Show quoted text
> > the main directory, so the library is not built by the time make
tries to Show quoted text
> > link against it. I do not know what operation creates a zero-length
file, Show quoted text
> > but the solution would be to trick make to execute "subdirs" target
before Show quoted text
> > doing the actual build. > > > > This happens about 6 builds out of 10. Sometimes it does manage to > > build all the libmd files first, but usually not. Below is the > > erroneous build log.
> > Thanks for the report. > > The operation that creates a zero-length file comes from the > top-level Makefile.PL, where it opens the DUMMY filehandle. > The reason that's there is that, without it, one gets a > warning that the library can't be found, and at least for > some systems, linking against that library is then dropped. > This dummy file seems like it may be part of the problem; > if you comment out the lines > open(DUMMY, ">$dummy") or die ... > close(DUMMY) > does that help?
That seems to help, yes. Thanks!
On Fri Jun 16 14:07:14 2006, guest wrote: Show quoted text
> On Mon Jun 12 13:14:53 2006, RKOBES wrote:
> > On Mon Jun 05 16:29:31 2006, guest wrote:
> > > It appears that make does not run in libmd/ directory before it is
> run in
> > > the main directory, so the library is not built by the time make
> tries to
> > > link against it. I do not know what operation creates a zero-length
> file,
> > > but the solution would be to trick make to execute "subdirs" target
> before
> > > doing the actual build. > > > > > > This happens about 6 builds out of 10. Sometimes it does manage to > > > build all the libmd files first, but usually not. Below is the > > > erroneous build log.
> > > > Thanks for the report. > > > > The operation that creates a zero-length file comes from the > > top-level Makefile.PL, where it opens the DUMMY filehandle. > > The reason that's there is that, without it, one gets a > > warning that the library can't be found, and at least for > > some systems, linking against that library is then dropped. > > This dummy file seems like it may be part of the problem; > > if you comment out the lines > > open(DUMMY, ">$dummy") or die ... > > close(DUMMY) > > does that help?
> > That seems to help, yes. Thanks! >
The problem also occurs on 5.8.8 and 5.10.0 systems. And is still not fixed. Regards, Slaven
This should be fixed in version 0.46 of Math-Cephes, which has just been uploaded to CPAN. Thanks very much for the reports.