rebuild a package without an update

Ken Cunningham ken.cunningham.webuse at
Sat Nov 14 01:29:51 UTC 2020

> It is a delicate siuation, with Ken we were supposing to make a static 
> version or link statically, so that an upgrade does not "turn down" 
> all MacPort compilers.

Ideally the compiler should have as few fragile deps as possible. Static linking in the compiler deps might help us get to a compiler that wouldn’t be broken by it’s own dep updates.

You might think that it’s mantra to only use dylibs, but to be honest, the primary theoretical benefit of dylibs (updates in the library pass on to all users magically) seems to turn out to be fairly imaginary in the end, because as we have seen every significant dylib update requires everything that uses it to be revbumped and rebuilt anyway. There is the space/mem saving of dylibs — but static linking in the deps for a compiler would not be too onerous, as the deps are tiny indeed.

libxml2 brings in a whole mess of stuff, including the nefarious ICU extravaganza, more complicated now because ICU requires a fairly recent compiler to bulid. There is no good reason for libxml2 to be a dep for clang/llvm as the system libxml2 does just fine.

cmake brings in an amazing collection of deps, so cmake-bootstrap was invented, which has no external deps at all. cmake-bootstrap is new enough to build either llvm/clang-9.0 or possibly 10, I can’t remember just now if it could build 10.

So that leaves libffi, libedit, ncurses, xar, zlib, and libcxx, which is a nice, small list of things that mostly build with the system compilers,, I believe, and — I think — almost all of them (not libcxx) can be statically linked in….

So it’s improvable, probably.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the macports-users mailing list