You are not logged in.

#1 2007-01-31 18:19:55

radious
Member
Registered: 2006-07-15
Posts: 9

Older 2.6 kernels with ck (or beyond) patchsets don't compile

Hello! I'm trying to compile 2.6.17 kernel with ck or beyond patchset (i need this one because one of my drivers can be compiled only with 2.6.17 and i really like ck). I can't play with abs because kernel's PKGCONFIG is too complicated for me (and actual probably has small problem when it's necessary to deal with 4 parts kernel names like 2.6.17.7 etc.), if somebody has one working  PKGCONFIG (any 2.6.17 with properly beyond or ck) i can try it, thank you.
I was trying to deal with my problem by downloading sources from kernel.org (of course they build properly and work) and patching by appropriate patch from beyond or ck's page. But during compilation i always get errors like

fs/splice.c:1381: error: redefinition of 'link_ipipe_prep'
fs/splice.c:1302: error: previous definition of 'link_ipipe_prep' was here
fs/splice.c:1419: error: redefinition of 'link_opipe_prep'
fs/splice.c:1340: error: previous definition of 'link_opipe_prep' was here

it isn't of course alway splice.c but it alway errors like that. My friend suggested that it could be problem with gcc4 is it possible? Or does anyone know solution for my problem?
Big Thanks

Offline

#2 2007-01-31 19:33:11

tomk
Forum Fellow
From: Ireland
Registered: 2004-07-21
Posts: 9,839

Re: Older 2.6 kernels with ck (or beyond) patchsets don't compile

As you haven't been entirely clear about what you're doing, let me outline what I would do in your situation:
- get the 2.6.17 tarball from kernel.org - that's 2.6.17 ONLY, not 2.6.17.y
- get the 2.6.17-ck1 patch tarball from http://www.kernel.org/pub/linux/kernel/ … .6.17-ck1/
- get the corresponding kernel config from cvs.archlinux.org
- get the corresponding PKGBUILD and associated build files from cvs.archlinux.org (optional - only required if you want to use the Arch Build System)
- build

Actually, there may be a shortcut (just occurred to me while typing) - there are a couple of mirrors that archive old versions of Arch packages. They don't do all of them, but you might be lucky. They're listed on the "Downgrading Packages" wiki page.

Just for curiosity, what driver do you need 2.6.17 for?

Offline

#3 2007-01-31 22:31:50

iphitus
Forum Fellow
From: Melbourne, Australia
Registered: 2004-10-09
Posts: 4,927

Re: Older 2.6 kernels with ck (or beyond) patchsets don't compile

what driver?

Offline

#4 2007-01-31 23:08:58

jnengland77
Member
From: Black Hills, USA
Registered: 2005-05-06
Posts: 111

Re: Older 2.6 kernels with ck (or beyond) patchsets don't compile

Older kernels compile fine on my system.  I'm currently using a custom 2.6.16.38 kernel.

Although not sure if this is a cause of the problem, but Tomk might be right that you may be applying the ck patchset to 2.6.17.y instead of 2.6.17.  Which may cause errors in the compile process.

Offline

#5 2007-02-01 00:00:40

radious
Member
Registered: 2006-07-15
Posts: 9

Re: Older 2.6 kernels with ck (or beyond) patchsets don't compile

Ok. With ck patchsets it is my fault, i should apply them to appropriate kernel (vanilla 2.6.17, not 2.6.17.7). Thanks for this, i'll try it tomorrow.
But for beyond patchsets i was getting appropriate kernel (listed on iphitus' page), i'm sure.
As far as i can see so late there aren't PKGBUILD for ck or beyond kernels, are they?

This driver is islsm softmac for new prism cards in stable version, compile after boot on new kernel (isn't that named external module?). Stable version stopped compiling on new kernels since 2.6.18, unstable compile, even works but kismet doesn't work with that.

Offline

#6 2007-02-01 00:33:13

tomk
Forum Fellow
From: Ireland
Registered: 2004-07-21
Posts: 9,839

Re: Older 2.6 kernels with ck (or beyond) patchsets don't compile

Like I said, the PKGBUILDs are in our CVS. Did you have a look for the archived packages?

And yes, any driver that is compiled outside of the kernel tree can be referred to as an external module.

Offline

#7 2007-02-01 10:08:00

radious
Member
Registered: 2006-07-15
Posts: 9

Re: Older 2.6 kernels with ck (or beyond) patchsets don't compile

Probably i know where i have bug! eg. i was adding beyond4 patch to 2.6.17.13 kernel, shouldn't i add it to clear 2.6.17 one? From PKGBUILD (ohh, i stupid, it's cvs i have to think like in cvs!) kernel one build good. Thanks for all help!

Offline

#8 2007-02-01 10:27:21

JGC
Developer
Registered: 2003-12-03
Posts: 1,664

Re: Older 2.6 kernels with ck (or beyond) patchsets don't compile

These errors you get are pure errors in the source or your kernel config file. Let's say something like this:

#ifdef SOMECONFIG
void a () {
//dosomething for this config
}
#endif

#ifdef SOMEOTHERCONFIG
void a() {
//dosomething for this other config
}
#endif

Usually, when you take the .config that belongs to the kernel, SOMEOTHERCONFIG and SOMECONFIG can't be combined. What happens with new kernels is that featuresets, and thus configuration options change. In this case, both of these defines are set and you get two definitions for the function, which triggers a compile error with every compiler that knows what it is doing. You always have to use "make oldconfig" when using a kernel config file that doesn't belong to your kernel.

Offline

#9 2007-02-01 10:56:49

radious
Member
Registered: 2006-07-15
Posts: 9

Re: Older 2.6 kernels with ck (or beyond) patchsets don't compile

Ok, but that happened even when i was creating my own config file 'by hand' using make menuconfig, without any  preprepared configs.

Offline

Board footer

Powered by FluxBB