Bug 88852

Summary: Errors compiling CDB_File CPAN module
Product: [Retired] Red Hat Linux Reporter: John Simpson <jms1>
Component: perlAssignee: Warren Togami <wtogami>
Status: CLOSED CANTFIX QA Contact: David Lawrence <dkl>
Severity: medium Docs Contact:
Priority: medium    
Version: 9CC: range006
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2005-08-14 02:08:16 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

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):
perl.5.8.0-88

How reproducible:
Always

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:
/usr/local/.cpan/build/CDB_File-0.93/blib/arch/auto/CDB_File/CDB_File.so:
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.