Search code examples
objective-cxcodedistcc

Xcode distributed build failure


I am trying to do distributed builds with Xcode, but I see this error while building from my build server (Build Sever is the host, dev machine is the client).

When I try to do this the other way, I am able to distribute builds (My Dev machine as the host and the Build Sever as the client)

Any thoughts?

[14:44:47]: Step 2/3 (6m:10s)
[14:44:57]: [Step 2/3] distcc[95606] (dcc_parse_multiplier) ERROR: bad multiplier "/0,lzo,cpp" in host specification
[14:44:57]: [Step 2/3] distcc[95606] (dcc_show_hosts) CRITICAL! Failed to get host list
[14:44:57]: [Step 2/3] /usr/bin/pump: error: pump mode requested, but distcc hosts list does not contain any hosts with ',cpp' option

Solution

  • Your milage may vary with this solution, but we've had to hack the distcc that comes with Xcode to force pump mode to be off to fix this problem.

    1. Remove pump from /Developer/usr/bin and /usr/bin, just write out an empty file named pump in its place
    2. Don't forget to chmod a+x your pump and distcc (in the next step)
    3. In /Developer/usr/bin, rename distcc to distcc.bin and write out this distcc

      #!/bin/bash
      hosts=$DISTCC_HOSTS
      hosts=${hosts//\,cpp/}
      export DISTCC_HOSTS=$hosts
      echo Modified DISTCC_HOSTS=\"$DISTCC_HOSTS\"
      /Developer/usr/bin/distcc.bin $@

    Apologies, this is a quick and dirty solution. There is probably a cleaner way to do this.