Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4A66A6B25DB59F429D1A3DB1751D284D64E33F92F4@klss-08.int.krls.ru>
Date: Tue, 24 May 2011 21:52:46 +0400
From: Malykh Oleg <o.malykh@...s.ru>
To: "'owl-users@...ts.openwall.com'" <owl-users@...ts.openwall.com>
Subject: RE: Kernel build and bonding

Dear Alexander,

You right! When I've moved function bond_slave_override above function bond_xmit_roundrobin module compiled without any errors. Thank you very much.

Best regards

Oleg Malykh
IT Support Department

JSC "Martin Bauer Management"
Phone +7 495 7059376
Fax     +7 495 7059373
gsm    +7 916 1139938
o.malykh@...s.ru


-----Original Message-----
From: Solar Designer [mailto:solar@...nwall.com] 
Sent: Tuesday, May 24, 2011 8:26 AM
To: owl-users@...ts.openwall.com
Subject: Re: [owl-users] Kernel build and bonding

On Tue, May 24, 2011 at 06:27:57AM +0400, Malykh Oleg wrote:
> I've tried to build kernel by instruction http://openwall.info/wiki/Owl/kernel-build
> When I use traditional Owl kernel config I build kernel without any errors. But I need to make kernel with bonding and when I try to build kernel with this option I meet this error:
> 
> drivers/net/bonding/bond_main.c: In function `bond_xmit_roundrobin':
> drivers/net/bonding/bond_main.c:234: sorry, unimplemented: inlining failed in call to 'bond_slave_override': function body not available
> drivers/net/bonding/bond_main.c:4479: sorry, unimplemented: called from here

Thank you for reporting this in here.

This looks like one of those cases where gcc 4 is able to inline
functions, but gcc 3.4.5 that we have in Owl is not.  We're patching
some of those in the -owl kernel patch, but not bonding.

However, I've just tried to reproduce the problem, and failed.
bonding.ko compiled fine for me.  This is
2.6.18-238.9.1.el5.028stab089.1.owl1 with mostly Owl default config
(except for CONFIG_BONDING=m), compiling on Owl-current on x86_64.

When I try to set CONFIG_BONDING=y, my build fails at linking:

  LD      .tmp_vmlinux1
drivers/built-in.o:(.bss+0x7ea4): multiple definition of `debug'
arch/x86_64/kernel/built-in.o:(.kprobes.text+0x10): first defined here
ld: Warning: size of symbol `debug' changed from 336 in arch/x86_64/kernel/built-in.o to 4 in drivers/built-in.o
make: *** [.tmp_vmlinux1] Error 1

which is a real issue, but is an entirely different one from the one you
observed.

Are you possibly building for i686?  Or a different kernel version?
If so, and if you need that, perhaps review the -owl patch for similar
issues being patched and edit bond_main.c accordingly.  This usually
amounts to moving the function body up in the source file (above the
first call to the function).

Work is underway to update Owl-current to gcc 4.6.0+, which will
eliminate these inlining problems.

Thanks again,

Alexander

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.