linux-um archives
 help / color / mirror / Atom feed
From: Nishanth Aravamudan <nacc@us.ibm.com>
To: Blaisorblade <blaisorblade@yahoo.it>
Cc: jdike@addtoit.com, user-mode-linux-devel@lists.sourceforge.net
Subject: Re: [uml-devel] [PATCH] Fix UML build on i386 Ubuntu Dapper
Date: Tue, 27 Jun 2006 11:31:28 -0700	[thread overview]
Message-ID: <20060627183128.GA4488@us.ibm.com> (raw)
In-Reply-To: <200606271656.13712.blaisorblade@yahoo.it>

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 <nacc@us.ibm.com>
> 
> 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 <nacc@us.ibm.com>

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 <linux/config.h>
+/* 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 <nacc@us.ibm.com>
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

  reply	other threads:[~2006-06-27 18:31 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-26 22:02 [uml-devel] [PATCH] Fix UML build on i386 Ubuntu Dapper Nishanth Aravamudan
2006-06-27 14:56 ` Blaisorblade
2006-06-27 18:31   ` Nishanth Aravamudan [this message]
2006-06-28  0:47     ` Nishanth Aravamudan
2006-06-28 10:13       ` Blaisorblade
2006-06-29 20:56         ` Nishanth Aravamudan
2006-06-29 21:49           ` Nishanth Aravamudan
2006-07-07  0:52             ` Jeff Dike
2006-06-30  0:29           ` Paolo Giarrusso
2006-06-30  1:05             ` Jeff Dike
2006-06-28  2:11     ` Jeff Dike
2006-06-28  2:54       ` Nishanth Aravamudan
2006-06-28  3:43         ` Jeff Dike
2006-06-28  3:50           ` Nishanth Aravamudan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060627183128.GA4488@us.ibm.com \
    --to=nacc@us.ibm.com \
    --cc=blaisorblade@yahoo.it \
    --cc=jdike@addtoit.com \
    --cc=user-mode-linux-devel@lists.sourceforge.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox