On Mon, Mar 7, 2011 at 3:30 PM, Elazar Leibovich <[email protected]> wrote:
> 2011/3/7 Orna Agmon Ben-Yehuda <[email protected]> > > >> >> On Mon, Mar 7, 2011 at 12:18 PM, Muli Ben-Yehuda <[email protected]> wrote: >> >>> On Mon, Mar 07, 2011 at 12:11:36PM +0200, Erez D wrote: >>> >>> > I have a function which is not called in a regular way, so gcc >>> > thinks it is dead code. however it is not, and i am looking for a >>> > way to tell the linker not to remove it. >>> >>> extern >>> >>> >>> And set the function pointer to a global variable, so that the linker >> cannot know if the value is used or not. >> This trick I learned from Nadav Har'El worked through many compilers and >> linkers over the past decade. >> > > I wonder if link time optimization[1] would be able to catch this trick and > remove the dead code after all. > > The smarter the compiler become, the smarter we should trick them into > unexpected behavior > > [1] http://gcc.gnu.org/wiki/LinkTimeOptimization > Worst case, you can always print this value. Anyway, I prefer this trick, which is performed in code to the KEEP trick which requires changing the linker itself, because it is more portable. -- Orna Agmon Ben-Yehuda. http://ladypine.org
_______________________________________________ Linux-il mailing list [email protected] http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
