On 24 March 2016 at 15:24, Jeffrey Walton wrote: > Here's the actionable item to remove the ambiguity from ABI_CHANGE: > > #ifdef MYLIB_ABI_CHANGE > inline namespace abi2 __attribute ((abi_tag)) { > class MyType { ... }; > MyType fn(); > } > #endif > > That way, its clear the define is local to the library, and its not > coming from GCC or the runtime. ABI_CHANGE is not a valid name for a non-standard macro coming from GCC or the runtime, because it's not in the reserved namespace. Maybe you're trying to use the blog post as a tutorial for how to achieve what you want, but it isn't that, it's just a brief introduction to the topic. If it doesn't hold your hand through every step that's because that wasn't its goal. Trying to follow it like a tutorial isn't going to work.