On Thu, Jun 9, 2022 at 11:33 AM Thomas Munro <thomas.mu...@gmail.com> wrote: > 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).
The other thread about a macOS linking problem nerd-sniped me back into here to find out how to see breadcrumbs between hidden libraries on this super weird UNIX™ and confirm that they are indeed still shipping a private ICU for use by their Core Foundation stuff that's used by fancy ObjC/Swift/... etc GUI apps. The following command was an interesting discovery for me because otool -L can't see any of the new kind of ghost libraries: % dyld_info -dependents /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation Though I can't get my hands on the hidden ICU library itself to disassemble (without installing weird extra tools, apparently [1]), that at least revealed its name, which I could then dlopen out of curiosity. It seems they jammed all the ICU sub-libraries into one, and configured it with --disable-renaming so it doesn't have major version suffixes on symbol names. It'd clearly be a terrible idea for us to try to use any of that, and Mac users should be very happy with the new support for ICU as DB default. [1] https://lapcatsoftware.com/articles/bigsur.html