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

Re: [PATCH] config.mak.uname: use iconv from Homebrew on macOS

From
René Scharfe <l.s.r@web.de>
Date
Dec 10, 2025, 17:56 UTC
Message-ID
<1b3509d7-e421-4136-a62c-de86213d65b2@web.de>
In-Reply-To
<qnb77j3b5m6rfbzr3qhmwalo5lha4gqslvzqsfuq6zur74ze7j@wqriu4w7wbzw>
On 12/10/25 12:17 PM, Carlo Marcelo Arenas Belón wrote:
Show 14 quoted lines
> On Tue, Dec 09, 2025 at 08:35:34PM -0800, René Scharfe wrote:
>> The library function iconv(3) supplied with macOS versions 15.7.2
>> (Sequoia) and 26.1 (Tahoe) is unreliable when doing conversions from
>> ISO-2022-JP to UTF-8 in multiple steps; t3900 reports this breakage:
>>
>>   not ok 17 - ISO-2022-JP should be shown in UTF-8 now
>>   not ok 25 - ISO-2022-JP should be shown in UTF-8 now
>>   not ok 38 - commit --fixup into ISO-2022-JP from UTF-8
>>
>> As a workaround, use libiconv from Homebrew, if available.
> 
> While I think Homebrew libraries are usually better than the ones that
> come with the system, there are reasons why you would prefer not linking
> with them and therefore forcing Homebrew as a dependency of your binaries.

The patch doesn't force, it just changes the default. You can overrule it by setting ICONVDIR explicitly, e.g. this will use the system's libiconv:

$ make ICONVDIR=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr
> One particularly good reason is that if you are building a fat binary (
> useful if you target recent macOS which still supports x86_64 but don't
> want to distribute different versions per CPU type) then the system
> library (even if broken) might be preferred.

How do you do that? By calling clang(1) with -arch x86_64 and -arch arm64 and using lipo(1) on the results? Is this possible with the current make files?

> Slightly off topic, but should another patch that adds a `NO_HOMEBREW`
> Makefile flag similar to `NO_FINK` or `NO_APPLE_PORTS` be added to help
> drive this?
Sounds like a it could be useful to someone.

I'm a bit puzzled that they are implemented in a Darwin section of Makefile. config.mak.uname would be a better place, no?

René
Previous: Carlo Marcelo Arenas BelónNext: Junio C Hamano
Message 13 of 45 in “t3900 failure on macOS, iconv(3) broken?”
  1. René ScharfeDec 8, 2025
  2. Koji NakamaruDec 9, 2025
  3. Yee Cheng ChinDec 9, 2025
  4. Collin FunkDec 9, 2025
  5. Torsten BögershausenDec 9, 2025
  6. René ScharfeDec 9, 2025
  7. Torsten BögershausenDec 9, 2025
  8. René ScharfeDec 9, 2025
  9. config.mak.uname: use iconv from Homebrew on macOSRené Scharfe, Dec 9, 2025
  10. Yee Cheng ChinDec 9, 2025
  11. René ScharfeDec 9, 2025
  12. Carlo Marcelo Arenas BelónDec 10, 2025
  13. René ScharfeDec 10, 2025
  14. Junio C HamanoDec 11, 2025
  15. Carlo Marcelo Arenas BelónDec 11, 2025
  16. Junio C HamanoDec 12, 2025
  17. René ScharfeDec 12, 2025
  18. Carlo Marcelo Arenas BelónDec 12, 2025
  19. Re* [PATCH] config.mak.uname: use iconv from Homebrew on macOSJunio C Hamano, Dec 12, 2025
  20. René ScharfeDec 12, 2025
  21. Junio C HamanoDec 12, 2025
  22. Torsten BögershausenDec 10, 2025
  23. René ScharfeDec 10, 2025
  24. brian m. carlsonDec 10, 2025
  25. Junio C HamanoDec 11, 2025
  26. Junio C HamanoDec 11, 2025
  27. René ScharfeDec 11, 2025
  28. Junio C HamanoDec 12, 2025
  29. René ScharfeDec 12, 2025
  30. 2/2 config.mak.uname: use iconv from Homebrew on macOSRené Scharfe, Dec 13, 2025
  31. 1/2 Makefile: add NO_HOMEBREWRené Scharfe, Dec 13, 2025
  32. Torsten BögershausenDec 14, 2025
  33. Junio C HamanoDec 14, 2025
  34. Torsten BögershausenDec 14, 2025
  35. Junio C HamanoDec 14, 2025
  36. René ScharfeDec 14, 2025
  37. Junio C HamanoDec 14, 2025
  38. René ScharfeDec 16, 2025
  39. 1/2 macOS: make Homebrew use configurableRené Scharfe, Dec 16, 2025
  40. René ScharfeDec 16, 2025
  41. Torsten BögershausenDec 16, 2025
  42. 2/2 macOS: use iconv from Homebrew if presentRené Scharfe, Dec 16, 2025
  43. 0/2 macOS: use iconv from Homebrew if needed and presentRené Scharfe, Dec 24, 2025
  44. 2/2 macOS: use iconv from Homebrew if needed and presentRené Scharfe, Dec 24, 2025
  45. 1/2 macOS: make Homebrew use configurableRené Scharfe, Dec 24, 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.