PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : qemu cvs mit gcc4.1



Dragoran
11.04.06, 09:17
hallo
die aktuelle cvs version (2006/04/11) lässt sich mit gcc4.1 übersetzen.
man muss nur bei configure --disable-gcc-check angeben.
kqemu scheint entweder nicht mit gcc4.1 zu laufen oder mit kernel 2.6.16


make -C /lib/modules/2.6.16-1.2080_FC5/build M=`pwd` modules
make[1]: Entering directory `/usr/src/kernels/2.6.16-1.2080_FC5-x86_64'
CC [M] /home/dragoran/src/kqemu-1.3.0pre5/kqemu-linux.o
/home/dragoran/src/kqemu-1.3.0pre5/kqemu-linux.c: In Funktion »kqemu_lock_user_page«:
/home/dragoran/src/kqemu-1.3.0pre5/kqemu-linux.c:80: Fehler: »mem_map« undeclared (first use in this function)
/home/dragoran/src/kqemu-1.3.0pre5/kqemu-linux.c:80: Fehler: (Each undeclared identifier is reported only once
/home/dragoran/src/kqemu-1.3.0pre5/kqemu-linux.c:80: Fehler: for each function it appears in.)
/home/dragoran/src/kqemu-1.3.0pre5/kqemu-linux.c: In Funktion »kqemu_alloc_zeroed_page«:
/home/dragoran/src/kqemu-1.3.0pre5/kqemu-linux.c:107: Fehler: »mem_map« undeclared (first use in this function)
/home/dragoran/src/kqemu-1.3.0pre5/kqemu-linux.c: In Funktion »kqemu_vmalloc_to_phys«:
/home/dragoran/src/kqemu-1.3.0pre5/kqemu-linux.c:147: Fehler: »mem_map« undeclared (first use in this function)
/home/dragoran/src/kqemu-1.3.0pre5/kqemu-linux.c:148: Warnung: Kontrollfluss erreicht Ende einer Nicht-void-Funktion
make[2]: *** [/home/dragoran/src/kqemu-1.3.0pre5/kqemu-linux.o] Fehler 1
make[1]: *** [_module_/home/dragoran/src/kqemu-1.3.0pre5] Fehler 2
make[1]: Leaving directory `/usr/src/kernels/2.6.16-1.2080_FC5-x86_64'
make: *** [kqemu.ko] Fehler 2

stefan.becker
11.04.06, 18:39
Mit der Kernelversion habe ich nix hingekriegt. Weder Nvidia noch Qemu noch VMWARE.

Anscheinend ist der Kernel mit einer anderen Version des gcc übersetzt als FC mitbringt.

Die Lösung bei mir war dann, einen Kernel 2.6.16 bei kernel.org zu ziehen und mit der Config des Serienkernels selbst zu basteln. Danach gingen alle oben genannten Sachen durch wie Butter.

stefan.becker
11.04.06, 21:24
Ich habe das mal getestet, ich kann qemu nicht mit dem gcc 4.1 übersetzen. Registerfehler wie zuvor. Hast du keine Fehlermeldungen bekommen oder hast du einen der kursierenden Patches verwendet?

Dragoran
12.04.06, 07:45
ich habe nur
./configure --disable-gcc-check --enable-alsa --target-list=i386-softmmu,x86_64_softmmu,i386-user
gemacht
andere targets (sparc!) bringen nur fehler.
mit dem kernel läuft bei mir nvidia ohne probleme.
ich bin gerade dabei das problem zu beheben
2 der drei oben genannten fehler sind schon weg einer fehlt noch.

Dragoran
12.04.06, 08:23
der fix war ganz simple.
dieser patch hilft falls jemand das geiche problem hat:

diff -ru kqemu-1.3.0pre5.org/kqemu-linux.c kqemu-1.3.0pre5/kqemu-linux.c
--- kqemu-1.3.0pre5.org/kqemu-linux.c 2006-03-27 22:58:01.000000000 +0200
+++ kqemu-1.3.0pre5/kqemu-linux.c 2006-04-12 09:20:10.000000000 +0200
@@ -22,12 +22,12 @@
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,19)
#error "Linux 2.4.19 or above needed"
#endif
-
+/*
#ifndef page_to_pfn
#define page_to_pfn(page) ((page) - mem_map)
#define pfn_to_page(pfn) (mem_map + (pfn))
#endif
-
+*/
#ifdef PAGE_KERNEL_EXEC
#if defined(__i386__)
/* problem : i386 kernels usually don't export __PAGE_KERNEL_EXEC */

@stefan.becker
gibt es für kqemu eine eigene mailing list oder kann ich das auf der qemu-devel-list melden?

Dragoran
12.04.06, 08:30
nachtrag:
gcc 4.1 kann mann leider noch vergessen ...
compilieren geht zwar aber ständige segfaults während der laufzeit. (gilt nicht für das kernel modul)
habs wieder mit gcc32 bauen müssen.

stefan.becker
12.04.06, 20:21
Mich wundert, dass du das überhaupt übersetzen konntest. Ohne Patch dürfte das eigentlich nicht gehen.

Zu KQEMU: Ja, das ist die Qemu-Mailinglist.