From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1DxJ0x-0000BH-Pn for qemu-devel@nongnu.org; Tue, 26 Jul 2005 02:34:08 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1DxJ0v-0000B5-2v for qemu-devel@nongnu.org; Tue, 26 Jul 2005 02:34:06 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1DxJ01-0008Iq-Rd for qemu-devel@nongnu.org; Tue, 26 Jul 2005 02:33:10 -0400 Received: from [64.233.182.199] (helo=nproxy.gmail.com) by monty-python.gnu.org with esmtp (Exim 4.34) id 1DxIlI-0005MA-SR for qemu-devel@nongnu.org; Tue, 26 Jul 2005 02:17:57 -0400 Received: by nproxy.gmail.com with SMTP id n15so143344nfc for ; Mon, 25 Jul 2005 23:06:53 -0700 (PDT) Message-ID: Date: Tue, 26 Jul 2005 08:06:53 +0200 From: Pascal Terjan Subject: Re: [Qemu-devel] Unknown symbol __PAGE_KERNEL_EXEC In-Reply-To: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline References: <1122352134.13708.4.camel@unixadmindazfc2.chh.co.nz> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Darryl Dixon On 7/26/05, Pascal Terjan wrote: > On 7/26/05, Darryl Dixon wrote: > > Hi All, Fabrice, > > > > Compiling the new kqemu-0.7.1 on Fedora Core 4 with kernel > > 2.6.12-1.1398_FC4 gives this error: > > > > -------------8<------------------- > > [dixond@unixadmindazfc2 kqemu]$ make > > make -C /lib/modules/2.6.12-1.1398_FC4/build M=3D`pwd` modules > > make[1]: Entering directory `/usr/src/kernels/2.6.12-1.1398_FC4-i686' > > CC [M] /opt/src/qemu-0.7.1/kqemu/kqemu-linux.o > > cp /opt/src/qemu-0.7.1/kqemu/kqemu-mod-i386.o /opt/src/qemu-0.7.1/kqemu= /kqemu-mod.o > > LD [M] /opt/src/qemu-0.7.1/kqemu/kqemu.o > > Building modules, stage 2. > > MODPOST > > Warning: could not find /opt/src/qemu-0.7.1/kqemu/.kqemu-mod.o.cmd > > for /opt/src/qemu-0.7.1/kqemu/kqemu-mod.o > > *** Warning: "__PAGE_KERNEL_EXEC" [/opt/src/qemu-0.7.1/kqemu/kqemu.ko] > > undefined! > > CC /opt/src/qemu-0.7.1/kqemu/kqemu.mod.o > > LD [M] /opt/src/qemu-0.7.1/kqemu/kqemu.ko > > make[1]: Leaving directory `/usr/src/kernels/2.6.12-1.1398_FC4-i686' >=20 > My understanding of the problem : > on i386, in pgtable.h we have > extern unsigned long long __PAGE_KERNEL, __PAGE_KERNEL_EXEC; > #define PAGE_KERNEL_EXEC __pgprot(__PAGE_KERNEL_EXEC) >=20 > an there is EXPORT_SYMBOL(__PAGE_KERNEL) but not for __PAGE_KERNEL_EXEC >=20 > on x86_64 : > #define __PAGE_KERNEL_EXEC \ > (_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY | _PAGE_ACCESSED) > #define MAKE_GLOBAL(x) __pgprot((x) | _PAGE_GLOBAL) > #define PAGE_KERNEL_EXEC MAKE_GLOBAL(__PAGE_KERNEL_EXEC) >=20 > So, on i386 __PAGE_KERNEL_EXEC is an extern variable wich is not > exported and not a macro. >=20 > I wrote a patch on > http://www.zarb.org/cgi-bin/viewcvs.cgi/plf/SPECS/non-free/dkms-kqemu/kqe= mu-0.7.1-PAGE_KERNEL_EXEC.patch?rev=3D1.1&view=3Dmarkup > but I don't know much kernel stuff so I have no idea how much it is > broken :-) >=20 after think to what I wrote, as PAGE_KERNEL is OK, a simpler and better patch may be to use & ~_PAGE_NX