#61630 closed defect (fixed)
p5-extutils-makemaker @7.560.0_0: adds -Wno-error=implicit-function-declaration
Reported by: | chrstphrchvz (Christopher Chavez) | Owned by: | chrstphrchvz (Christopher Chavez) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | dbevans (David B. Evans) | |
Port: | p5-extutils-makemaker |
Description
See https://rt.cpan.org/Public/Bug/Display.html?id=133493, https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/blob/v7.56/lib/ExtUtils/MM_Darwin.pm#L65: because many old/unmaintained CPAN modules have implicit function declarations and fail to compile using Xcode 12, recent ExtUtils::MakeMaker have been adding -Wno-error=implicit-function-declaration
to builds on Darwin. Based on the explanation I've heard that this can lead to compiling broken software on macOS for ARM 64-bit, should ExtUtils::MakeMaker not add this flag? Should MacPorts remove the flag from it for now?
I imagine the currently-affected Perl modules may only be the ones manually depending on port:p${perl5.major}-extutils-makemaker
, unless building without trace mode on a system with p${perl5.major}-extutils-makemaker
installed; otherwise modules will build with older ExtUtils::MakeMaker from perl${perl5.major}
.
Change History (4)
comment:1 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)
comment:2 Changed 4 years ago by chrstphrchvz (Christopher Chavez)
PR opened: https://github.com/macports/macports-ports/pull/9399
No update on whether upstream plans to change anything, but one maintainer remarks:
Implicit function declarations are legal in C89 but not in C99 or C++. Apparently Apple decided not to care about C89 in their new ARM64 ABI. This means that disabling this error probably causes either vararg or non-vararg implicitly defined function calls to be broken, but it doesn't give much of a hint which one of the two.
comment:3 Changed 4 years ago by chrstphrchvz (Christopher Chavez)
Owner: | set to chrstphrchvz |
---|---|
Resolution: | → fixed |
Status: | new → closed |
comment:4 Changed 3 years ago by chrstphrchvz (Christopher Chavez)
Upstream has not budged on this, so Perl 5.34 will be affected; see #63022
I agree that they should not be adding that flag, and if they are doing so in a shipping version of the module we should add a patch to MacPorts to remove it. Individual modules should be fixed instead. I've already fixed several modules, filed MacPorts tickets for several more, and will look through additional build failures on the buildbot and file additional tickets as time permits.