Bug 88852 - Errors compiling CDB_File CPAN module
Summary: Errors compiling CDB_File CPAN module
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: perl
Version: 9
Hardware: i386
OS: Linux
Target Milestone: ---
Assignee: Warren Togami
QA Contact: David Lawrence
Depends On:
TreeView+ depends on / blocked
Reported: 2003-04-14 22:13 UTC by John Simpson
Modified: 2007-04-18 16:53 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2005-08-14 02:08:16 UTC

Attachments (Terms of Use)

Description John Simpson 2003-04-14 22:13:15 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225

Description of problem:
When compiling the CDB_File module it comes back with a linker error saying
"report_uninit" cannot be linked.

Searching the source and the perl header files, I find the following lines in
/usr/lib/perl5/5.8.0/i386-linux-thread-multi-CORE/embed.h which seem to be where
it should be defined:

  23  #if !defined(PERL_IMPLICIT_CONTEXT)
1121  #ifdef PERL_CORE
1122  #define report_uninit Perl_report_uninit
1123  #endif
2478  #else
3551  #ifdef PERL_CORE
3552  #define report_uninit() Perl_report_uninit(aTHX)
3553  #endif
4901  #endif /* PERL_IMPLICIT_CONTEXT */

testing shows that PERL_IMPLICIT_CONTEXT is defined, and PERL_CORE is not
defined, while compiling this module.

i tried adding "#define PERL_CORE" to the .xs file and it added a bunch of other
errors- my guess is that defining this constant tells the headers that you are
building perl itself, but i don't know for sure (since i've never done perl xs
programming before.)

how is it possible to get the proper definition of "report_uninit" for the module?

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
1. perl -MCPAN -e 'install CDB_File'

Actual Results:  Linker error during "make test" phase:
Can't load
'/usr/local/.cpan/build/CDB_File-0.93/blib/arch/auto/CDB_File/CDB_File.so' for
module CDB_File:
undefined symbol: report_uninit at
/usr/lib/perl5/5.8.0/i386-linux-thread-multi/DynaLoader.pm line 229.

Expected Results:  Module should have compiled, tested, and installed cleanly.
This worked with RH7.3 and RH8.0, but broke under phoebe and now with RH9.

Additional info:

Comment 1 Kevin Range 2003-06-07 21:52:26 UTC
Try setting LANG=C

Comment 2 John Simpson 2003-06-08 02:56:39 UTC
been there, done that... that much was necessary just to get it to build a
proper Makefile. this is a problem which relates to either libc-2.3 or perl-5.8,
both of which were changed between RH8.0 and RH9.

i have emailed matt sergeant (who "owns" the perl module as of 0.92) about this
but i haven't heard anything back from him.

Note You need to log in before you can comment on or make changes to this bug.