From: Anthony B. <Ant...@ou...> - 2004-05-17 06:26:22
|
I apologize if I am posting to the wrong group. However, troubleshooting a compile doesn't seem appropriate for the user list... Given problems with compiling the "evaluation" of UML in 64-bit mode (on a 64-bit AMD host), I tried to compile a 32-bit version so we could start playing. The results are not initially promising. First, it failed to compile due to a missing Makefile-x86_64. So I modified the base Makefile to assume a subarch of i386: diff Makefile.orig Makefile 131c131,132 < -e s/s390x/s390/ -e s/parisc64/parisc/ ) --- > -e s/s390x/s390/ -e s/parisc64/parisc/ \ > -e s/x86_64/i386/ ) Now, when attempting to compile, I see: HOSTCC arch/um/sys-i386/util/mk_sc arch/um/sys-i386/util/mk_sc.c: In function `main': arch/um/sys-i386/util/mk_sc.c:21: error: structure has no member named `eip' arch/um/sys-i386/util/mk_sc.c:22: error: structure has no member named `esp' arch/um/sys-i386/util/mk_sc.c:23: warning: int format, different type arg (arg 2) arch/um/sys-i386/util/mk_sc.c:24: warning: int format, different type arg (arg 2) arch/um/sys-i386/util/mk_sc.c:25: error: structure has no member named `ds' arch/um/sys-i386/util/mk_sc.c:26: error: structure has no member named `es' arch/um/sys-i386/util/mk_sc.c:27: error: structure has no member named `ss' arch/um/sys-i386/util/mk_sc.c:28: warning: int format, different type arg (arg 2) arch/um/sys-i386/util/mk_sc.c:29: warning: int format, different type arg (arg 2) arch/um/sys-i386/util/mk_sc.c:30: error: structure has no member named `eax' arch/um/sys-i386/util/mk_sc.c:31: error: structure has no member named `ebx' arch/um/sys-i386/util/mk_sc.c:32: error: structure has no member named `ecx' arch/um/sys-i386/util/mk_sc.c:33: error: structure has no member named `edx' arch/um/sys-i386/util/mk_sc.c:34: error: structure has no member named `edi' arch/um/sys-i386/util/mk_sc.c:35: error: structure has no member named `esi' arch/um/sys-i386/util/mk_sc.c:36: error: structure has no member named `ebp' arch/um/sys-i386/util/mk_sc.c:37: warning: int format, different type arg (arg 2) arch/um/sys-i386/util/mk_sc.c:38: warning: int format, different type arg (arg 2) arch/um/sys-i386/util/mk_sc.c:39: warning: int format, different type arg (arg 2) arch/um/sys-i386/util/mk_sc.c:40: warning: int format, different type arg (arg 2) arch/um/sys-i386/util/mk_sc.c:41: warning: int format, different type arg (arg 2) arch/um/sys-i386/util/mk_sc.c:42: error: structure has no member named `cw' arch/um/sys-i386/util/mk_sc.c:43: error: structure has no member named `sw' arch/um/sys-i386/util/mk_sc.c:44: error: structure has no member named `tag' arch/um/sys-i386/util/mk_sc.c:45: error: structure has no member named `ipoff' arch/um/sys-i386/util/mk_sc.c:46: error: structure has no member named `cssel' arch/um/sys-i386/util/mk_sc.c:47: error: structure has no member named `dataoff' arch/um/sys-i386/util/mk_sc.c:48: error: structure has no member named `datasel' arch/um/sys-i386/util/mk_sc.c:49: warning: int format, different type arg (arg 2) arch/um/sys-i386/util/mk_sc.c:50: error: structure has no member named `_fxsr_env' make[1]: *** [arch/um/sys-i386/util/mk_sc] Error 1 make: *** [arch/um/sys-i386/util/mk_sc] Error 2 Any ideas? I'm beginning to remember why it's been over a decade since I dealt with the Linux kernel code. Even then I was a poor excuse for a programmer... Thanks again for your patience. Tony |
From: Anthony B. <Ant...@ou...> - 2004-05-18 00:20:04
|
Okay, I could use some help here. I'm looking at this code and, unfortunately, don't understand the problem. = I have done the following on a 64-Bit AMD machine: 1) Download and install 'vanilla' kernel 2.6.6. 2) Patched with http://www.user-mode-linux.org/~blaisorblade/patches/uml-pa= tch-2.6.6-02.bz2 3) Patched with http://www.user-mode-linux.org/~blaisorblade/patches/patch-= 2.6.6-v2 4) Patched with http://prdownloads.sourceforge.net/user-mode-linux/uml-patc= h-x86-64-2.6.4.bz2 At this point, I then manually fixed the two or three failed patches. I = then attempted to compile. After fixing a few more items, the compile = fails with: CHK include/linux/compile.h gcc -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing = -fno-common -U__x86_64__ -D__arch_um__ -DSUBARCH=3D\"x86_64\" -D_LARGEFILE6= 4_SOURCE -D__um__x86_64 -Iarch/um/include -I/usr/src/a/arch/um/kernel/tt/= include -I/usr/src/a/arch/um/kernel/skas/include -D__x86_64__ -D_GNU_SOURCE= -O2 -fomit-frame-pointer -c -o arch/um/drivers/harddog_user.o arch/um/driv= ers/harddog_user.c In file included from arch/um/include/mode.h:12, from arch/um/drivers/harddog_user.c:15: arch/um/kernel/tt/include/mode.h: In function `copy_sc_from_user_tt': arch/um/kernel/tt/include/mode.h:27: error: dereferencing pointer to = incomplete type arch/um/kernel/tt/include/mode.h:28: error: dereferencing pointer to = incomplete type arch/um/kernel/tt/include/mode.h:29: error: dereferencing pointer to = incomplete type arch/um/kernel/tt/include/mode.h:30: warning: implicit declaration of = function `copy_from_user_proc' arch/um/kernel/tt/include/mode.h:30: error: dereferencing pointer to = incomplete type arch/um/kernel/tt/include/mode.h:31: error: dereferencing pointer to = incomplete type arch/um/kernel/tt/include/mode.h:21: warning: unused variable `arch' arch/um/kernel/tt/include/mode.h: In function `copy_sc_to_user_tt': arch/um/kernel/tt/include/mode.h:51: error: dereferencing pointer to = incomplete type arch/um/kernel/tt/include/mode.h:52: error: dereferencing pointer to = incomplete type arch/um/kernel/tt/include/mode.h:53: warning: implicit declaration of = function `copy_to_user_proc' arch/um/kernel/tt/include/mode.h:53: error: dereferencing pointer to = incomplete type arch/um/kernel/tt/include/mode.h:45: warning: unused variable `arch' make[1]: *** [arch/um/drivers/harddog_user.o] Error 1 make: *** [arch/um/drivers] Error 2 The relevant code is (I believe): # grep -5n to_fp arch/um/kernel/tt/include/mode.h=20 18-static inline int copy_sc_from_user_tt(void *to_ptr, void *from_ptr,=20 19- void *data) 20-{ 21- struct arch_frame_data *arch =3D data; 22- struct sigcontext *to =3D to_ptr, *from =3D from_ptr; 23: struct _fpstate *to_fp, *from_fp; 24- unsigned long sigs; 25- int err; 26- 27: to_fp =3D to->fpstate; 28- from_fp =3D from->fpstate; 29- sigs =3D to->oldmask; 30- err =3D copy_from_user_proc(to, from, sizeof(*to)); 31- to->oldmask =3D sigs; Any ideas? Would this be another missing include? Tony |
From: Jeff D. <jd...@ad...> - 2004-05-19 23:50:23
|
Ant...@ou... said: > 1) Download and install 'vanilla' kernel 2.6.6. > 2) Patched with http://www.user-mode-linux.org/~blaisorblade/patches/uml-patch-2.6.6-02.bz2 > 3) Patched with http://www.user-mode-linux.org/~blaisorblade/patches/patch-2.6.6-v2 > 4) Patched with http://prdownloads.sourceforge.net/user-mode-linux/uml-patch-x86-64-2.6.4.bz2 Did you notice that the x86_64 patch has "2.6.4" in the name? That's because that's the kernel version that it applies to. Jeff |
From: Anthony B. <Ant...@ou...> - 2004-05-20 01:19:02
|
Yes, I noticed. I originally tried it on 2.6.4, but couldn't get it to = cleanly apply. When looking for the mismatches, I found myself in very = deep water trying to determine how to fix the patch. Out of curiousity I = attempted it on 2.6.6. It applied with only 3 rejects (one of which was = merely a comment). That is why I shifted this direction... I will attempt to move back towards 2.6.4 tomorrow. Thanks for the reply! Tony >>> Jeff Dike <jd...@ad...> 05/19/04 05:36PM >>> Ant...@ou... said: > 1) Download and install 'vanilla' kernel 2.6.6.=20 > 2) Patched with http://www.user-mode-linux.org/~blaisorblade/patches/uml-= patch-2.6.6-02.bz2=20 > 3) Patched with http://www.user-mode-linux.org/~blaisorblade/patches/patc= h-2.6.6-v2=20 > 4) Patched with http://prdownloads.sourceforge.net/user-mode-linux/uml-pa= tch-x86-64-2.6.4.bz2=20 Did you notice that the x86_64 patch has "2.6.4" in the name? That's = because that's the kernel version that it applies to. Jeff ------------------------------------------------------- This SF.Net email is sponsored by: Oracle 10g Get certified on the hottest thing ever to hit the market... Oracle = 10g.=20 Take an Oracle 10g class now, and we'll give you the exam FREE. http://ads.osdn.com/?ad_id=3D3149&alloc_id=3D8166&op=3Dclick=20 _______________________________________________ User-mode-linux-devel mailing list Use...@li...=20 https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel |
From: Anthony B. <Ant...@ou...> - 2004-05-20 01:19:32
|
Will give it a try. Tony >>> Jeff Dike <jd...@ad...> 05/19/04 05:44PM >>> Ant...@ou... said: > 1) Downloaded vanilla 2.6.4 source tree from www.kernel.org=20 > 2) Decompressed and expanded. Applied uml-patch-2.6.4-1.bz2 followed by > uml-patch-x86-64-2.6.4.bz2. > 3) Configured. If you didn't take the default config, I would try that. It's possible that there are config settings that could break it. Jeff ------------------------------------------------------- This SF.Net email is sponsored by: Oracle 10g Get certified on the hottest thing ever to hit the market... Oracle = 10g.=20 Take an Oracle 10g class now, and we'll give you the exam FREE. http://ads.osdn.com/?ad_id=3D3149&alloc_id=3D8166&op=3Dclick=20 _______________________________________________ User-mode-linux-user mailing list Use...@li...=20 https://lists.sourceforge.net/lists/listinfo/user-mode-linux-user |
From: BlaisorBlade <bla...@ya...> - 2004-05-22 18:26:36
|
Alle 08:26, luned=EC 17 maggio 2004, Anthony Brock ha scritto: > I apologize if I am posting to the wrong group. However, troubleshooting a > compile doesn't seem appropriate for the user list... Well, it is normally; this however is good here since 64-bits AMD is someth= ing=20 really interesting. > Given problems with compiling the "evaluation" of UML in 64-bit mode (on a > 64-bit AMD host), I tried to compile a 32-bit version so we could start > playing. The results are not initially promising. First, it failed to > compile due to a missing Makefile-x86_64. So I modified the base Makefile > to assume a subarch of i386: > > diff Makefile.orig Makefile > 131c131,132 > < -e s/s390x/s390/ -e s/parisc64/parisc/ ) > --- > > > -e s/s390x/s390/ -e s/parisc64/parisc/ \ > > -e s/x86_64/i386/ ) Would you post the version of your host kernel and of your patch? Probably, however, the kernel headers in /usr/include/asm are those for=20 x86_64. The first solution I see is to rename /usr/include/asm away, and th= en=20 create a symlink from /usr/include/asm to <linux kernel=20 sources>/include/asm-i386. Use a kernel source tree similar to the one of t= he=20 machine, since /usr/include/linux should match at least a bit; don't mix 2.= 4=20 and 2.6. Maybe you need to replace even the /usr/include/linux directory th= e=20 same way. After compiling UML, you should switch to the old headers - i.e. delete the= =20 symlink and move the headers folders in the old place. If this does not work, would you check if at=20 http://www.user-mode-linux.org/~blaisorblade/ you can find something useful= ?=20 If you did the patch well (and I think yes), it is compiling a 32-bit UML,= =20 which should work. Maybe you are using a 2.6.6 host kernel, which does not= =20 work with 2.6.4 patch. Bye =2D-=20 Paolo Giarrusso, aka Blaisorblade Linux registered user n. 292729 |