mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Andi Kleen <ak@suse.de>
To: Lee Revell <rlrevell@joe-job.com>
Cc: Andi Kleen <ak@suse.de>, linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: i386 -> x86_64 cross compile failure (binutils bug?)
Date: Sun, 11 Dec 2005 01:00:39 +0100	[thread overview]
Message-ID: <20051211000039.GR11190@wotan.suse.de> (raw)
In-Reply-To: <1134243273.18432.104.camel@mindpipe>

> Here are the relevant lines of arch/x86_64/kernel/vmlinux.lds:
> 
>     382 OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64")
>     383 OUTPUT_ARCH(1:x86-64)
>     384 ENTRY(phys_startup_64)
> 
> Any ideas?  Another toolchain quirk?

The original is 

OUTPUT_ARCH(i386:x86-64)

It replaced the i386 with 1, which obviously doesn't work.

Try (full patch again) 

-Andi


Pass -m64 by default

This might help on distributions that use a 32bit biarch compiler.

Also add some more .code32s because at least the Ubuntu biarch
32bit gcc doesn't seem to handle -m64 -m32 as generated
by the Makefile without such assistance.

Signed-off-by: Andi Kleen <ak@suse.de>

Index: linux/arch/x86_64/Makefile
===================================================================
--- linux.orig/arch/x86_64/Makefile
+++ linux/arch/x86_64/Makefile
@@ -31,6 +31,7 @@ cflags-$(CONFIG_MK8) += $(call cc-option
 cflags-$(CONFIG_MPSC) += $(call cc-option,-march=nocona)
 CFLAGS += $(cflags-y)
 
+CFLAGS += -m64
 CFLAGS += -mno-red-zone
 CFLAGS += -mcmodel=kernel
 CFLAGS += -pipe
@@ -52,6 +53,8 @@ CFLAGS += $(call cc-option,-funit-at-a-t
 # prevent gcc from generating any FP code by mistake
 CFLAGS += $(call cc-option,-mno-sse -mno-mmx -mno-sse2 -mno-3dnow,)
 
+AFLAGS += -m64
+
 head-y := arch/x86_64/kernel/head.o arch/x86_64/kernel/head64.o arch/x86_64/kernel/init_task.o
 
 libs-y 					+= arch/x86_64/lib/
Index: linux/arch/x86_64/ia32/vsyscall-sigreturn.S
===================================================================
--- linux.orig/arch/x86_64/ia32/vsyscall-sigreturn.S
+++ linux/arch/x86_64/ia32/vsyscall-sigreturn.S
@@ -7,6 +7,7 @@
  * by doing ".balign 32" must match in both versions of the page.
  */
 
+	.code32
 	.section .text.sigreturn,"ax"
 	.balign 32
 	.globl __kernel_sigreturn
Index: linux/arch/x86_64/ia32/vsyscall-syscall.S
===================================================================
--- linux.orig/arch/x86_64/ia32/vsyscall-syscall.S
+++ linux/arch/x86_64/ia32/vsyscall-syscall.S
@@ -6,6 +6,7 @@
 #include <asm/asm-offsets.h>
 #include <asm/segment.h>
 
+	.code32
 	.text
 	.section .text.vsyscall,"ax"
 	.globl __kernel_vsyscall
Index: linux/arch/x86_64/ia32/vsyscall-sysenter.S
===================================================================
--- linux.orig/arch/x86_64/ia32/vsyscall-sysenter.S
+++ linux/arch/x86_64/ia32/vsyscall-sysenter.S
@@ -5,6 +5,7 @@
 #include <asm/ia32_unistd.h>
 #include <asm/asm-offsets.h>
 
+	.code32
 	.text
 	.section .text.vsyscall,"ax"
 	.globl __kernel_vsyscall
Index: linux/arch/x86_64/kernel/vmlinux.lds.S
===================================================================
--- linux.orig/arch/x86_64/kernel/vmlinux.lds.S
+++ linux/arch/x86_64/kernel/vmlinux.lds.S
@@ -8,6 +8,8 @@
 #include <asm/page.h>
 #include <linux/config.h>
 
+#undef i386	/* in case the preprocessor is a 32bit one */
+
 OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64")
 OUTPUT_ARCH(i386:x86-64)
 ENTRY(phys_startup_64)

  reply	other threads:[~2005-12-11  0:00 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-12-09 18:50 Lee Revell
2005-12-09 19:50 ` Ken Moffat
2005-12-09 19:59   ` Lee Revell
2005-12-09 21:30     ` Ken Moffat
2005-12-09 21:40       ` Lee Revell
2005-12-09 22:19         ` Ken Moffat
2005-12-09 19:58 ` Kyle McMartin
2005-12-09 20:21   ` Lee Revell
2005-12-09 20:41     ` Kyle McMartin
2005-12-09 20:58       ` Lee Revell
2005-12-09 21:25         ` Steven Rostedt
2005-12-09 21:35           ` Lee Revell
2005-12-09 21:10       ` Lee Revell
2005-12-09 21:19         ` Kyle McMartin
2005-12-09 22:37 ` Jeffrey Hundstad
2005-12-10  0:05   ` Lee Revell
2005-12-10  0:23     ` Jeffrey Hundstad
2005-12-10  1:28       ` Lee Revell
2005-12-10  1:50       ` Lee Revell
2005-12-10  8:56         ` Andi Kleen
2005-12-10  5:12           ` Lee Revell
2005-12-10  7:19             ` Andi Kleen
2005-12-10  7:43               ` Lee Revell
2005-12-10 19:34               ` Lee Revell
2005-12-11  0:00                 ` Andi Kleen [this message]
2005-12-11  0:26                   ` Lee Revell
2005-12-16 23:40                   ` Lee Revell
2005-12-23  5:59                   ` Lee Revell
2006-01-11 16:48                   ` Lee Revell
2006-01-11 16:54                     ` Andi Kleen
2005-12-09 22:43 ` Xavier Bestel
2005-12-10  1:31   ` Lee Revell
2005-12-10 20:34     ` Xavier Bestel
2005-12-10 20:48       ` Lee Revell

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=20051211000039.GR11190@wotan.suse.de \
    --to=ak@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rlrevell@joe-job.com \
    /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

all inboxes | Powered by JetHome®