[MacPorts] #54370: gmic @2.0.2: buildbot build gets cancelled because 20 minutes go by with no output

MacPorts noreply at macports.org
Sun Jun 25 04:23:37 UTC 2017


#54370: gmic @2.0.2: buildbot build gets cancelled because 20 minutes go by with no
output
-------------------------+-------------------------
  Reporter:  ryandesign  |      Owner:  Schamschula
      Type:  defect      |     Status:  new
  Priority:  Normal      |  Milestone:
 Component:  ports       |    Version:
Resolution:              |   Keywords:
      Port:  gmic        |
-------------------------+-------------------------

Comment (by ryandesign):

 I ran a build of gmic 2.0.2 on my 2.7GHz Core i7 MacBook Pro with Touch
 Bar, timing how long each step took:

 {{{
 sudo port -dns install gmic -universal 2>&1 | ts -i "%H:%M:%.S" | tee
 gmic.log
 }}}

 It looks like the 14,500-line source file gmic.cpp gets compiled four
 times, into four different things:

 1. the gmic executable, which took 14m29s to build
 2. the gmic_gimp_gtk gimp plugin, which took 16m8s to build
 3. the libgmic.a static library, which took 14m15s to build
 4. the libgmic.dylib dynamic library, which took 14m5s to build

 The buildbot worker machines are slower than my laptop—they're Xserves
 from 2009 with either 2.26 or 2.66GHz Xeon Nehalem processors—which is why
 they take longer.

 I looked at Activity Monitor while some of those products were being
 built, and the single clang process got up to 3.75GB of memory used, so
 it's understandable that trying to build all four in parallel would exceed
 the available memory of even a Mac with 16GB RAM, since the OS takes some
 of the RAM. Our 64-bit buildbot workers have 8GB RAM each.

 I suppose the size of this source file explains why it would take so long
 to build and takes so much memory. I'm not sure if there would be a way
 for the developers to split this file up and compile it in smaller
 sections.

 I don't know anything about gmic but if code can be used in several
 ways—e.g. as an executable, and a plugin, and a library—it seems like the
 majority of the code would be shared and would only need to be compiled
 once.

--
Ticket URL: <https://trac.macports.org/ticket/54370#comment:3>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list