-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Description
From @henryiii :
ROOT can't pass homebrew's audit any more because it is now injecting
-flat_namespace. Flat namespaces have been deprecated since the move to Intel. I believe this was done due to-undefined dynamic_lookupproducing a warning - Apple plans to add something to replace this in the future, but it's not the old-flat_namespace. See Homebrew/homebrew-core#114543 (comment)
Flat namespace makes major changes to the layout, is more deprecated than dynamic_lookup, and isn't supposed to even work in conda-forge. See also pybind/pybind11#4301 .
-undefined dynamic_lookupdoes silence the linker on missing symbols, that's what it's for. The problem is that the method it uses is deprecated, producing a warning (and already broken in iOS)-flat_namespacedoesn't just silence the linker, it changes the binary layout for every symbol. You could always just silence the warning-Wl,-wor-Wl,-no_fixup_chains; this will eventually break, but is less deprecated than-flat_namespace.
Apple's official statement is basically "live with the warning for now, we'll find a way to not break all CPython extensions eventually" from what I gather.