[Bug 178343] New: h2ph problem with gcc internal defines

bugzilla at redhat.com bugzilla at redhat.com
Thu Jan 19 17:07:48 UTC 2006


Please do not reply directly to this email. All additional
comments should be made in the comments box of this bug report.




https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=178343

           Summary: h2ph problem with gcc internal defines
           Product: Fedora Core
           Version: devel
          Platform: All
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: normal
         Component: perl
        AssignedTo: jvdias at redhat.com
        ReportedBy: jvdias at redhat.com
         QAContact: dkl at redhat.com
                CC: fedora-perl-devel-list at redhat.com


Description of problem:

>  Subject: h2ph problem
>  From:    George Michaelson <ggm at apnic.net>
>    To:    jvdias at redhat.com
>    Date:  2006-01-17 19:54
>     
>  We just got bitten by 32bit vs 64bit logic in the .ph files generated
>  from socket.h/stddef.h/limits.h -bits/socket.ph to be exact.
>
>  Undefined subroutine &main::__LONG_MAX__ called at (eval 436) line 1.
>  Compilation failed in require at
> /usr/lib/perl5/5.8.5/i386-linux-thread-multi/sy s/socket.ph line 11.
>  Compilation failed in require at
> /usr/lib/perl5/site_perl/5.8.5/i386-linux-threa d-multi/netinet/in.ph line
> 9.
>
>
>  By removing some if/then/else logic, to make it just eval() the 32-bit
>  case, the problem went away.
>
>  this was after applying an up2date on EL4 for perl 5.8.5:
>
>  [ggm at curry log]$ uname -a
>  Linux curry.apnic.net 2.6.9-22.0.1.ELsmp #1 SMP Tue Oct 18 18:39:27 EDT
> 2005 i686 i686 i386 GNU/Linux [ggm at curry log]$ rpmquery -a | grep perl
>  newt-perl-1.08-7
>  mod_perl-1.99_16-4
>  perl-Net-DNS-0.48-1
>  perl-Time-HiRes-1.55-3
>  perl-5.8.5-24.RHEL4
>  perl-Filter-1.30-6
>  perl-URI-1.30-4
>  perl-Digest-SHA1-2.07-5
>  perl-Digest-HMAC-1.01-13
>  [ggm at curry log]$
>
>  the RPM errata lists
>
>  > * Tue Nov 01 2005 Jason Vas Dias <jvdias at redhat.com> - 3:5.8.5-17.RHEL4
>  >   - fix bug 170088: broken h2ph fixed with h2ph from 5.8.7
>  >   - fix bug 171111 / upstream bug 37535: IOCPARM_LEN should be _IOC_SIZE
>  >   - fix bug 172236: make h2ph pick up gcc built-in include directory
>
>  Is it possible you haven't tested enough of the outcomes here? Without
>  this, the perl just doesn't work.
>
>  -George
>
>  --- socket.ph.dist      2006-01-17 16:44:41.000000000 +1000
>  +++ socket.ph   2006-01-17 16:44:49.000000000 +1000
>  @@ -90,11 +90,7 @@
>       eval 'sub SOL_IRDA () {266;}' unless defined(&SOL_IRDA);
>       eval 'sub SOMAXCONN () {128;}' unless defined(&SOMAXCONN);
>       require 'bits/sockaddr.ph';
>  -    if((defined(&ULONG_MAX) ? &ULONG_MAX : 0) > 0xffffffff) {
>  -       eval 'sub __ss_aligntype () { &__uint64_t;}' unless
> defined(&__ss_aligntype); -    } else {
>          eval 'sub __ss_aligntype () { &__uint32_t;}' unless
> defined(&__ss_aligntype); -    }
>       eval 'sub _SS_SIZE () {128;}' unless defined(&_SS_SIZE);
>       eval 'sub _SS_PADSIZE () {( &_SS_SIZE - (2* $sizeof{
> &__ss_aligntype}));}' unless defined(&_SS_PADSIZE); eval("sub MSG_OOB () {
> 0x01; }") unless defined(&MSG_OOB);

Version-Release number of selected component (if applicable):
ALL - including RHEL-4 perl-5.8.5-*
not a problem with RHEL-3 perl-5.8.0, because gcc-3.2.3's limits.h #defines
things like __LONG_MAX__

How reproducible:
100%

Steps to Reproduce:
$ perl -e 'require "sys/socket.ph";'
  
Actual results:
Undefined subroutine &main::__LONG_MAX__ called at (eval 256) line 1.
Compilation failed in require at
/usr/lib/perl5/5.8.6/i386-linux-thread-multi/sys/socket.ph line 11.
Compilation failed in require at -e line 1.


Expected results:
no errors

-- 
Configure bugmail: https://bugzilla.redhat.com/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.




More information about the perl-devel mailing list