From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH] kvm-userspace: fix module build with --kerneldir Date: Wed, 26 Nov 2008 18:00:42 +0200 Message-ID: <492D72AA.8050202@redhat.com> References: <1227621454-24385-1-git-send-email-joerg.roedel@amd.com> <492D27FA.5090707@redhat.com> <20081126115915.4cf3308d@siegfried> <492D2F85.5050004@redhat.com> <492D3E23.4050106@siemens.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Maik Hentsche , kvm@vger.kernel.org, Joerg Roedel To: Jan Kiszka Return-path: Received: from mx2.redhat.com ([66.187.237.31]:46219 "EHLO mx2.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751128AbYKZQAz (ORCPT ); Wed, 26 Nov 2008 11:00:55 -0500 In-Reply-To: <492D3E23.4050106@siemens.com> Sender: kvm-owner@vger.kernel.org List-ID: Jan Kiszka wrote: > Avi Kivity wrote: > >> Maik Hentsche wrote: >> >>> Avi Kivity wrote: >>> >>> >>> >>>> Can't the version be determined directly from kernedir itself? e.g. >>>> kerneldir is /lib/modules/$version/build? >>>> >>>> >>> How do you get $version if you are crosscompiling? In this case the >>> usual way of asking uname doesn't work. Instead you somehow need to get >>> the version of the kernel you're building for from the kernel source >>> provided in --kerneldir. I don't know any better way than evaluating >>> UTSRELEASE. >>> >>> >> If the user specified $kerneldir, it should be in the form >> /lib/modules/$version/build, no? >> > > This is not sufficiently generic. KVM should to accept arbitrary paths > to kernel directories, not just those special links (which could cause > problems anyway if the link is set up for the target and makes no sense > on the build host). > > Fair enough. This seems to work: awk ' / = / { a[$1] = $3 } END { printf("%s.%s.%s%s\n", a["VERSION"], a["PATCHLEVEL"], a["SUBLEVEL"], a["EXTRAVERSION"]) }' "$kerneldir/Makefile" Or alternatively awk '/Linux kernel version/ { print $NF }' "$kerneldir/.config" -- error compiling committee.c: too many arguments to function