Re: 2.4.32: unresolved symbol unregister_qdisc
From: Randy.Dunlap
Date: Sun Apr 09 2006 - 22:27:34 EST
On Sun, 9 Apr 2006 22:05:33 -0400 (EDT) George P Nychis wrote:
>
> > On Sun, 9 Apr 2006 13:37:25 -0400 (EDT) George P Nychis wrote:
> >
> >> Thanks for the help.
> >>
> >> Here is the makefile: http://rafb.net/paste/results/auchPH75.html
> >>
> >> And here is the full errors I receive:
> >> http://rafb.net/paste/results/Qplpqw74.html
> >>
> >> Greatly appreciate it
> >>
> >> - George
> >
> > [repeat: please don't top-post]
> >
> > I don't know how much I can help you. It's been a long time since I've
> > built external modules on 2.4.x.
> >
> > Problems that I see: - the Makefile does not use the expected 2.4 kernel
> > build infrastructure; - kernel Makefile uses -nostdinc to prevent use of
> > userspace headers; - Makefile is trying to include userspace headers
> > instead of kernel headers, e.g.: In file included from
> > /usr/include/linux/if_ether.h:107, from /usr/include/linux/netdevice.h:29,
> > from sch_xcp.c:8: - this specified include directory is only in 2.6.x,
> > not 2.4.x: -I/lib/modules/`uname -r`/build/include/asm/mach-default
> >
> > It's not clear to me how this makefile could work with 2.4.x at all. Is it
> > supposed to, or that's just what you want to see it do?
> >
> > You could try to fix the Makefile based on makefile-changes articles at
> > lwn.net. E.g.: http://lwn.net/Articles/151784/
> > http://lwn.net/Articles/79984/ http://lwn.net/Articles/74767/
> > http://lwn.net/Articles/69148/ http://lwn.net/Articles/21823/
> >
> >
> >
> >>> On Sat, 8 Apr 2006 19:18:47 -0400 (EDT) George P Nychis wrote:
> >>>
> >>>> Yeah, this module is unfortunately not under the GPL, it was made
> >>>> for research and i am not the author, I was only given the code for
> >>>> my own research.
> >>>>
> >>>> I enabled that support in the kernel, and then tried to recompile
> >>>> and get tons of errors/warnings... so maybe I am missing something
> >>>> else to be enabled in the kernel... here are a few examples of
> >>>> errors: /usr/include/linux/skbuff.h:30:26: net/checksum.h: No such
> >>>> file or directory /usr/include/asm/irq.h:16:25: irq_vectors.h: No
> >>>> such file or directory /usr/include/linux/irq.h:72: error: `NR_IRQS'
> >>>> undeclared here (not in a function) /usr/include/asm/hw_irq.h:28:
> >>>> error: `NR_IRQ_VECTORS' undeclared here (not in a function)
> >>>>
> >>>> I think those are the top most errors, so if i can fix those
> >>>> hopefully the rest shall vanish!
> >>>
> >>> Looks like a Makefile problem then. Can you post the Makefile?
> >>> Hopefully it is using a Makefile and not just an elaborate gcc command
> >>> line.
> >>>
> >>> [and please don't top-post]
> >>>
> >>>> - George
> >>>>
> >>>>
> >>>>> From: "George P Nychis" <gnychis@xxxxxxx> Date: Sat, 8 Apr 2006
> >>>>> 18:47:34 -0400 (EDT)
> >>>>>
> >>>>>> Hey,
> >>>>>>
> >>>>>> I have a kernel module that uses unregister_qdisc and
> >>>>>> register_qdisc, whenever i try to insert the module I get:
> >>>>>> /lib/modules/2.4.32/kernel/net/sched/sch_xcp.o:
> >>>>>> /lib/modules/2.4.32/kernel/net/sched/sch_xcp.o: unresolved
> >>>>>> symbol unregister_qdisc
> >>>>>> /lib/modules/2.4.32/kernel/net/sched/sch_xcp.o:
> >>>>>> /lib/modules/2.4.32/kernel/net/sched/sch_xcp.o: unresolved
> >>>>>> symbol register_qdisc
> >>>>>>
> >>>>>> Am i missing some sort of support in the kernel?
> >>>>>
> >>>>> Make sure CONFIG_NET_SCHED is enabled and that you compiled your
> >>>>> module against that kernel.
> >>>>>
> >>>>> Where does this sch_xcp come from? It's not in the vanilla
> >>>>> sources.
> >>>>>
> >>>>> Also, please direct networking questions to the
> >>>>> netdev@xxxxxxxxxxxxxxx mailing list which I have added to the
> >>>>> CC:.
> >
> > --- ~Randy
> >
> >
>
> By the way, if I add -I/usr/src/linux/include to the compile line, it successfully compiles, however, i am back to the start:
> lanthanum-ini src-1.0.1 # insmod sch_xcp
> Using /lib/modules/2.4.32/kernel/net/sched/sch_xcp.o
> /lib/modules/2.4.32/kernel/net/sched/sch_xcp.o: /lib/modules/2.4.32/kernel/net/sched/sch_xcp.o: unresolved symbol unregister_qdisc
> /lib/modules/2.4.32/kernel/net/sched/sch_xcp.o: /lib/modules/2.4.32/kernel/net/sched/sch_xcp.o: unresolved symbol register_qdisc
Yet your 2.4.32 kernel image file does have those symbols in it?
Can you verify that by using 'nm' on the kernel image file?
If so, then I suppose that you'll need to make a small module test case
that exhibits this behavior, or just tell us where to get the sch_xcp files...
(re-added cc: for netdev)
---
~Randy
-
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/