Adding to implicit function declaration whitelists [was: Re: How to suppress -Wimplicit-function-declaration warning, if <stdlib.h> really does not have the declaration?]

Ryan Schmidt ryandesign at macports.org
Sat Jan 29 06:38:27 UTC 2022


On Jan 28, 2022, at 23:15, Jim DeLaHunt wrote:

> On 2022-01-26 02:59, Joshua Root wrote:
> 
>> …In any case, we maintain lists of functions that are known not to exist on each macOS version, so the warning can be suppressed. They are in the ports tree here: <https://github.com/macports/macports-ports/tree/master/_resources/port1.0/checks/implicit_function_declaration>…
> I have filed Pull Request ​#13804 ''64550 Add 'at_quick_exit' to 10.14 whitelist'' <https://github.com/macports/macports-ports/pull/13807> to, as the title says, add function name 'at_quick_exit' to the macosx10.14 implicit declaration whitelist. I would appreciate attention to that PR when it is convenient for the right person.
> 
> I imagine that this same function name should be added to whitelists for other SDK versions. But I don't know how to test and confirm this. Is there a process for checking whitelist entries across all SDK versions? Say, via the buildbots?

I don't think there's any process. However, if you determine that a function is not in an SDK, it seems almost certain that it won't be in any earlier SDK either. Apple adds functions to the OS over time; it doesn't tend to remove them (at least when it comes to standard language features; they do on occasion remove Apple-specific functionality like certain frameworks).


> Once a whitelist is modified, when does a MacPorts installation benefit from that change?  Immediately, because the implicit function declaration code reaches back to MacPorts to get the most recent whitelists? After the next port selfupdate? After the next port base code new version release?

The files are in the macports-ports repository, therefore the user receives the changes when the user updates their ports tree, i.e. sudo port sync or sudo port selfupdate. I updated this in the wiki page with a few other edits.


> Also, I could not find documentation on the whitelist process, or on the Portfile declaration "configure.checks.implicit_function_declaration.whitelist-append".

configure.checks.implicit_function_declaration.whitelist and the rest of the implicit function declaration checking code was just recently added to MacPorts (2.7.0) and nobody got around to writing documentation for it yet.

-append, -prepend, -delete, -replace, -strsed are operators that can be used on any MacPorts list variables.




More information about the macports-dev mailing list