<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><blockquote type="cite" class=""><pre style="white-space: pre-wrap; background-color: rgb(255, 255, 255);" class="">Hello,

somewhere in the dependencies for some package I have to compile
libzzip. That's less easy than it sounds:

The libzzip package seems to enforce gcc-4.2 (there's /usr/bin/gcc-4.0
and /opt/local/bin/ppc-apple-darwin9-gcc-7.5.0 == /opt/local/bin/gcc
too) and tries to use it with -Warray-bounds. gcc-4.2 doesn't have that,
but gcc7 does. Adding -DCMAKE_C_COMPILER=/opt/local/bin/gcc to the
portfile didn't do the job. so some questions arise:

Is there a well known way to enforce a given compiler?
</pre></blockquote><div class=""><br class=""></div><div class="">MacPorts method of doing this is to first build a list of all known compilers that a system can support, and put them in preferred order. This is done through the interaction of several bits of tcl code that can be described later if you are interested.</div><div class=""><br class=""></div><div class="">Then the Portfile will “blacklist” compilers or groups of compilers that are known not to work to build a given port.</div><div class=""><br class=""></div><div class="">MacPorts base then chooses the first compiler on the list of possible system compilers that is not blacklisted.</div><div class=""><br class=""></div><div class="">So — if libzzip will not build with gcc-4.2, then that compiler would be added to the port’s blacklisted compilers, with a statement like this in the Portfile:</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">compiler.blacklist-append gcc-4.2</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">or if all the 4-series gcc’s won’t work, this:</div><div class=""><br class=""></div><div class="">compiler.blacklist-append gcc-4.*</div><div class=""><br class=""></div><div class="">etc.</div><div class=""><br class=""></div><div class="">There are some other tricks that can be used, but for the purposes of how this is done, this is a reasonable way to start out. Chris mentioned a way to force a specific compiler, eg:</div><div class=""><br class=""></div><div class="">sudo port -v install libzzip configure.compiler=macports-gcc-7</div><div class=""><br class=""></div><div class="">a list of all the known compiler names is here</div><div class=""><br class=""></div><div class=""><a href="https://trac.macports.org/wiki/UsingTheRightCompiler" class="">https://trac.macports.org/wiki/UsingTheRightCompiler</a></div><div class=""><br class=""></div><div class="">although not all of those are available on 10.5.x PPC of course (eg none of the clang compilers is available there).</div><div class=""><br class=""></div><br class=""><blockquote type="cite" class=""><pre style="white-space: pre-wrap; background-color: rgb(255, 255, 255);" class="">
Would/should I have to replace or remove one of the system's (Xcode's)
compiler(s) to clean things up a bit?

Should I upgrade Xcode, and to which version (PPC32, Sorbet Leopard)?
</pre></blockquote><div class=""><br class=""></div><div class="">In general, to keep things sane, MacPorts assumes that you have installed the last possible version of Xcode that the system can support.</div><div class=""><br class=""></div><div class="">There are a few exceptions to this rule just to keep you on your toes, of course, but none of the exceptions apply to Leopard.</div><div class=""><br class=""></div><div class=""><br class=""></div><blockquote type="cite" class=""><pre style="white-space: pre-wrap; background-color: rgb(255, 255, 255);" class="">
Thanks in advance for helpful responses.

HG
</pre></blockquote><div class=""><pre style="white-space: pre-wrap; background-color: rgb(255, 255, 255);" class=""><br class=""></pre><pre style="white-space: pre-wrap; background-color: rgb(255, 255, 255);" class="">As “Sorbet Leopard” is a non-standard release of MacOSX 10.5 Leopard for PowerPC with various modifications from the base system, MacPorts will not be able to support it. It is just too insane to try to keep these variant PPC systems sorted out, none of our common maintainers would use them, nobody would have ever thoroughly tested the tools out (gcc, cctools, ld64, etc) agains these systems, and so on.</pre><pre style="white-space: pre-wrap; background-color: rgb(255, 255, 255);" class=""><br class=""></pre><pre style="white-space: pre-wrap; background-color: rgb(255, 255, 255);" class="">So use them if you want, but please be fair and only open tickets against the official released versions of MacOSX system software. If we sense there is a variant system in play, we won’t be able to help you.</pre><pre style="white-space: pre-wrap; background-color: rgb(255, 255, 255);" class=""><br class=""></pre><pre style="white-space: pre-wrap; background-color: rgb(255, 255, 255);" class="">Of course, you are free to fork MacPorts and/or use your own overlay of Portfile fixes that work on your variant OS version! It is a free country (still, more or less) and you can do anything you danged well want to do!</pre><pre style="white-space: pre-wrap; background-color: rgb(255, 255, 255);" class=""><br class=""></pre><pre style="white-space: pre-wrap; background-color: rgb(255, 255, 255);" class="">Thx, K</pre></div></body></html>