https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111522
--- Comment #6 from Mathieu Malaterre <malat at debian dot org> --- (In reply to Andrew Pinski from comment #5) > (In reply to Mathieu Malaterre from comment #4) > > > So the original > > > (upstream) code is somewhat buggy as it rely on lazy init for global var. > > > > Those global vars are in different namespace, I actually fail to underwhat > > why the definition with ",cpu=power10" gets pulled in... > > Because `#pragma GCC target targets_str` is global state and unrelated to > namespace ... Forgot to mentionned that each `#pragma GCC target` for namespace are inside `#pragma GCC push_options` / `#pragma GCC pop_options`. This implements "per namespace" target-specific options AFAIK.