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
next prev parent 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