Seems like a bug but I'm not sure. I have a first C implementation file with a bunch of functions declared as inline. Every function but one can be reused in a second implementation file. Using that function in the second implementation file results in an unresolved symbol linker error. That function is also used in the first implementation file. If I remove the call from the first implementation file or that I don't declare the function as inline everything is linked properly. As if the compiler was stripping the symbol alltogether if an inline function is used but keeps the symbol if not used in a given implementation file. Is it normal? If so is there a directive to instruct the compiler not to do that? Thanks.