On Thu, Jun 9, 2022 at 5:42 AM Tom Lane <t...@sss.pgh.pa.us> wrote: > I'm sure that Apple are indeed updating the UTF8 data behind > their proprietary i18n APIs, but the libc APIs are mostly getting benign > neglect.
As for how exactly they might be doing that, I don't know, but a bit of light googling tells me that a private, headerless, please-don't-call-me-directly copy of ICU arrived back in macOS 10.3[1]. I don't see it on my 12.4 system, but I also know that 12.x started hiding system libraries completely (the linker is magic and pulls libraries from some parallel dimension, there is no /usr/lib/libSystem.B.dylib file on disk, and yet otool -L <your_favourite_executable> references it). It's a lovely client machine, but I don't know if anyone really runs meaningful database server stuff on macOS. I think if I did I'd be very keen to use ICU for everything directly, rather than trying to unpick any of that and talk to Apple's API... I think the how-to-support-multiple-ICUs subrant/subthread is a much more interesting topic. I have no idea if the dlopen() concept I mentioned is the right way forward, but FWIW the experimental patch I posted seems to work just fine on a Mac, using multiple ICU libraries installed by MacPorts, which might be useful to developers contemplating that stuff. [1] https://lists.apple.com/archives/xcode-users/2005/Jun/msg00633.html