Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#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 3 years ago by ryandesign (Ryan Carsten Schmidt)

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.

comment:2 Changed 3 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 3 years ago by chrstphrchvz (Christopher Chavez)

Owner: set to chrstphrchvz
Resolution: fixed
Status: newclosed

In 9d63e2c30d3c606761e09ddf4a62913fe30a9da0/macports-ports (master):

p5-extutils-makemaker: don't suppress errors

…regarding implicit function declarations in modules
Closes: #61630

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

Note: See TracTickets for help on using tickets.