Subject: Courier-0.47, linker error: perlfilter.c: undefined reference to `_boot_'
From: "Gerrit P. Haase" <[email-masked]>
To: [email-masked], Yitzchak Scott-Thoennes <[email-masked]>, [email-masked], Perl Porters <[email-masked]>
Date: Mon, 24 Jan 2005 23:53:46 +0100

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.

Gerrit
-- 
=^..^=

--
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/