Florian Weimer wrote: > * Jan Kiszka: > >> So, is this a regression? Does it also happen with vanilla 4.1? > > According to the documentation, the weak attribute affects > declarations, not definitions, and is an instruction to the linker. > Technically, the GCC 4.1 behavior is correct. I'm not sure if it's > desirably, though. Looks at least very surprising for the user - given the fact that only empty weak functions suffer from this, that this behaviour depends on optimisation levels, and that it was fine with earlier versions for quite a while. For sure, the weak attribute is for the linker. But my feeling is that the compiler should then give the linker the chance to do its work - even when the rest of the code gets heavily optimised. Does anyone know what were the reasons for changing this behaviour? Jan