Re: [PATCH] x86,edac: fix for compiler error in traps.c

From: Doug Thompson
Date: Thu Apr 09 2009 - 14:42:03 EST



--- On Wed, 4/8/09, Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:

> From: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> Subject: Re: [PATCH] x86,edac: fix for compiler error in traps.c
> To: "Steven Rostedt" <rostedt@xxxxxxxxxxx>
> Cc: "Ingo Molnar" <mingo@xxxxxxx>, "LKML" <linux-kernel@xxxxxxxxxxxxxxx>, "Doug Thompson" <norsk5@xxxxxxxxx>
> Date: Wednesday, April 8, 2009, 6:48 PM
> On Wed, 8 Apr 2009 20:06:53 -0400
> (EDT) Steven Rostedt <rostedt@xxxxxxxxxxx>
> wrote:
>
> >
> > Impact: compile fix
> >
> >  I got this compile failure on both
> tip/tracing/core as well as on
> >  v2.6.30-rc1.
>
> >    LD      .tmp_vmlinux1
> >  arch/x86/kernel/built-in.o: In function
> `do_nmi':
> >  (.text+0x3c18): undefined reference to
> `edac_handler_set'
> >  arch/x86/kernel/built-in.o: In function
> `do_nmi':
> >  (.text+0x3c48): undefined reference to
> `edac_atomic_assert_error'
> >  make: *** [.tmp_vmlinux1] Error 1
> >  [root@bxrhel51 linux-trace.git]# grep
> edac_handler_set
> >  [root@bxrhel51 linux-trace.git]# Grep
> edac_handler_set '*.[ch]'
> >  find .  -name "*.[ch]" ! -type d  |
> xargs grep  "edac_handler_set"
> >  ./arch/x86/kernel/traps.c:    if
> (edac_handler_set()) {
> >  ./include/linux/edac.h:extern int
> edac_handler_set(void);
> >  ./drivers/edac/edac_stub.c:int
> edac_handler_set(void)
>
> ./drivers/edac/edac_stub.c:EXPORT_SYMBOL_GPL(edac_handler_set);
>
> > This patch seems to fix it.
> >
> > Signed-off-by: Steven Rostedt <rostedt@xxxxxxxxxxx>
> >
> > diff --git a/drivers/edac/Makefile
> b/drivers/edac/Makefile
> > index a5fdcf0..cc2bcb4 100644
> > --- a/drivers/edac/Makefile
> > +++ b/drivers/edac/Makefile
> > @@ -7,7 +7,7 @@
> >  #
>
>
> > -obj-$(CONFIG_EDAC)   
>         := edac_stub.o
> > +obj-$(CONFIG_EDAC)   
>         += edac_stub.o
> >  obj-$(CONFIG_EDAC_MM_EDAC)   
>     += edac_core.o
>
> >  edac_core-objs    := edac_mc.o
> edac_device.o edac_mc_sysfs.o edac_pci_sysfs.o
>
> OK, thanks, I'll send that Linuswards asap.
>
> I guess it could/should be
>
>     obj-y += edac_stub.o
>
> because CONFIG_EDAC is known to be true in
> drivers/edac/.  But that's
> just a consistency/style thing for Doug to scratch his head
> over ;)

I had determined (long ago) that := was a first instance initialization. I could be (probably was) wrong on that. I saw that in other files as well as reading the docs (me read em?).

edac_stub.o is targeted to be IN the kernel via the CONFIG_EDAC object file, since that is a boolean switch. It is a different builtin lib from the modules of edac. It is a relay set of functions and interfaces.

thanks for checking up on it

doug t

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/