logo       

Re: field `_crypt_struct' has incomplete type: msg#00129

programming.swig

Subject: Re: field `_crypt_struct' has incomplete type

On Mon, 20 Jan 2003 15:04:11 -0800, Jeff Cours <swig-j@xxxxxxxxxxxx> wrote:
> Subject: [Swig] field `_crypt_struct' has incomplete type
>
> Hi, everyone -
>
> I'm trying to compile SWIG 1.3.17 on a RedHat 8.0 box using gcc 3.2. I'm
> getting the "field `_crypt_struct' has incomplete type" error:
>
> gcc -c -I/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE -DSWIG_GLOBAL
> -Dbool=char -Dexplicit= libperl.c -fPIC -DPIC -o .libs/libperl.lo
> In file included from
> /usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/op.h:480,
> from
> /usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/perl.h:2209,
> from libperl.c:217:
> /usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/reentr.h:602: field
> `_crypt_struct' has incomplete type
> In file included from
> /usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/perl.h:3368,
> from libperl.c:217:
> /usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/proto.h:246: parse error
> before "off64_t"
> (etc...)
>

Same problem with Debian unstable:

gcc -c -I/usr/lib/perl/5.8.0/CORE -DSWIG_GLOBAL -Dbool=char
-Dexplicit= libperl.c -fPIC -DPIC -o .libs/libperl.lo
In file included from /usr/lib/perl/5.8.0/CORE/op.h:480,
from /usr/lib/perl/5.8.0/CORE/perl.h:2209,
from libperl.c:217:
/usr/lib/perl/5.8.0/CORE/reentr.h:602: field `_crypt_struct' has incomplete type
In file included from /usr/lib/perl/5.8.0/CORE/perl.h:3368, from libperl.c:217:
/usr/lib/perl/5.8.0/CORE/proto.h:246: parse error before "off64_t"
/usr/lib/perl/5.8.0/CORE/proto.h:248: parse error before "Perl_do_sysseek"
/usr/lib/perl/5.8.0/CORE/proto.h:248: parse error before "off64_t"
/usr/lib/perl/5.8.0/CORE/proto.h:248: warning: data definition has no type or
storage class
/usr/lib/perl/5.8.0/CORE/proto.h:249: parse error before "Perl_do_tell"
/usr/lib/perl/5.8.0/CORE/proto.h:249: warning: data definition has no type or
storage class
/usr/lib/perl/5.8.0/CORE/proto.h:1378: parse error before "Perl_PerlIO_tell"
/usr/lib/perl/5.8.0/CORE/proto.h:1378: warning: data definition has no type or
storage class
/usr/lib/perl/5.8.0/CORE/proto.h:1379: parse error before "off64_t"
make[1]: *** [libswigpl.la] Error 1

> I found one reference to this problem on the SWIG mailing list,
>
> <http://mailman.cs.uchicago.edu/pipermail/swig/2002-July/005299.html>
>
> that involved hacking perl.h and proto.h. Looking for something less
> intrusive, I found a pointer to a thread in debian-perl,
>
> <http://www.mail-archive.com/debian-perl@xxxxxxxxxxxxxxxx/msg00617.html>
>
> that suggested running "perl -V:cppflags" to see what flags are necessary.
> Among other things, it showed '-D_GNU_SOURCE', which agrees with this message:
>
> <http://archive.develooper.com/perl5-porters@xxxxxxxx/msg75535.html>
>
> Unfortunately, the compile fails in the Perl section of Runtime/Makefile,
> which doesn't seem to honor CPPFLAGS, CXXFLAGS, or CFLAGS. If I hack
> Runtime/Makefile manually to add -D_GNU_SOURCE:
>
> libswigpl$(RELEASESUFFIX).la: $(srcdir)/$(SWIG_TYPECHECK)
> $(srcdir)/$(PERL5_RUNTIME)
> @rm -f libperl.c
> # cat $(srcdir)/perlrun.h >> libperl.c
> cat $(srcdir)/$(SWIG_TYPECHECK) $(srcdir)/$(PERL5_RUNTIME) >>
> libperl.c
> $(LIBTOOL) $(CC) -c $(PERL5_INCLUDE) -DSWIG_GLOBAL -D_GNU_SOURCE
> -Dbool=char -Dexplicit= libperl.c
> $(LIBTOOL) $(CC) -o libswigpl$(RELEASESUFFIX).la libperl.lo -rpath
> $(LIB_DIR) -avoid-version
>
> the compile succeeds.
>
> Is there a more elegant way to solve this problem?
>
> thanks in advance,
> Jeff
>

Bob
--
QOTD:
"What do you mean, you had the dog fixed? Just what made you
think he was broken!"

Attachment: pgpjyr7TcDtfx.pgp
Description: PGP signature

<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise