From: René Scharfe Date: Wed, 10 Dec 2025 17:56:35 GMT Subject: Re: [PATCH] config.mak.uname: use iconv from Homebrew on macOS Message-ID: <1b3509d7-e421-4136-a62c-de86213d65b2@web.de> In-Reply-To: On 12/10/25 12:17 PM, Carlo Marcelo Arenas Belón wrote: > 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é