On 27 February 2014 19:31, Paul Smith wrote: > On Thu, 2014-02-27 at 20:21 +0100, Marc Glisse wrote: > >> > When I create a global function marked "inline" I see, using nm, that a >> > weak symbol ("W") is added to the object file for that function. >> > >> > For link-order reasons, I would prefer that the inlined function not >> > generate any (external) symbol; in particular I do NOT want this object >> > to be pulled in from a static library just because it happens to appear >> > first in the archive order. I have another object in the archive which >> > declares a global symbol ("T" in nm) and I want that one linked instead. >> >> Did you try "static" or an anonymous namespace? > > The function I'm inlining is actually global operator new. It's not > legal to declare it static or in a namespace. You're asking how to violate the One Definition Rule, which isn't legal either :-)