On Fri, Apr 29, 2016 at 08:54:51AM +0200, Otto Moerbeek wrote:

> On Fri, Apr 29, 2016 at 04:43:56PM +1000, David Gwynne wrote:
> 
> > 
> > > On 28 Apr 2016, at 22:49, Mark Kettenis <[email protected]> wrote:
> > > 
> > >> Date: Thu, 28 Apr 2016 13:50:53 +0200
> > >> From: Martin Pieuchot <[email protected]>
> > >> 
> > >> The reason why we do not use 'static' in the kernel is no longer valid
> > >> since all our platforms are ELF.  ddb(4) handle them just fine.
> > >> 
> > >> Here's an example after setting 'static' in the uhci(4) driver:
> > >> 
> > >>  $ nm /bsd |grep uhci_poll_hub
> > >>  ffffffff81107080 t uhci_poll_hub
> > >>  
> > >>  $ nm /obsd |grep uhci_poll_hub
> > >>  ffffffff81107080 T uhci_poll_hub
> > >> 
> > >> Diff below convert and unify all the Makefile.$arch to no longer remove
> > >> local symbols.
> > >> 
> > >> ok?
> > > 
> > > In principle this diff is fine.  I don't expect the symbol tables to
> > > grow too much by this.
> > > 
> > > However, using static in the kernel is still bad.  The compiler will
> > > optimize away static functions, and when that happens they won't show
> > > up in the backtraces.
> > 
> > can we throw in -fno-inline to prevent that? or do we not trust gcc?
> 
> that would completely disable inlining, even for inline functions.
> 
>       -Otto

But -fnoinline-functions-called-once might be worth a try,

        -Otto

Reply via email to