From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sc8-sf-mx1-b.sourceforge.net ([10.3.1.91] helo=mail.sourceforge.net) by sc8-sf-list1-new.sourceforge.net with esmtp (Exim 4.43) id 1FvILa-0007qU-8I for user-mode-linux-devel@lists.sourceforge.net; Tue, 27 Jun 2006 11:31:38 -0700 Received: from e3.ny.us.ibm.com ([32.97.182.143]) by mail.sourceforge.net with esmtps (TLSv1:AES256-SHA:256) (Exim 4.44) id 1FvILY-0003yR-MF for user-mode-linux-devel@lists.sourceforge.net; Tue, 27 Jun 2006 11:31:38 -0700 Received: from d01relay04.pok.ibm.com (d01relay04.pok.ibm.com [9.56.227.236]) by e3.ny.us.ibm.com (8.12.11.20060308/8.12.11) with ESMTP id k5RIVTBx005950 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL) for ; Tue, 27 Jun 2006 14:31:30 -0400 Received: from d01av04.pok.ibm.com (d01av04.pok.ibm.com [9.56.224.64]) by d01relay04.pok.ibm.com (8.13.6/NCO/VER7.0) with ESMTP id k5RIVTow222580 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Tue, 27 Jun 2006 14:31:29 -0400 Received: from d01av04.pok.ibm.com (loopback [127.0.0.1]) by d01av04.pok.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id k5RIVTgj028453 for ; Tue, 27 Jun 2006 14:31:29 -0400 Date: Tue, 27 Jun 2006 11:31:28 -0700 From: Nishanth Aravamudan Message-ID: <20060627183128.GA4488@us.ibm.com> References: <20060626220234.GG4223@us.ibm.com> <200606271656.13712.blaisorblade@yahoo.it> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <200606271656.13712.blaisorblade@yahoo.it> Subject: Re: [uml-devel] [PATCH] Fix UML build on i386 Ubuntu Dapper List-Id: The user-mode Linux development list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: user-mode-linux-devel-bounces@lists.sourceforge.net Errors-To: user-mode-linux-devel-bounces@lists.sourceforge.net To: Blaisorblade Cc: jdike@addtoit.com, user-mode-linux-devel@lists.sourceforge.net On 27.06.2006 [16:56:13 +0200], Blaisorblade wrote: > On Tuesday 27 June 2006 00:02, Nishanth Aravamudan wrote: > > Hi Jeff, > > > > I run an x86_64 kernel with i386 userspace (Ubuntu Dapper) and decided > > to try out UML today. I found that UML wasn't quite aware of biarch > > compilers (which Ubuntu i386 ships). A fix similar to what was done for > > x86_64 should probably be committed (see > > http://marc.theaimsgroup.com/?l=linux-kernel&m=113425940204010&w=2). > > Ok, it seemed strange but I understand the stuff... that's very > interesting as this is the setup I'd wished to have since ages. I'll > switch to it ASAP... Indeed :) > > Without the FLAGS changes, the build will fail at a number of places and > > without the LINK change, the final link will fail. > > > > Signed-off-by: Nishanth Aravamudan > > The first hunk (#undef i386) should be unnecessary given you specify > -m64 (add it to CPPFLAGS too). Also it can/could be problematic for > i386 kernels. However, if UML builds and runs on already supported > configurations, the patch is almost ok - but the original comment must > be added for the #undef: /* in case the preprocessor is a 32bit one */ Ah yes, sorry, I'll add the comment. I found if I did not add the #undef, I got a broken build (the "1:x86_64" issue in the above thread, when it should be "i386:x86_64"): LD .tmp_vmlinux1 /usr/bin/ld:arch/um/kernel/vmlinux.lds:251: syntax error collect2: ld returned 1 exit status KSYM .tmp_kallsyms1.S nm: '.tmp_vmlinux1': No such file No valid symbol. After discovering SUBARCH, I rebuilt my tree as an i386 UML and it successfully completed with this patch. If someone could test a native i386 build as well, just to be sure? Updated patch follows. I run an x86_64 kernel with i386 userspace (Ubuntu Dapper) and decided to try out UML today. I found that UML wasn't quite aware of biarch compilers (which Ubuntu i386 ships). A fix similar to what was done for x86_64 should probably be committed (see http://marc.theaimsgroup.com/?l=linux-kernel&m=113425940204010&w=2). Without the FLAGS changes, the build will fail at a number of places and without the LINK change, the final link will fail. Compile- and boot-tested with SUBARCH=x86_64 (native) and compile-tested and boot-tested with SUBARCH=i386. Signed-off-by: Nishanth Aravamudan diff -urpN 2.6.17/arch/um/kernel/vmlinux.lds.S 2.6.17-dev/arch/um/kernel/vmlinux.lds.S --- 2.6.17/arch/um/kernel/vmlinux.lds.S 2006-06-17 18:49:35.000000000 -0700 +++ 2.6.17-dev/arch/um/kernel/vmlinux.lds.S 2006-06-27 08:03:43.000000000 -0700 @@ -1,4 +1,6 @@ #include +/* in case the preprocessor is a 32bit one */ +#undef i386 #ifdef CONFIG_LD_SCRIPT_STATIC #include "uml.lds.S" #else diff -urpN 2.6.17/arch/um/Makefile-x86_64 2.6.17-dev/arch/um/Makefile-x86_64 --- 2.6.17/arch/um/Makefile-x86_64 2006-06-17 18:49:35.000000000 -0700 +++ 2.6.17-dev/arch/um/Makefile-x86_64 2006-06-26 14:49:01.000000000 -0700 @@ -6,9 +6,11 @@ START := 0x60000000 #We #undef __x86_64__ for kernelspace, not for userspace where #it's needed for headers to work! -CFLAGS += -U__$(SUBARCH)__ -fno-builtin -USER_CFLAGS += -fno-builtin +CFLAGS += -U__$(SUBARCH)__ -fno-builtin -m64 +USER_CFLAGS += -fno-builtin -m64 CHECKFLAGS += -m64 +AFLAGS += -m64 +LDFLAGS += -m elf_x86_64 ELF_ARCH := i386:x86-64 ELF_FORMAT := elf64-x86-64 @@ -16,3 +18,4 @@ ELF_FORMAT := elf64-x86-64 # Not on all 64-bit distros /lib is a symlink to /lib64. PLD is an example. LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib64 +LINK-y += -m64 -- Nishanth Aravamudan IBM Linux Technology Center Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel