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

[PATCH 6/6] meson: only check for missing networking syms on non-Windows; add compat impls

From
Eli Schwartz <eschwartz@gentoo.org>
Date
Apr 21, 2025, 17:51 UTC
Message-ID
<20250421175247.240971-6-eschwartz@gentoo.org>
In-Reply-To
<20250421175247.240971-1-eschwartz@gentoo.org>

These are added in the Makefile, but not in meson. They probably won't work well on systems without them.

CMake adds them, but only on non-Windows. Actually, it only performs compiler checks for hstrerror, but excludes that check on Windows with the note that it is "incompatible with the Windows build". This seems to be misleading -- it is not incompatible, it simply doesn't exist. Still, the compat version should not be used.

I interpret this cmake logic to mean we shouldn't even be checking for symbol availability on Windows. In addition to making it simple to add compat definitions, this also probably shaves off a second or two of configure time on Windows as no compiler check needs to be performed.

Signed-off-by: Eli Schwartz <eschwartz@gentoo.org>
---
 meson.build | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/meson.build b/meson.build
index 1b7e55756b..24b304fb57 100644
--- a/meson.build
+++ b/meson.build
@@ -1088,11 +1088,14 @@ else
 endif
 libgit_dependencies += networking_dependencies
 
-foreach symbol : ['inet_ntop', 'inet_pton', 'hstrerror']
-  if not compiler.has_function(symbol, dependencies: networking_dependencies)
-    libgit_c_args += '-DNO_' + symbol.to_upper()
-  endif
-endforeach
+if host_machine.system() != 'windows'
+  foreach symbol : ['inet_ntop', 'inet_pton', 'hstrerror']
+    if not compiler.has_function(symbol, dependencies: networking_dependencies)
+      libgit_c_args += '-DNO_' + symbol.to_upper()
+      libgit_sources += 'compat/' + symbol + '.c'
+    endif
+  endforeach
+endif
 
 has_ipv6 = compiler.has_function('getaddrinfo', dependencies: networking_dependencies)
 if not has_ipv6
-- 
2.49.0
Previous: Patrick SteinhardtNext: Patrick Steinhardt
Message 12 of 40 in “meson: simplify and parameterize various standard function checks”
  1. 1/6 meson: simplify and parameterize various standard function checksEli Schwartz, Apr 21, 2025
  2. 2/6 meson: check for getpagesize before using itEli Schwartz, Apr 21, 2025
  3. Patrick SteinhardtApr 22, 2025
  4. Junio C HamanoApr 24, 2025
  5. Eli SchwartzApr 25, 2025
  6. 3/6 meson: do a full usage-based compile check for sysinfoEli Schwartz, Apr 21, 2025
  7. Patrick SteinhardtApr 22, 2025
  8. 4/6 meson: add a couple missing networking dependenciesEli Schwartz, Apr 21, 2025
  9. Patrick SteinhardtApr 22, 2025
  10. 5/6 meson: fix typo in function check that prevented checking for hstrerrorEli Schwartz, Apr 21, 2025
  11. Patrick SteinhardtApr 22, 2025
  12. 6/6 meson: only check for missing networking syms on non-Windows; add compat implsEli Schwartz, Apr 21, 2025
  13. Patrick SteinhardtApr 22, 2025
  14. Eli SchwartzApr 22, 2025
  15. Patrick SteinhardtApr 23, 2025
  16. Eli SchwartzApr 21, 2025
  17. Junio C HamanoApr 22, 2025
  18. Eli SchwartzApr 22, 2025
  19. Patrick SteinhardtApr 22, 2025
  20. Eli SchwartzApr 22, 2025
  21. Patrick SteinhardtApr 23, 2025
  22. Patrick SteinhardtApr 22, 2025
  23. Junio C HamanoApr 22, 2025
  24. 0/6 meson: miscellaneous system detection fixesEli Schwartz, Apr 25, 2025
  25. 1/6 meson: simplify and parameterize various standard function checksEli Schwartz, Apr 25, 2025
  26. 2/6 meson: check for getpagesize before using itEli Schwartz, Apr 25, 2025
  27. 3/6 meson: do a full usage-based compile check for sysinfoEli Schwartz, Apr 25, 2025
  28. 5/6 meson: fix typo in function check that prevented checking for hstrerrorEli Schwartz, Apr 25, 2025
  29. 4/6 meson: add a couple missing networking dependenciesEli Schwartz, Apr 25, 2025
  30. 6/6 meson: only check for missing networking syms on non-Windows; add compat implsEli Schwartz, Apr 25, 2025
  31. Patrick SteinhardtApr 25, 2025
  32. Eli SchwartzApr 25, 2025
  33. 0/6 meson: miscellaneous system detection fixesEli Schwartz, Apr 25, 2025
  34. 1/6 meson: simplify and parameterize various standard function checksEli Schwartz, Apr 25, 2025
  35. 2/6 meson: check for getpagesize before using itEli Schwartz, Apr 25, 2025
  36. 3/6 meson: do a full usage-based compile check for sysinfoEli Schwartz, Apr 25, 2025
  37. 4/6 meson: add a couple missing networking dependenciesEli Schwartz, Apr 25, 2025
  38. 5/6 meson: fix typo in function check that prevented checking for hstrerrorEli Schwartz, Apr 25, 2025
  39. 6/6 meson: only check for missing networking syms on non-Windows; add compat implsEli Schwartz, Apr 25, 2025
  40. Patrick SteinhardtApr 25, 2025

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.