Skip Menu |

This queue is for tickets about the PAR CPAN distribution.

Report information
The Basics
Id: 3100
Status: resolved
Priority: 0/
Queue: PAR

People
Owner: Nobody in particular
Requestors: ericduda [...] yahoo.com
Cc:
AdminCc:

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



From: "Eric Duda" <ericduda [...] yahoo.com>
To: <bug-par [...] rt.cpan.org>
Subject: PAR .70 compile error
Date: Wed, 30 Jul 2003 09:15:13 -0400
gcc -v Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.2/specs Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --host=i386-redhat-linux --with-system-zlib --enable-__cxa_atexit Thread model: posix gcc version 3.2 20020903 (Red Hat Linux 8.0 3.2-7) Error when running make: make[1]: Entering directory `/home/e/PAR-0.70/myldr' gcc -c -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -I/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE main.c In file included from main.c:14: mktmpdir.c: In function `par_rmtmpdir': mktmpdir.c:169: `my_perl' undeclared (first use in this function) mktmpdir.c:169: (Each undeclared identifier is reported only once mktmpdir.c:169: for each function it appears in.) main.c: At top level: main.c:24: `my_perl' used prior to declaration make[1]: *** [main.o] Error 1 make[1]: Leaving directory `/home/e/PAR-0.70/myldr' make: *** [subdirs] Error 2
From: James FitzGibbon
[ericduda@yahoo.com - Wed Jul 30 09:15:24 2003]: Show quoted text
> make[1]: Entering directory `/home/e/PAR-0.70/myldr' > gcc -c -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing > -D_LARGEFILE_SOURCE > -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm > -I/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE main.c > In file included from main.c:14: > mktmpdir.c: In function `par_rmtmpdir': > mktmpdir.c:169: `my_perl' undeclared (first use in this function) > mktmpdir.c:169: (Each undeclared identifier is reported only once > mktmpdir.c:169: for each function it appears in.)
I have the same problem on AIX v5 under 5.8.0, but I think I've solved it. main.c contains a static PerlInterpreter declaration on line 24: static PerlInterpreter *my_perl; But mktmpdir.c (which is included from main.c on line 14) indirectly needs to have access to this interpreter. On line 169, it calls readdir: while ( ( dp = readdir(partmp_dirp) ) != NULL ) { But under a threaded perl, a call to readdir() becomes this instead: ((((*_Errno()) = readdir_r(partmp_dirp, (my_perl->Ireentrant_buffer)- Show quoted text
>_readdir_struct, &(my_perl->Ireentrant_buffer)->_readdir_ptr)))
Which produces said error. I'm not sure if this is the best way to solve it, but by removing the static qualifier in main.c and adding an extern declaration in mktmpdir.c, I was able to get past this problem. I still can't build PAR mind you: now it blows up with this error: ld: 0711-327 WARNING: Entry point not found: __start when trying to link 'par', but this error has been plaguing me on AIX as long as PAR has been around so I don't think it is related to the my_perl problems above. If you're not on AIX you probably won't be affected by this. Regards.
From: James FitzGibbon
[ericduda@yahoo.com - Wed Jul 30 09:15:24 2003]: Show quoted text
> make[1]: Entering directory `/home/e/PAR-0.70/myldr' > gcc -c -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing > -D_LARGEFILE_SOURCE > -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm > -I/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE main.c > In file included from main.c:14: > mktmpdir.c: In function `par_rmtmpdir': > mktmpdir.c:169: `my_perl' undeclared (first use in this function) > mktmpdir.c:169: (Each undeclared identifier is reported only once > mktmpdir.c:169: for each function it appears in.)
I have the same problem on AIX v5 under 5.8.0, but I think I've solved it. main.c contains a static PerlInterpreter declaration on line 24: static PerlInterpreter *my_perl; But mktmpdir.c (which is included from main.c on line 14) indirectly needs to have access to this interpreter. On line 169, it calls readdir: while ( ( dp = readdir(partmp_dirp) ) != NULL ) { But under a threaded perl, a call to readdir() becomes this instead: ((((*_Errno()) = readdir_r(partmp_dirp, (my_perl->Ireentrant_buffer)- Show quoted text
>_readdir_struct, &(my_perl->Ireentrant_buffer)->_readdir_ptr)))
Which produces said error. I'm not sure if this is the best way to solve it, but by removing the static qualifier in main.c and adding an extern declaration in mktmpdir.c, I was able to get past this problem. I still can't build PAR mind you: now it blows up with this error: ld: 0711-327 WARNING: Entry point not found: __start when trying to link 'par', but this error has been plaguing me on AIX as long as PAR has been around so I don't think it is related to the my_perl problems above. If you're not on AIX you probably won't be affected by this. Regards.
Date: Thu, 31 Jul 2003 10:23:00 +0800
From: Autrijus Tang <autrijus [...] autrijus.org>
To: Guest via RT <bug-PAR [...] rt.cpan.org>
CC: "AdminCc of cpan Ticket #3100": ;
Subject: Re: [cpan #3100] PAR .70 compile error
RT-Send-Cc:
On Wed, Jul 30, 2003 at 01:21:15PM -0400, Guest via RT wrote: Show quoted text
> I have the same problem on AIX v5 under 5.8.0, but I think I've solved > it. > main.c contains a static PerlInterpreter declaration on line 24: > > static PerlInterpreter *my_perl;
This has been fixed in 0.71 by using PL_statbuf. /Autrijus/
Download (untitled)
application/pgp-signature 187b

Message body not shown because it is not plain text.