From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1DxIVG-0000wC-0o for qemu-devel@nongnu.org; Tue, 26 Jul 2005 02:01:22 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1DxIVD-0000td-8t for qemu-devel@nongnu.org; Tue, 26 Jul 2005 02:01:20 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1DxIVC-0000pn-Hk for qemu-devel@nongnu.org; Tue, 26 Jul 2005 02:01:18 -0400 Received: from [64.233.182.203] (helo=nproxy.gmail.com) by monty-python.gnu.org with esmtp (Exim 4.34) id 1DxIb5-0004cb-2h for qemu-devel@nongnu.org; Tue, 26 Jul 2005 02:07:23 -0400 Received: by nproxy.gmail.com with SMTP id n15so143196nfc for ; Mon, 25 Jul 2005 22:56:18 -0700 (PDT) Message-ID: Date: Tue, 26 Jul 2005 07:56:18 +0200 From: Pascal Terjan Subject: Re: [Qemu-devel] Unknown symbol __PAGE_KERNEL_EXEC In-Reply-To: <1122352134.13708.4.camel@unixadmindazfc2.chh.co.nz> 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, Darryl Dixon wrote: > Hi All, Fabrice, >=20 > Compiling the new kqemu-0.7.1 on Fedora Core 4 with kernel > 2.6.12-1.1398_FC4 gives this error: >=20 > -------------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/k= qemu-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' 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) an there is EXPORT_SYMBOL(__PAGE_KERNEL) but not for __PAGE_KERNEL_EXEC 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) So, on i386 __PAGE_KERNEL_EXEC is an extern variable wich is not exported and not a macro. I wrote a patch on http://www.zarb.org/cgi-bin/viewcvs.cgi/plf/SPECS/non-free/dkms-kqemu/kqemu= -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 :-)