Subject: Re: Courier-0.47, linker error: perlfilter.c: undefined reference to `_boot_'
From: Yitzchak Scott-Thoennes <[email-masked]>
To: "Gerrit P. Haase" <[email-masked]>
Cc: [email-masked], [email-masked], Perl Porters <[email-masked]>
Date: Mon, 24 Jan 2005 18:52:12 -0800

On Mon, Jan 24, 2005 at 11:53:46PM +0100, Gerrit P. Haase wrote:
> Hi there,
> 
> getting this error when building courier with perl-5.8.6 on Cygwin which 
> works before upgrading to perl-5.8.6 (was perl-5.8.5 without Win32CORE
> static extension):
> 
> make[6]: Entering directory 
> `/k/ftproot/pub/courier/courier-0.47/.build/courier/filters/perlfilter'
> Compiling 
> /k/ftproot/pub/courier/courier-0.47/courier/filters/perlfilter/perlfilter.c
> ccache gcc 
> -I/k/ftproot/pub/courier/courier-0.47/courier/filters/perlfilter/.. -I.. 
> -I/k/ftproot/pub/courier/courier-0.47/courier/filters/perlfilter/../.. 
> -I../.. 
> -I/k/ftproot/pub/courier/courier-0.47/courier/filters/perlfilter/../../.. 
> -I ../../.. -g0 -O3  -DPERL_USE_SAFE_PUTENV -fno-strict-aliasing -pipe 
> -I/usr/local/include  -I/usr/lib/perl5/5.8/cygwin/CORE   -Wl,-s -o 
> perlfilter.exe  perlfilter.o ../libfilter/libfilter.a 
> ../../../waitlib/libwaitlib.a ../../libs/libcommon.a 
> ../../libs/libcourier.a  -s  -s -L/usr/local/lib 
> /usr/lib/perl5/5.8/cygwin/auto/DynaLoader/DynaLoader.a 
> /usr/lib/perl5/5.8/cygwin/auto/Win32CORE/Win32CORE.a 
> -L/usr/lib/perl5/5.8/cygwin/CORE -lperl -lcrypt -lgdbm_compat
> perlfilter.o(.text+0x36):perlfilter.c: undefined reference to `_boot_'
> 
> 
> It seems that the xsinit.c file was generated wrong:
> 
> ========= xsinit.c =========
> #include <EXTERN.h>
> #include <perl.h>
> 
> EXTERN_C void xs_init (pTHX);
> 
> EXTERN_C void boot_DynaLoader (pTHX_ CV* cv);
> EXTERN_C void boot_ (pTHX_ CV* cv);
> EXTERN_C void boot_Win32CORE (pTHX_ CV* cv);
> 
> EXTERN_C void
> xs_init(pTHX)
> {
> 	char *file = __FILE__;
> 	dXSUB_SYS;
> 
> 	/* DynaLoader is a special case */
> 	newXS("DynaLoader::boot_DynaLoader", boot_DynaLoader, file);
> 	newXS("::bootstrap", boot_, file);
> 	newXS("Win32CORE::bootstrap", boot_Win32CORE, file);
> }
> ========= xsinit.c =========
> 
> From Makefile.am:
> xsinit.c: config.status
> 	@PERL@ -MExtUtils::Embed -e xsinit -- -o xsinit.c -std
> 
> This is expanded in the Makefile to:
> xsinit.c: config.status
> 	/usr/bin/perl -MExtUtils::Embed -e xsinit -- -o xsinit.c -std
> 
> 
> Maybe it is related to the inclusion of Win32CORE, however it is
> dubious that there is bootstrap code for an anonym module anyway.
> 
> Is there s.th. wrong in my Cygwin perl build, where should I look at
> first to find the reason for this problem, any hint appreciated.

Hmm. Does it still happen if you try against a perl5.8.6 without the
Win32CORE staticly linked?

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/