On Fri, May 20, 2022 at 03:06:07PM +0530, Kumar Kartikeya Dwivedi wrote: > With static noinline, the compiler will optimize away the function. With global > noinline, it can still optimize away the call site, but will keep the function > definition, so attach works. Therefore __weak is needed to ensure call is still > emitted. With GCC __attribute__((noipa)) might have been more appropritate, but > LLVM doesn't support it, so __weak is the next best thing supported by both with > the same side effect. Ah, okay, so it's to prevent compiler from optimizing away call to a noop function by telling it that we don't know what the function might eventually be. Thanks for the explanation. Yosry, can you please add a comment explaining what's going on? Thanks. -- tejun