Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 71513

Summary: perl headers are incompletely built
Product: [Retired] Red Hat Linux Reporter: Need Real Name <corey>
Component: perlAssignee: Jason Vas Dias <jvdias>
Status: CLOSED DUPLICATE QA Contact: David Lawrence <dkl>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.3CC: corey, kjetilho, perl-devel
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-11-01 20:34:57 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 Need Real Name 2002-08-14 16:49:55 UTC
Description of Problem:

	require 'sys/syscall.ph' fails due to missing perl header files

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

	perl-5.6.1-34.99.6
	
How Reproducible:

	always

Steps to Reproduce:

	perl <<'EOF'
	require 'sys/syscall.ph'
	EOF

Actual Results:

	lots of error messages

Expected Results:

	no error messages

Additional Information:
	
	fixed by:
	# cd /usr/include && h2ph * sys/* bits/*

	(note addition of bits/* to what is suggested in man h2ph )

Comment 1 Kjetil T. Homme 2003-09-01 07:07:47 UTC
the issue in the original comment has been resolved in Red Hat 9 (perl-5.8.0-88).

however, some headers are still missing, since the list of files is filtered
against just a few directories.  here's the relevant excerpt from spec-file:

# Generate *.ph files with a trick. Is this sick or what ?
make all -f - <<EOF
PKGS    = glibc-devel gdbm-devel gpm-devel libgr-devel libjpeg-devel \
          libpng-devel libtiff-devel ncurses-devel popt \
          zlib-devel binutils libelf e2fsprogs-devel pam pwdb \
          rpm-devel
STDH    = \$(filter %{_includedir}/include/%%, \$(shell rpm -q --queryformat '[%
%{FILENAMES}\n]' \$(PKGS)))
STDH    +=\$(wildcard %{_includedir}/linux/*.h) \
          \$(wildcard %{_includedir}/bits/*.h)  \
          \$(wildcard %{_includedir}/sys/*.h)  \
          \$(wildcard %{_includedir}/scsi/*.h) 
# \$(wildcard %{_includedir}/asm/*.h)

in particular, I'm missing errno.ph.  however, just adding \$(wildcard
%{_includedir}/*.h) isn't sufficient since it includes bits/errno.h ->
linux/errno.h -> asm/errno.h

note that <errno.h> is the official location of the header, so substituting
require 'sys/errno.ph' in my Perl code is unportable.  therefore both *.h and
asm/*.h must be added.

(actually, looking closer: the original problem has _not_ been resolved, since
bits/syscall.h assumes asm/unistd.h has been included)


Comment 2 Warren Togami 2005-09-11 11:11:09 UTC
List, is this still an issue?

Comment 3 Kjetil T. Homme 2005-09-12 14:40:54 UTC
sys/syscall.ph works, errno.ph doesn't.  this is with perl-5.8.6-15


Comment 4 Warren Togami 2005-11-01 20:34:57 UTC
Closing as duplicate against a more coherent explanation of this problem.

*** This bug has been marked as a duplicate of 172236 ***