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

Re: ./configure fails to link test program due to missing dependencies

From
Patrick Steinhardt <ps@pks.im>
Date
Sep 24, 2024, 12:10 UTC
Message-ID
<ZvKsH1Ct-YwBPA_f@pks.im>
In-Reply-To
<xmqqy13oa8oe.fsf@gitster.g>
On Wed, Sep 18, 2024 at 03:39:13PM -0700, Junio C Hamano wrote:
Show 10 quoted lines
> Phillip Wood <phillip.wood123@gmail.com> writes:
> 
> > We seem to get fairly regular bug reports about the configure script,
> > presumably because most contributors are using the Makefile. It would
> > certainly be nice if we could get the CMake support into a state where
> > we could consider dropping the configure script.
> 
> While I would agree that two is better than having to support three
> build procedures, I am not sure how improvement of CMake support
> needs to be a prerequisite for removal of autoconf.

I'm mostly coming from the angle that autoconf is likely used by systems that are not perfectly supported by our current, static configuration. I don't want to make the life of such system integrators harder by having to figure out what kind of arcane functions they have to set manually now to make things build on their platform again.

I'm not really sure whether distros _do_ actually use autoconf. Checking a few distros:

  - Arch doesn't.
  - Cygwin uses autoconf.
  - Debian doesn't.
  - FreeBSD uses autoconf.
  - Gentoo doesn't.
  - NixOS uses autoconf.
  - OpenBSD uses autoconf.
  - Ubuntu doesn't.

So basically, we'd be making the life harder of anybody who doesn't conform to the "standard" way of doing things in Linux, which I think is not exactly a nice thing to do.

And that's why I think we should have an alternative way to configure and build Git that can act as a replacement for autoconf, with my vote going to either CMake or Meson. They are a proper replacement for autoconf that makes the downstream maintainer's jobs easier while also bringing additional features to the table that we don't currently have.

Eli makes a couple of good remarks in [1] about things that both CMake and Meson bring to the table in addition to that, while also mentioning some of the benefits of Meson over CMake.

I would be okay to make Git work with such a build system myself. The current CMake build instructions can be used to _build_ Git, but AFAIU they cannot yet run the Git test suite. Dscho pointed me to a couple of patches from Ævar that work into this direction, and I'd be happy to revive them. I'd also be okay with picking Meson over CMake if that is what people want. But my ultimate goal would then be that we have at least one CI job build and test against such a build system and give it the "official blessing" as an alternative way to build Git.

[1]: <0864bd25-d5c4-45ac-a59e-e6f7d24002de@gentoo.org>
Patrick
Previous: Junio C HamanoNext: Eli Schwartz
Message 7 of 31 in “./configure fails to link test program due to missing dependencies”
  1. Henrik HolstSep 14, 2024
  2. Junio C HamanoSep 15, 2024
  3. brian m. carlsonSep 15, 2024
  4. Patrick SteinhardtSep 16, 2024
  5. Phillip WoodSep 18, 2024
  6. Junio C HamanoSep 18, 2024
  7. Patrick SteinhardtSep 24, 2024
  8. Eli SchwartzSep 24, 2024
  9. Paul SmithSep 24, 2024
  10. Patrick SteinhardtSep 25, 2024
  11. Eli SchwartzSep 25, 2024
  12. Patrick SteinhardtSep 25, 2024
  13. Phillip WoodSep 26, 2024
  14. Patrick SteinhardtSep 26, 2024
  15. Phillip WoodSep 27, 2024
  16. Eli SchwartzSep 26, 2024
  17. phillip.wood123@gmail.comSep 27, 2024
  18. Junio C HamanoSep 26, 2024
  19. Johannes SchindelinSep 29, 2024
  20. Eli SchwartzSep 29, 2024
  21. Phillip WoodSep 30, 2024
  22. Eli SchwartzSep 30, 2024
  23. Junio C HamanoSep 30, 2024
  24. Johannes SchindelinSep 30, 2024
  25. Patrick SteinhardtSep 25, 2024
  26. Patrick SteinhardtSep 25, 2024
  27. Junio C HamanoSep 24, 2024
  28. Paul SmithSep 25, 2024
  29. Eli SchwartzSep 26, 2024
  30. Paul SmithSep 26, 2024
  31. Eli SchwartzSep 24, 2024

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.