Bug 71513 - perl headers are incompletely built
Summary: perl headers are incompletely built
Keywords:
Status: CLOSED DUPLICATE of bug 172236
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: perl
Version: 7.3
Hardware: i386
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Jason Vas Dias
QA Contact: David Lawrence
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2002-08-14 16:49 UTC by Need Real Name
Modified: 2007-04-18 16:45 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2005-11-01 20:34:57 UTC
Embargoed:


Attachments (Terms of Use)

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


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