cockroachdb / cockroach

CockroachDB — the cloud native, distributed SQL database designed for high availability, effortless scale, and control over data placement.
https://www.cockroachlabs.com
Other
29.88k stars 3.77k forks source link

bazel: the build of `libgeos` is not parallelized #77207

Open knz opened 2 years ago

knz commented 2 years ago

Describe the problem

When I run dev build the build of the Geos dependency lasts for 5minutes+ on my machine.

In the output of ps, I see that the C compiler is called sequentially.

With make, I get parallel builds.

Jira issue: CRDB-13474

Epic CRDB-17171

knz commented 1 year ago

The following change from make 4.4 could help

* New feature: The --jobserver-style command line option and named pipes
  A new jobserver method is used on systems where mkfifo(3) is supported.
  This solves a number of obscure issues related to using the jobserver
  and recursive invocations of GNU Make.  This change means that sub-makes
  will connect to the jobserver even if they are not marked as recursive.
  It also means that other tools that want to participate in the jobserver
  will need to be enhanced as described in the GNU Make manual.
  You can force GNU Make to use the simple pipe-based jobserver (perhaps if
  you are integrating with other tools or older versions of GNU Make) by
  adding the '--jobserver-style=pipe' option to the command line of the
  top-level invocation of GNU Make, or via MAKEFLAGS or GNUMAKEFLAGS.
  To detect this change search for 'jobserver-fifo' in the .FEATURES variable.

https://lwn.net/Articles/913253/

github-actions[bot] commented 4 months ago

We have marked this issue as stale because it has been inactive for 18 months. If this issue is still relevant, removing the stale label or adding a comment will keep it active. Otherwise, we'll close it in 10 days to keep the issue queue tidy. Thank you for your contribution to CockroachDB!

rickystewart commented 4 months ago

While this is still true, we generally have the pre-built c-deps so you should not have to build it yourself.

knz used FreeBSD which didn't have any prebuilt c-deps so was always affected by this.