Bug 118221
Summary: | Test::Harness 2.40 while included in 5.8.3 Perl, FAILS build tests! | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Scott R. Godin <rhbugzilla> |
Component: | perl | Assignee: | Warren Togami <wtogami> |
Status: | CLOSED CURRENTRELEASE | QA Contact: | |
Severity: | high | Docs Contact: | |
Priority: | medium | ||
Version: | 1 | CC: | bradd+redhat, dg-junk, perl-devel, schwern |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | athlon | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2005-07-22 23:32:01 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
Scott R. Godin
2004-03-13 20:22:38 UTC
Same things happens for next modules: Encode, Tie::MLDBM and other. It's really bad. The problem seems to arise from the perl header /usr/lib/perl5/5.8.3/i386-linux-thread-multi/bits/typesizes.ph -- the definition of __FSID_TYPE translates badly into perl: \'struct struct\' { \'int\' $__val[2]; } This is not a valid perl expression. It's trying to duplicate Fedora's definition of the type, struct { int __val[2]; }. I commented out the offending line, and Test::Harness builds without warning. I don't know if there's any harm in removing the definition, nor do I know what it should look like. This is not a bug in Test::Harness but rather it is T::H exposing a bug in h2ph. h2ph is a utility that generates Perl header (.ph) files from C header files. This lets Perl programs get at constants inside .h files. It often makes mistakes. Test::Harness loads wait.ph to get at some constants in order to translate exit status codes when a test exits abnormally (see _corestatus()). wait.ph, it appears, loads typesizes.ph which has syntax errors. It is not critical that wait.ph loads, T::H has fallback logic which is correct for most modern operating systems. Unfortunately, despite efforts on T::H's part to supress them, warnings and errors from loading .ph files often slip through. You can remove T::H from the equation by simply doing "require 'wait.ph'" or even more simply "require 'bits/typesizes.ph'". Best thing to do is to send off a perlbug to p5p with the output of "require 'bits/typesizes.ph'" as well as copies of bits/typesizes.h and .ph and let the bug get fixed upstream. Also you can just try using 5.8.4, the problem may already be fixed. Commenting out the offending line in typesizes.ph is an ok interum solution. |