Messages in this thread | | | Date | Mon, 11 Oct 2004 21:19:32 -0700 | From | Andrew Morton <> | Subject | Re: __init dependencies |
| |
"Randy.Dunlap" <rddunlap@osdl.org> wrote: > > My experience with output of buildcheck is that it's verbose and has > lots of false positives.
I berated Keith over that a while back and he shot me down. umm...
> On Mon, 31 May 2004 23:52:14 -0700, > Andrew Morton <akpm@osdl.org> wrote: > > > >gad, reference_init generates so much stuff I wonder if it's worth using. > >Are all these for real? > > Apart from altinstructions, yes. Mainly because people have not been > checking them. > > >perl scripts/reference_init.pl > >Finding objects, 1411 objects, ignoring 122 module(s) > >Finding conglomerates, ignoring 137 conglomerate(s) > >Scanning objects > >Error: ./arch/i386/kernel/apic.o .data refers to 0000009c R_386_32 .init.text > > arch/i386/kernel/apic.c > void (*wait_timer_tick)(void) = wait_8254_wraparound; > wait_8254_wraparound is __init. wait_timer_tick should be __initdata, > which flows onto several other functions. > > >Error: ./arch/i386/kernel/cpu/mtrr/centaur.o .data refers to 00000008 R_386_32 .init.text > > That is real, centaur_mtrr_ops.init = centaur_mcr_init. Like a lot of > this initialization code, we get away with the dangling reference > because the code is only executed at boot. > > >Error: ./arch/i386/kernel/cpu/mtrr/centaur.o .eh_frame refers to 000000dc R_386_32 .init.text > > I don't see any .eh_frame references in 2.6.7-rc2 using gcc version > 3.3.3 20040412 (Red Hat Linux 3.3.3-7). Where are they coming from? > > >Error: ./arch/i386/kernel/cpu/mtrr/cyrix.o .data refers to 00000028 R_386_32 .init.text > > Same as centaur. > > >Error: ./arch/i386/kernel/cpu/mtrr/generic.o .text refers to 0000038f R_386_32 .init.data > > arch/i386/kernel/cpu/mtrr/generic.c > generic_set_all() uses __intdata smp_changes_mask. > > >Error: ./arch/i386/kernel/smpboot.o .altinstructions refers to 00000000 R_386_32 .init.text > > altinstructions is a false positive, tweak reference_init.pl > > --- reference_init.pl.orig 2004-06-01 20:30:27.000000000 +1000 > +++ reference_init.pl 2004-06-01 20:31:01.000000000 +1000 > @@ -93,6 +93,7 @@ > $from !~ /\.stab$/ && > $from !~ /\.rodata$/ && > $from !~ /\.text\.lock$/ && > + $from !~ /\.altinstructions$/ && > $from !~ /\.debug_/)) { > printf("Error: %s %s refers to %s\n", $object, $from, $line); > } > > The rest of the warnings look real, apart from the strange eh_frame. >
So what you think are false positives may well not be. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |