https://gcc.gnu.org/g:9d72b82d10d9a046b70798a8f6381123cd60ff6a
commit r17-2394-g9d72b82d10d9a046b70798a8f6381123cd60ff6a Author: Iain Sandoe <[email protected]> Date: Mon Jul 13 09:05:25 2026 +0100 Darwin, Objective-C/C++: Globalise protocol ref metadata symbols. Newer versions of the system static linker complain if Protocol reference lists are not introduced with a global symbol. gcc/ChangeLog: * config/darwin.cc (darwin_globalize_label): Handle Protocol references. (darwin_label_is_anonymous_local_objc_name): Likewise. Signed-off-by: Iain Sandoe <[email protected]> Diff: --- gcc/config/darwin.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/config/darwin.cc b/gcc/config/darwin.cc index f4726ab0e57e..5812d61765b9 100644 --- a/gcc/config/darwin.cc +++ b/gcc/config/darwin.cc @@ -2008,7 +2008,7 @@ darwin_globalize_label (FILE *stream, const char *name) return; if (startswith (name+6, "LabelPro")) default_globalize_label (stream, name); - if (startswith (name+6, "Protocol_")) + if (startswith (name+6, "Protocol")) default_globalize_label (stream, name); } @@ -2067,7 +2067,7 @@ darwin_label_is_anonymous_local_objc_name (const char *name) return false; else if (startswith ((const char *)p, "Protocol")) { - if (p[8] == '_' || p[8] == 'I' || p[8] == 'P' + if (p[8] == '_' || p[8] == 'I' || p[8] == 'P' || p[8] == 'R' || p[8] == 'M' || p[8] == 'C' || p[8] == 'O') return false; return true;
