develooper Front page | perl.perl5.porters | Postings from April 2014

[perl #121773] [PATCH] Errno.pm is missing a ton of values on Windows when built with MinGW-w64-4.8.0

Thread Previous
From:
Steve Hay
Date:
April 30, 2014 17:20
Subject:
[perl #121773] [PATCH] Errno.pm is missing a ton of values on Windows when built with MinGW-w64-4.8.0
Message ID:
rt-4.0.18-2123-1398878394-1813.121773-75-0@perl.org
# New Ticket Created by  Steve Hay 
# Please include the string:  [perl #121773]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/Ticket/Display.html?id=121773 >


When building blead with MinGW-w64-4.8.0 I see hundreds of lines like this come out from the Errno build:

Bareword found where operator expected at (eval 22) line 1, near "13834l"
        (Missing operator before l?)

This doesn't happen with MinGW-w64-4.7.4 or earlier, or MinGW, or VC++.

The change in behaviour is due to changes in the MinGW-w64 headers. E.g. 4.7.4 has:

#define ERROR_IPSEC_IKE_PROCESS_ERR_ID 13834L

but now 4.8.0 has:

#define ERROR_IPSEC_IKE_PROCESS_ERR_ID __MSABI_LONG(13834)
#define __MSABI_LONG(x)  x ## l

The lowercase "l" rather than uppercase "L" trips up Errno_pm.PL. The attached patch fixes this, and I think it should be a 5.20 blocker -- as the attached Errnos.tar.gz shows, the difference between the 4.7.4-generated Errno.pm and the original (i.e. current) 4.8.0-generated Errno.pm is HUGE. The fixed 4.8.0-generated Errno.pm is much more like it.
Thread Previous


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About