From mboxrd@z Thu Jan 1 00:00:00 1970 From: compudj@krystal.dyndns.org (Mathieu Desnoyers) Date: Mon, 16 Mar 2009 16:47:18 -0400 Subject: [ltt-dev] 2.6.29-rc7-lttng-0.110 broken with CONFIG_SLUB In-Reply-To: <20090316200115.GA22538@yoda.jdub.homelinux.org> References: <20090316182227.GA2444@yoda.jdub.homelinux.org> <20090316194459.GD11878@Krystal> <20090316200115.GA22538@yoda.jdub.homelinux.org> Message-ID: <20090316204718.GB14337@Krystal> * Josh Boyer (jwboyer at linux.vnet.ibm.com) wrote: > On Mon, Mar 16, 2009 at 03:44:59PM -0400, Mathieu Desnoyers wrote: > >* Josh Boyer (jwboyer at linux.vnet.ibm.com) wrote: > >> Hi All, > >> > >> I was attempting to build a simple ppc64_defconfig using > >> the latest LTTng tag from git. When doing a: > >> > >> make ppc64_defconfig > >> make > >> > >> I get the error below. > >> > > > >Hi Josh, > > > >Yes, LTTng has been tested with slub, but not for the powerpc64 > >cross-build. Thanks for the report, this is actually a header circular > >dependency I caused. It should be fixed in LTTng 0.111. > > Bah. Yes, I should have clarified on ppc/ppc64. Sorry for the confusion > there. > > >I'll have to update my powerpc64 cross compiler to test it, because I am > >stucked with a broken gcc 4.1. Please tell me if 0.111 fixes the problem > >for you or if you encounter other problems. > > Yep, the extern on tb_ticks_per_sec is what I had come up with locally. > It should work fine, and does indeed get past the error I was seeing. The > build now dies with: > > kernel/irq/handle.c:259: error: __ksymtab_irq_to_desc causes a section type conflict > kernel/irq/handle.c:259: error: __ksymtab_irq_to_desc causes a section type conflict > make[2]: *** [kernel/irq/handle.o] Error 1 > make[1]: *** [kernel/irq] Error 2 > make: *** [kernel] Error 2 > make: *** Waiting for unfinished jobs.... > > josh > Threads like this http://lkml.org/lkml/2008/1/13/175 Tells me this kind of problems appears with the symbol is declared static *and* exported, which does not seem to be the case for irq_to_desc. It's first declared here : (supposing CONFIG_GENERIC_HARDIRQS) include/linux/irqnr.h: extern struct irq_desc *irq_to_desc(unsigned int irq); then declared here : !CONFIG_SPARSE_IRQ : struct irq_desc *irq_to_desc(unsigned int irq) { return (irq < NR_IRQS) ? irq_desc + irq : NULL; } EXPORT_SYMBOL(irq_to_desc); I don't see the problem.. any idea ? I'll have to install a cross-compiler to find out what is happening here. What is your compiler version ? Mathieu -- Mathieu Desnoyers OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68