Skip Menu |

This queue is for tickets about the PathTools CPAN distribution.

Report information
The Basics
Id: 11251
Status: resolved
Priority: 0/
Queue: PathTools

People
Owner: Nobody in particular
Requestors: tedm [...] toybox.placo.com
Cc:
AdminCc:

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



Subject: Cwd blows up on Perl 5.005_03
Under Solaris 2.5.1 with Perl 5.005_03 compiled with gcc 2.95.3 I get the following: # perl Makefile.PL Checking if your kit is complete... Looks good Writing Makefile for Cwd # make mkdir blib mkdir blib/lib mkdir blib/arch mkdir blib/arch/auto mkdir blib/arch/auto/Cwd mkdir blib/lib/auto mkdir blib/lib/auto/Cwd mkdir blib/man3 cp lib/File/Spec/VMS.pm blib/lib/File/Spec/VMS.pm cp lib/File/Spec/Epoc.pm blib/lib/File/Spec/Epoc.pm cp lib/ppport.h blib/lib/ppport.h cp lib/File/Spec/Functions.pm blib/lib/File/Spec/Functions.pm cp Cwd.pm blib/lib/Cwd.pm cp lib/File/Spec.pm blib/lib/File/Spec.pm cp lib/File/Spec/Cygwin.pm blib/lib/File/Spec/Cygwin.pm cp lib/File/Spec/Mac.pm blib/lib/File/Spec/Mac.pm cp lib/File/Spec/Win32.pm blib/lib/File/Spec/Win32.pm cp lib/File/Spec/Unix.pm blib/lib/File/Spec/Unix.pm cp lib/File/Spec/OS2.pm blib/lib/File/Spec/OS2.pm /usr/bin/perl -I/usr/local/lib/perl5/5.00503/i86pc-solaris -I/usr/local/lib/perl5/5.00503 /usr/local/lib/perl5/5.00503/ExtUtils/xsubpp -typemap /usr/local/lib/perl5/5.00503/ExtUtils/typemap Cwd.xs >xstmp.c && mv xstmp.c Cwd.c gcc -c -I/usr/local/include -mpentium -O2 -DVERSION=\"3.03\" -DXS_VERSION=\"3.03\" -fPIC -I/usr/local/lib/perl5/5.00503/i86pc-solaris/CORE Cwd.c Cwd.xs: In function `Perl_getcwd_sv': Cwd.xs:274: parse error before `struct' Cwd.xs:282: `statbuf' undeclared (first use in this function) Cwd.xs:282: (Each undeclared identifier is reported only once Cwd.xs:282: for each function it appears in.) Cwd.xs:286: `orig_cdev' undeclared (first use in this function) Cwd.xs:287: `orig_cino' undeclared (first use in this function) Cwd.xs:288: `cdev' undeclared (first use in this function) Cwd.xs:289: `cino' undeclared (first use in this function) Cwd.xs:292: `odev' undeclared (first use in this function) Cwd.xs:293: `oino' undeclared (first use in this function) Cwd.xs:308: `dir' undeclared (first use in this function) Cwd.xs:312: `dp' undeclared (first use in this function) Cwd.xs:316: `namelen' undeclared (first use in this function) Cwd.xs:327: `tdev' undeclared (first use in this function) Cwd.xs:328: `tino' undeclared (first use in this function) Cwd.xs:338: `pathlen' undeclared (first use in this function) *** Error code 1 make: Fatal error: Command failed for target `Cwd.o'
From: tedm [...] toybox.placo.com
[guest - Thu Jan 27 01:19:44 2005]: Show quoted text
> Under Solaris 2.5.1 with Perl 5.005_03 compiled with gcc 2.95.3 I get > the > following: > > # perl Makefile.PL > Checking if your kit is complete... > Looks good > Writing Makefile for Cwd > # make > mkdir blib > mkdir blib/lib > mkdir blib/arch > mkdir blib/arch/auto > mkdir blib/arch/auto/Cwd > mkdir blib/lib/auto > mkdir blib/lib/auto/Cwd > mkdir blib/man3 > cp lib/File/Spec/VMS.pm blib/lib/File/Spec/VMS.pm > cp lib/File/Spec/Epoc.pm blib/lib/File/Spec/Epoc.pm > cp lib/ppport.h blib/lib/ppport.h > cp lib/File/Spec/Functions.pm blib/lib/File/Spec/Functions.pm > cp Cwd.pm blib/lib/Cwd.pm > cp lib/File/Spec.pm blib/lib/File/Spec.pm > cp lib/File/Spec/Cygwin.pm blib/lib/File/Spec/Cygwin.pm > cp lib/File/Spec/Mac.pm blib/lib/File/Spec/Mac.pm > cp lib/File/Spec/Win32.pm blib/lib/File/Spec/Win32.pm > cp lib/File/Spec/Unix.pm blib/lib/File/Spec/Unix.pm > cp lib/File/Spec/OS2.pm blib/lib/File/Spec/OS2.pm > /usr/bin/perl -I/usr/local/lib/perl5/5.00503/i86pc-solaris > -I/usr/local/lib/perl5/5.00503 > /usr/local/lib/perl5/5.00503/ExtUtils/xsubpp -typemap > /usr/local/lib/perl5/5.00503/ExtUtils/typemap Cwd.xs >xstmp.c && mv > xstmp.c Cwd.c > gcc -c -I/usr/local/include -mpentium -O2 -DVERSION=\"3.03\" > -DXS_VERSION=\"3.03\" -fPIC > -I/usr/local/lib/perl5/5.00503/i86pc-solaris/CORE Cwd.c > Cwd.xs: In function `Perl_getcwd_sv': > Cwd.xs:274: parse error before `struct' > Cwd.xs:282: `statbuf' undeclared (first use in this function) > Cwd.xs:282: (Each undeclared identifier is reported only once > Cwd.xs:282: for each function it appears in.) > Cwd.xs:286: `orig_cdev' undeclared (first use in this function) > Cwd.xs:287: `orig_cino' undeclared (first use in this function) > Cwd.xs:288: `cdev' undeclared (first use in this function) > Cwd.xs:289: `cino' undeclared (first use in this function) > Cwd.xs:292: `odev' undeclared (first use in this function) > Cwd.xs:293: `oino' undeclared (first use in this function) > Cwd.xs:308: `dir' undeclared (first use in this function) > Cwd.xs:312: `dp' undeclared (first use in this function) > Cwd.xs:316: `namelen' undeclared (first use in this function) > Cwd.xs:327: `tdev' undeclared (first use in this function) > Cwd.xs:328: `tino' undeclared (first use in this function) > Cwd.xs:338: `pathlen' undeclared (first use in this function) > *** Error code 1 > make: Fatal error: Command failed for target `Cwd.o'
After looking at the other poster I did the following to the Cwd.c program: #define HAS_GETCWD then ran make again, it completed. Here's the output of "make test" # make test PERL_DL_NONLAZY=1 /usr/bin/perl -Iblib/arch -Iblib/lib - I/usr/local/lib/perl5/5.00503/i86pc-solaris - I/usr/local/lib/perl5/5.00503 -e 'use Test::Harness qw(&runtests $verbose); $verbose=0; runtests @ARGV;' t/*.t t/Functions........ok t/Spec.............ok 83/466 skipped: various reasons t/crossplatform....ok 7/50 skipped: Can't load File::Spec::VMS t/cwd..............ok t/rel2abs2rel......ok t/taint............ok t/win32............skipped all skipped: this is not win32 All tests successful, 1 test and 90 subtests skipped. Files=7, Tests=571, 16 wallclock secs (11.72 cusr + 3.71 csys = 15.43 CPU) # Is this good to install?
[guest - Thu Jan 27 01:19:44 2005]: This is what happens when I try to install it: # make install Can't locate loadable object for module Cwd in @INC (@INC contains: blib/lib /usr/local/lib/perl5/5.00503/i86pc- solaris /usr/local/lib/perl5/5.00503 /usr/local/lib/perl5/5.00503/i86pc- solaris /usr/local/lib/perl5/5.00503 /usr/local/lib/perl5/site_perl/5.00 5/i86pc-solaris /usr/local/lib/perl5/site_perl/5.005 .) at /usr/local/lib/perl5/5.00503/ExtUtils/Install.pm line 31 BEGIN failed--compilation aborted at /usr/local/lib/perl5/5.00503/ExtUtils/Install.pm line 31. BEGIN failed--compilation aborted. *** Error code 2 make: Fatal error: Command failed for target `pure_perl_install'
From: kari [...] neurogeneticsinc.com
I have exactly the same problem. Did you ever resolve it? I am running with perl 5.00503 on Solaris 5.8 and using the UNIX cc. The make output up until the beginning of the blow-up is below Thanks, Kari Show quoted text
> make
mkdir blib mkdir blib/lib mkdir blib/arch mkdir blib/arch/auto mkdir blib/arch/auto/Cwd mkdir blib/lib/auto mkdir blib/lib/auto/Cwd mkdir blib/man3 cp lib/File/Spec/VMS.pm blib/lib/File/Spec/VMS.pm cp lib/File/Spec/Epoc.pm blib/lib/File/Spec/Epoc.pm cp lib/ppport.h blib/lib/ppport.h cp lib/File/Spec/Functions.pm blib/lib/File/Spec/Functions.pm cp Cwd.pm blib/lib/Cwd.pm cp lib/File/Spec.pm blib/lib/File/Spec.pm cp lib/File/Spec/Cygwin.pm blib/lib/File/Spec/Cygwin.pm cp lib/File/Spec/Mac.pm blib/lib/File/Spec/Mac.pm cp lib/File/Spec/Win32.pm blib/lib/File/Spec/Win32.pm cp lib/File/Spec/Unix.pm blib/lib/File/Spec/Unix.pm cp lib/File/Spec/OS2.pm blib/lib/File/Spec/OS2.pm /bin/perl -I/usr/perl5/5.00503/sun4-solaris - I/usr/perl5/5.00503 /usr/perl5/5.00503/ExtUtils/xsubpp - typemap /usr/perl5/5.00503/ExtUtils/typemap Cwd.xs >xstmp.c && mv xstmp.c Cwd.c cc -c -xO3 -xdepend -DVERSION=\"3.02\" -DXS_VERSION=\"3.02\" - KPIC -I/usr/perl5/5.00503/sun4-solaris/CORE Cwd.c "Cwd.xs", line 274: syntax error before or at: struct "Cwd.xs", line 282: undefined symbol: statbuf "Cwd.xs", line 282: warning: argument #2 is incompatible with prototype: prototype: pointer to struct stat {unsigned long st_dev, array [3] of long st_pad1, unsigned long st_ino, unsigned long st_mode, unsigned long st_nlink, long st_uid, long st_gid, unsigned long st_rdev, array[2] of long st_pad2, long st_size, long st_pad3, struct timespec {..} st_atim, struct timespec {..} st_mtim, struct timespec {..} st_ctim, long st_blksize, long st_blocks, array[16] of char st_fstype, array[8] of long st_pad4} : "/usr/include/sys/stat_impl.h", line 31 [guest - Thu Jan 27 01:26:12 2005]: Show quoted text
> [guest - Thu Jan 27 01:19:44 2005]: >
> > Under Solaris 2.5.1 with Perl 5.005_03 compiled with gcc 2.95.3 I
get Show quoted text
> > the > > following: > > > > # perl Makefile.PL > > Checking if your kit is complete... > > Looks good > > Writing Makefile for Cwd > > # make > > mkdir blib > > mkdir blib/lib > > mkdir blib/arch > > mkdir blib/arch/auto > > mkdir blib/arch/auto/Cwd > > mkdir blib/lib/auto > > mkdir blib/lib/auto/Cwd > > mkdir blib/man3 > > cp lib/File/Spec/VMS.pm blib/lib/File/Spec/VMS.pm > > cp lib/File/Spec/Epoc.pm blib/lib/File/Spec/Epoc.pm > > cp lib/ppport.h blib/lib/ppport.h > > cp lib/File/Spec/Functions.pm blib/lib/File/Spec/Functions.pm > > cp Cwd.pm blib/lib/Cwd.pm > > cp lib/File/Spec.pm blib/lib/File/Spec.pm > > cp lib/File/Spec/Cygwin.pm blib/lib/File/Spec/Cygwin.pm > > cp lib/File/Spec/Mac.pm blib/lib/File/Spec/Mac.pm > > cp lib/File/Spec/Win32.pm blib/lib/File/Spec/Win32.pm > > cp lib/File/Spec/Unix.pm blib/lib/File/Spec/Unix.pm > > cp lib/File/Spec/OS2.pm blib/lib/File/Spec/OS2.pm > > /usr/bin/perl -I/usr/local/lib/perl5/5.00503/i86pc-solaris > > -I/usr/local/lib/perl5/5.00503 > > /usr/local/lib/perl5/5.00503/ExtUtils/xsubpp -typemap > > /usr/local/lib/perl5/5.00503/ExtUtils/typemap Cwd.xs >xstmp.c &&
mv Show quoted text
> > xstmp.c Cwd.c > > gcc -c -I/usr/local/include -mpentium -O2 -DVERSION=\"3.03\" > > -DXS_VERSION=\"3.03\" -fPIC > > -I/usr/local/lib/perl5/5.00503/i86pc-solaris/CORE Cwd.c > > Cwd.xs: In function `Perl_getcwd_sv': > > Cwd.xs:274: parse error before `struct' > > Cwd.xs:282: `statbuf' undeclared (first use in this function) > > Cwd.xs:282: (Each undeclared identifier is reported only once > > Cwd.xs:282: for each function it appears in.) > > Cwd.xs:286: `orig_cdev' undeclared (first use in this function) > > Cwd.xs:287: `orig_cino' undeclared (first use in this function) > > Cwd.xs:288: `cdev' undeclared (first use in this function) > > Cwd.xs:289: `cino' undeclared (first use in this function) > > Cwd.xs:292: `odev' undeclared (first use in this function) > > Cwd.xs:293: `oino' undeclared (first use in this function) > > Cwd.xs:308: `dir' undeclared (first use in this function) > > Cwd.xs:312: `dp' undeclared (first use in this function) > > Cwd.xs:316: `namelen' undeclared (first use in this function) > > Cwd.xs:327: `tdev' undeclared (first use in this function) > > Cwd.xs:328: `tino' undeclared (first use in this function) > > Cwd.xs:338: `pathlen' undeclared (first use in this function) > > *** Error code 1 > > make: Fatal error: Command failed for target `Cwd.o'
> > After looking at the other poster I did the following to the > Cwd.c program: > > #define HAS_GETCWD > > then ran make again, it completed. Here's the output of "make test" > > > # make test > PERL_DL_NONLAZY=1 /usr/bin/perl -Iblib/arch -Iblib/lib - > I/usr/local/lib/perl5/5.00503/i86pc-solaris - > I/usr/local/lib/perl5/5.00503 -e 'use Test::Harness qw(&runtests > $verbose); $verbose=0; runtests @ARGV;' t/*.t >
t/Functions........ok Show quoted text
> >
t/Spec.............ok Show quoted text
> > 83/466 skipped: various reasons >
t/crossplatform....ok Show quoted text
> > 7/50 skipped: Can't load File::Spec::VMS >
t/cwd..............ok Show quoted text
> >
t/rel2abs2rel......ok Show quoted text
> >
t/taint............ok Show quoted text
> > t/win32............skipped > all skipped: this is not win32 > All tests successful, 1 test and 90 subtests skipped. > Files=7, Tests=571, 16 wallclock secs (11.72 cusr + 3.71 csys =
15.43 Show quoted text
> CPU) > # > > Is this good to install?
From: tedm [...] toybox.placo.com
[guest - Tue Feb 1 19:41:18 2005]: Show quoted text
> I have exactly the same problem. Did you ever resolve it? I am > running with perl 5.00503 on Solaris 5.8 and using the UNIX cc.
Yes I resolved it - I originally needed Cwd because the later versions of File::Spec require it as a dependency. But, File::Spec version 0.84 does not require Cwd, so I built that instead. And fortunately the other Perl modules that required File::Spec didn't require the latest versions. In short, I wrote off the attempt to install Cwd until such time as the author decides to correct the bug.
I've been trying to resolve this on p5p: http://groups-beta.google.com/group/perl.perl5.porters/browse_thread/thread/ 3c3076972961c180?tvc=2 Note that I can't just add "#define HAS_GETCWD" to the sources, because some platforms simply don't have the getcwd() C function. For now, I'll ask the users of older perls to answer yes/no to whether their system defines the getcwd() C library function. For a future release I may try to automate it, or just try to pare down the XS part of the module so it's not necessary anymore. -Ken
From: tedm [...] toybox.placo.com
Ken, I noticed also the same trouble on FreeBSD 4.11 just a few days ago when building Horde on FreeBSD 4.11. The Horde port for FreeBSD depends on a number of perl modules, they are: pear-Archive_Tar-1.2 pear-Auth-1.2.3 pear-Auth_SASL-1.0.1_1 pear-Console_Getopt-1.2 pear-DB-1.6.5,1 pear-Date-1.4.3 pear-File-1.1.0.r3,1 pear-HTTP_Request-1.2.4 pear-Log-1.8.7 pear-Mail-1.1.4 pear-Mail_Mime-1.2.1_4 pear-Net_SMTP-1.2.6_1 pear-Net_Socket-1.0.5 pear-Net_URL-1.0.14 pear-PEAR-1.3.4 pear-XML_RPC-1.2.0.r6_1 One of these has Cwd as a dependency. However, the portmanager ignores this and just builds it anyway. Perhaps whomever did the port for FreeBSD of that module checked and decided that it didn't use Cwd and thus was safe to ignore the error. horde does run though. FreeBSD 4.11 (which was released less than a month ago) uses Perl 5.005_03 as part of it's kernel build so that version is preinstalled in the OS.
This should be resolved in version 3.04, released on the 6th. -Ken