2008-01-31 07:41:47

by Yinghai Lu

[permalink] [raw]
Subject: PATCH] x86_64: fix comments in vmlinux_64.lds

[PATCH] x86_64: fix comments in vmlinux_64.lds

for bzImage, the vmlinux_64.lds still have s32 bit code, and startup_32 should
bt 0. fix the comment

Signed-off-by: Yinghai Lu <[email protected]>

diff --git a/arch/x86/boot/compressed/vmlinux_64.lds b/arch/x86/boot/compressed/vmlinux_64.lds
index f6e5b44..7e5c720 100644
--- a/arch/x86/boot/compressed/vmlinux_64.lds
+++ b/arch/x86/boot/compressed/vmlinux_64.lds
@@ -3,7 +3,7 @@ OUTPUT_ARCH(i386:x86-64)
ENTRY(startup_64)
SECTIONS
{
- /* Be careful parts of head_64.S assume startup_64 is at
+ /* Be careful parts of head_64.S assume startup_32 is at
* address 0.
*/
. = 0;


2008-01-31 12:35:29

by Ingo Molnar

[permalink] [raw]
Subject: Re: PATCH] x86_64: fix comments in vmlinux_64.lds


* Yinghai Lu <[email protected]> wrote:

> ENTRY(startup_64)
> SECTIONS
> {
> - /* Be careful parts of head_64.S assume startup_64 is at
> + /* Be careful parts of head_64.S assume startup_32 is at
> * address 0.
> */
> . = 0;

but this linker script rule is about startup_64, not about startup_32.

startup_32 does exist on 64-bit too (and is 32-bit code), but it's
linked to a different address that is not 0:

ffffffff806c23c0 r startup_32

startup_64 is at offset 0:

ffffffff80200000 T startup_64

So your patch looks wrong to me.

Ingo

2008-01-31 18:54:46

by Yinghai Lu

[permalink] [raw]
Subject: Re: PATCH] x86_64: fix comments in vmlinux_64.lds

On Thursday 31 January 2008 04:35:03 am Ingo Molnar wrote:
>
> * Yinghai Lu <[email protected]> wrote:
>
> > ENTRY(startup_64)
> > SECTIONS
> > {
> > - /* Be careful parts of head_64.S assume startup_64 is at
> > + /* Be careful parts of head_64.S assume startup_32 is at
> > * address 0.
> > */
> > . = 0;
>
> but this linker script rule is about startup_64, not about startup_32.
>
> startup_32 does exist on 64-bit too (and is 32-bit code), but it's
> linked to a different address that is not 0:
>
> ffffffff806c23c0 r startup_32
>
> startup_64 is at offset 0:
>
> ffffffff80200000 T startup_64
>
> So your patch looks wrong to me.

there are several startup_32 in 64 bit
1. one is for bzImage, it is arch/x86/boot/compressed/head_64.S, and it said startup_64 will at 0x200. that what i mean
2. one is vmlinux in linux-2.6/ , it is in arch/x86/kernel/trampoline_64.S it is for AP trampoline and wake up. that is what you mean

actually there was another one in arch/x86_64/kernel/head_64.S, and it was removed when Eric made linux-2.6/vmlinux to be 64bit elf.

So that patch is needed.

YH