All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.