Distcc

96 views
Skip to first unread message

Erik Corry

unread,
Sep 19, 2024, 1:02:23 PM9/19/24
to v8-...@googlegroups.com
Hi

The compile times are killing me.

Does anyone have good experiences distributing V8 compilations across
several workstations? AFAIK distcc used to work, but I'm not sure
if it still does.

I'm already using ccache, which is great as long as you don't change
configurations or edit a .h file.

-- 
Erik Corry

Simon Zünd

unread,
Sep 20, 2024, 12:41:39 AM9/20/24
to v8-...@googlegroups.com
According to https://source.chromium.org/chromium/chromium/src/+/main:docs/linux/build_instructions.md (under "Use reclient") a googler can petition on your behalf for access to RBE (it replaced goma). This also works for V8 and should speed up builds significantly.

--
--
v8-dev mailing list
v8-...@googlegroups.com
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to v8-dev+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/v8-dev/CAHZxHpiefa5qhtm0qgvgNQgEf0e_CyL4Rfd1Xng%3DZL%3DEyt8t8w%40mail.gmail.com.

Graeme Jenkinson

unread,
Sep 20, 2024, 6:59:19 AM9/20/24
to v8-...@googlegroups.com
I use disc to build v8. As long as you are sending compile jobs to the same platform it’s fairly trivial. Adding something like:

cc_wrapper="env CCACHE_PREFIX=distcc CCACHE_SLOPPINESS=time_macros ccache”

to args.gn and configuring the hosts for distcc should do the job.

If you’re cross compiling its and/or the platform executing the build jobs is different it’s a bit more complicated. You’ll need to set DISTCC_CMDLIST to map the compilers on the build server. If you’re intending to use the pump mode (which you’ll likely need as preprocessing on the client will quickly become the bottleneck) you also have to be able to find the system headers on the build server.

I cross compile using a completely different platform and have a document describing the setup but it’s slight specific to my environment (I can’t recall whether I managed to cache on the remote machines or that this wasn’t possible for me. It likely is possible if the platforms are the same). This setup has reduced my compile times from 1-2 hours to 10-15 minutes from clean.

Let me know if you need some help with this.

Kind regards,

Graeme

Erik Corry

unread,
Sep 24, 2024, 8:02:25 AM9/24/24
to v8-...@googlegroups.com
I found I needed some extra quotes, escaped, to make this work.

cc_wrapper="\"env CCACHE_PREFIX=distcc CCACHE_SLOPPINESS=time_macros ccache\"”

But even then, it's not really working for me. I get compilation differences between local and remote and very low levels of parallelism.



Reply all
Reply to author
Forward
0 new messages