git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Makefile: fix parallel build race

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Nov 19, 2021, 07:08 UTC
Message-ID
<211119.86ee7c4n8r.gmgdl@evledraar.gmail.com>
In-Reply-To
<nycvar.QRO.7.76.6.2111181529380.11028@tvgsbejvaqbjf.bet>
On Thu, Nov 18 2021, Johannes Schindelin wrote:
Show 11 quoted lines
> On Thu, 18 Nov 2021, Đoàn Trần Công Danh wrote:
>
>> [Git's CMake-based build] couldn't be configured on Linux system,
>
> That was an explicit decision in
> https://lore.kernel.org/git/xmqq1rmcm6md.fsf@gitster.c.googlers.com/:
>
> 	Let's not worry about cross-platform and instead stick to Windows
> 	and nothing else for now to expedite the process.  As long as it
> 	is advertised as such, nobody would complain that it does not work
> 	on Linux or macOS.

That was said at a time when the CI didn't have a hard dependency on this cmake integration, which as noted in the recent discussion downthread of [1] made it so that for changes in this area you need to maintain both the Makefile and contrib/buildsystems/CMakeLists.txt in lockstep, least that CI is broken.

So we've created a scenario where in order to make certain changes to git.git, you need to either go through a very painfully slow edit/push/test cycle via the CI, with each test taking anywhere between ~5m-60m, depending on what step it might fail at. Or, install your own copy of that proprietary OS locally.

In other areas we often don't have any hard line separating such platform-specific code from the rest of the codebase. But for anything else I can think of it's in its own files or ifdefs, and usually doesn't require maintaining dual-implementations in lockstep, except if the interface itself is changing.

Or that code is at least in a common language like C, Sh, Perl etc., and doesn't require you to learn a new tool/language just for maintaining the propriterary-specific portability code.

So I think it would be most welcome to get patches to contrib/buildsystems/CMakeLists.txt to make it portable, cmake itself is, and AFAICT the only inherently Windows-specific part of it is some small part dealing with generating a file for VS to consume, which presumably can be in some if/else construct within that file (I haven't checked out Phillip Wood's portability patches).

1. https://lore.kernel.org/git/patch-1.1-bbacbed5c95-20211030T223011Z-avarab@gmail.com/
Previous: Johannes SchindelinNext: Ævar Arnfjörð Bjarmason
Message 9 of 12 in “Makefile: fix parallel build race”
  1. Makefile: fix parallel build raceĐoàn Trần Công Danh, Nov 17, 2021
  2. Jeff KingNov 17, 2021
  3. Mike HommeyNov 17, 2021
  4. Ævar Arnfjörð BjarmasonNov 17, 2021
  5. Johannes SchindelinNov 17, 2021
  6. Ævar Arnfjörð BjarmasonNov 17, 2021
  7. Đoàn Trần Công DanhNov 18, 2021
  8. Johannes SchindelinNov 18, 2021
  9. Ævar Arnfjörð BjarmasonNov 19, 2021
  10. Ævar Arnfjörð BjarmasonNov 19, 2021
  11. Johannes SchindelinNov 19, 2021
  12. Ævar Arnfjörð BjarmasonNov 19, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.