‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Wednesday, July 10, 2019 1:20 PM, Ryan Schmidt <[email protected]> 
wrote:

> A compiler is only needed at build time, and should be declared in 
> depends_build. gcc also has runtime libraries which your software may be 
> using. These are needed both at build time and at runtime, so they should be 
> declared in depends_lib.
>
> MacPorts 2.5.4 and earlier aren't smart enough to do that. If you specify a 
> gcc compiler, MacPorts base knows that there's a library involved so it adds 
> the whole gcc compiler port in depends_lib.
>
> This has been fixed [1] and will be released in MacPorts 2.6. Since this has 
> not yet been released, it has not yet been tested by as large an audience as 
> we would like, so there may be bugs. If you find any, please let us know.
>
> You can get the fix now by building MacPorts base from master [2].
>
> In almost all cases, ports should not touch compiler.whitelist. Instead, add 
> forbidden compilers to compiler.blacklist. If that leaves no working 
> compilers, append working compilers to compiler.fallback.
>
> If you insist on setting compiler.whitelist, then there is no point to 
> modifying compiler.blacklist or compiler.fallback since the first entry of 
> compiler.whitelist that is not blacklisted will be used.
>
> [1] 
> https://github.com/macports/macports-base/commit/e0bd891f757606ff99e0611048de4f48f71dcce5
>
> [2] 
> https://guide.macports.org/chunked/installing.macports.html#installing.macports.git

Thank you for the heads up that 2.6 will include a solution, I am currently 
trying with a git-build and waiting on all of the very time consuming source 
builds to complete. I will definitely report any issues that creep up.

As for the compiler blacklist/whitelist/fallback, I was using what was already 
provided, but if we can make it even more intelligent, that would be wonderful. 
If I understand you correctly, a Portfile should use either blacklist+fallback 
OR a whitelist as using the whitelist makes the other two lists largely 
redundant.

If that is correct, what would you suggest as the best setup to require a GNU 
gcc? The current blacklist includes:
 - *clang*
 - *llvm-gcc*
 - *apple-gcc*
 - gcc
 - gcc-3.3
 - gcc-4.0
 - gcc-4.2
This was crafted to ban all of Apple's fake gccs which are actually clang/llvm 
in disguise.

Thank you so much for your help!

Reply via email to