[MacPorts] #54370: gmic @2.0.2: buildbot build gets cancelled because 20 minutes go by with no output
MacPorts
noreply at macports.org
Thu Jan 20 12:27:28 UTC 2022
#54370: gmic @2.0.2: buildbot build gets cancelled because 20 minutes go by with no
output
-------------------------+-------------------------
Reporter: ryandesign | Owner: Schamschula
Type: defect | Status: reopened
Priority: Normal | Milestone:
Component: ports | Version:
Resolution: | Keywords: haspatch
Port: gmic |
-------------------------+-------------------------
Comment (by ryandesign):
I gave the 10.8 buildbot worker 12 GB RAM and started a gmic build. When
the clang process reached around 10 GB RAM usage, it started eating up
gigabytes of swap and I canceled the build and rebooted the worker with 18
GB RAM and started a new build. This time the clang process reached 15.74
GB before it started hitting the swap space. I saw the clang process use
as much as 15.99 GB RAM and 6 GB swap. The build has been going for 53
minutes but I expect it to fail because:
I gave the 10.9 worker 15 GB RAM and I observed the clang process using
12.47 GB at its peak. The build was canceled after 1 hour 58 minutes
because of no output seen for 1 hour.
The gmic developers closed [https://github.com/dtschump/gmic/issues/325 my
bug report] with the opinion that the clang compiler is flawed and that
they will not make any accommodations for it. They say that old versions
of g++ had similar problems but that new versions don't. They suggest that
compiling without optimization flags may reduce memory usage.
Trying to compile gmic using g++ would require that g++ supports
`-stdlib=libc++`. Did that
[https://www.phoronix.com/scan.php?page=news_item&px=GCC-11-libcpp-LLVM-
Support make it into gcc11] or is it coming for gcc12? I don't think
MacPorts base knows that any g++ supports `-stdlib` yet so until then it
would have to be manually added by the Portfile.
Our builds on newer OS versions have already completed so I don't know if
newer clangs use less memory. Perhaps someone on macOS 12 could check how
much memory clang ends up using during the build. If it's considerably
less, then maybe making the port use a newer MacPorts clang is the answer.
And I think it may be. While build times are not a great indicator, since
different VMs are on different servers with different loads, here's the
latest build times:
* 10.6 i386: MacPorts clang 11: 42 minutes
* 10.6 x86_64: MacPorts clang 11: 46 minutes
* 10.7: MacPorts clang 12: 51 minutes
* **10.8: Xcode 5.1.1 clang 503.0.40: failed after an hour**
* **10.9: Xcode 6.2 clang 600.0.57: failed after an hour (the retry with
15 GB RAM failed after 1 hour 58)**
* **10.10: Xcode 7.2.1 clang 700.1.81: failed after an hour**
* **10.11: Xcode 8.2.1 clang 800.0.42.1: 1 hour 58 minutes**
* **10.12: Xcode 9.2 clang 900.0.39.2: 1 hour 27 minutes**
* 10.13: Xcode 9.4.1 clang 902.0.39.2: 42 minutes
* 10.14: Xcode 10.3 clang 1001.0.46.4: 49 minutes
* 10.15: Xcode 11.7 clang 1103.0.32.62: 34 minutes
* 11 x86_64: Xcode 12.5.1 clang 1205.0.22.11: 33 minutes
* 12 x86_64: Xcode 13.1 clang 1300.0.29.3: 46 minutes
So what would you think about blacklisting `{clang < 902}`?
--
Ticket URL: <https://trac.macports.org/ticket/54370#comment:17>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list