Bug 71513 - perl headers are incompletely built
perl headers are incompletely built
Status: CLOSED DUPLICATE of bug 172236
Product: Red Hat Linux
Classification: Retired
Component: perl (Show other bugs)
i386 Linux
medium Severity medium
: ---
: ---
Assigned To: Jason Vas Dias
David Lawrence
Depends On:
  Show dependency treegraph
Reported: 2002-08-14 12:49 EDT by Need Real Name
Modified: 2007-04-18 12:45 EDT (History)
3 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2005-11-01 15:34:57 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Need Real Name 2002-08-14 12:49:55 EDT
Description of Problem:

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

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

How Reproducible:


Steps to Reproduce:

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

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 03:07:47 EDT
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 \
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 07:11:09 EDT
List, is this still an issue?
Comment 3 Kjetil T. Homme 2005-09-12 10:40:54 EDT
sys/syscall.ph works, errno.ph doesn't.  this is with perl-5.8.6-15
Comment 4 Warren Togami 2005-11-01 15:34:57 EST
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.