Bug 53310

Summary: perlcc fails on a "hello world" program -- undefined symbol
Product: [Retired] Red Hat Raw Hide Reporter: Bill Crawford <billc>
Component: perlAssignee: Chip Turner <cturner>
Status: CLOSED RAWHIDE QA Contact: David Lawrence <dkl>
Severity: medium Docs Contact:
Priority: medium    
Version: 1.0   
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: 2001-12-06 21:24:00 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:
Attachments:
Description Flags
Input file to perlcc
none
(Standard error) output from "perlcc hello.pl" -- there is no stdout none

Description Bill Crawford 2001-09-06 13:34:50 UTC
Description of Problem:
perlcc is not always linking against all necessary libraries.  Specifically
I'm seeing an error

	/tmp/ccTI6P75.o: In function `xs_init':
	/tmp/ccTI6P75.o(.text+0x3409): undefined reference to `boot_DynaLoader'

or something similar for every attempt.  Basically it's failing to link
against

	/usr/lib/perl5/5.6.0/i386-linux/auto/DynaLoader/DynaLoader.a

Version-Release number of selected component (if applicable):
[bill@fraser bill]$ rpm -q perl
perl-5.6.0-17

How Reproducible:

[bill@fraser bill]$ perlcc hello.pl 

--------------------------------------------------------------------------------
Compiling hello.pl:
--------------------------------------------------------------------------------
Making C(hello.pl.c) for hello.pl!
...
gcc -fno-strict-aliasing -I/usr/local/include 
-I/usr/lib/perl5/5.6.0/i386-linux/CORE -o hello hello.pl.c  
-L/usr/local/lib -L/usr/lib/perl5/5.6.0/i386-linux/CORE -lperl -lnsl -ldl
-lm -lc -lcrypt /usr/lib/perl5/5.6.0/i386-linux/auto/IO/IO.so
/usr/lib/perl5/5.6.0/i386-linux/auto/Fcntl/Fcntl.so
/tmp/ccHrUMvk.o: In function `xs_init':
/tmp/ccHrUMvk.o(.text+0x3409): undefined reference to `boot_DynaLoader'
collect2: ld returned 1 exit status
ERROR: In compiling code for hello.pl.c !

Expected Results:

A working executable ;o)

Additional Information:
Will attach input and output.

Fixed compilation by running instead:

	[bill@fraser bill]$ gcc -fno-strict-aliasing -I/usr/local/include 
-I/usr/lib/perl5/5.6.0/i386-linux/CORE -o hello hello.pl.c  
-L/usr/local/lib -L/usr/lib/perl5/5.6.0/i386-linux/CORE
/usr/lib/perl5/5.6.0/i386-linux/auto/DynaLoader/DynaLoader.a -lperl -lnsl
-ldl -lm -lc -lcrypt /usr/lib/perl5/5.6.0/i386-linux/auto/IO/IO.so
/usr/lib/perl5/5.6.0/i386-linux/auto/Fcntl/Fcntl.so

Comment 1 Bill Crawford 2001-09-06 13:36:14 UTC
Created attachment 31074 [details]
Input file to perlcc

Comment 2 Bill Crawford 2001-09-06 13:38:00 UTC
Created attachment 31075 [details]
(Standard error) output from "perlcc hello.pl" -- there is no stdout

Comment 3 Bill Crawford 2002-01-13 17:24:00 UTC
It's working with the current Raw Hide version of perl.