On Wed, Jun 22, 2016 at 03:05:35PM +0200, Arnd Bergmann wrote: > On Wednesday, June 22, 2016 2:50:13 PM CEST Thierry Reding wrote: > > > > Not enough information to check signature validity. > > On Wed, Jun 22, 2016 at 02:39:41PM +0200, Arnd Bergmann wrote: > > > In a configuration that enables CONFIG_UBSAN_SANITIZE_ALL, I am getting > > > a section mismatch warning for tegra20: > > > > > > WARNING: arch/arm/mach-tegra/built-in.o(.data+0x6e0): Section mismatch in reference from the variable board_init_funcs to the function .init.text:paz00_init() > > > > > > The array is no longer useful here since there is only one entry, > > > so we can simply call the function directly after checking > > > of_machine_is_compatible(). This fixes the section mismatch > > > and is easier to read. > > > > > > Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> > > > --- > > > arch/arm/mach-tegra/tegra.c | 24 +++--------------------- > > > 1 file changed, 3 insertions(+), 21 deletions(-) > > > > Shouldn't these section mismatches show up with default builds? I > > haven't seen any when building Tegra configurations. > > > > I'm going to apply this patch because I think it's useful, but it sure > > would be nice to know why I need to enable this new UBSAN stuff to get > > these warnings now. > > It depends on the how aggressive the inlining works. Without UBSAN, > gcc seems to completely optimze away the loop and just the function > directly, which it can do because 'board_init_funcs' is static. > > I assume that the UBSAN object overflow check has the effect of > not dropping the symbol so it can check the size. Ah, I see. Thanks. Thierry
Attachment:
signature.asc
Description: PGP signature