2005-05-21 21:27:55

by K. Ernel

[permalink] [raw]
Subject: [PATCH] binutils-2.16 & kernel-2.6.11.10


hi,

the "not being able to compile kernel with latest binutils" problem is also
present in 2.6.11.10, at least in:

arch/i386/kernel/process.c
arch/i386/kernel/vm86.c
include/asm-i386/system.h

substituting movl with movw for segreg moves will make it work again,
but I don't know if these are the only files which are probably affected, too.

(by the way - I once found an webpage which allowed viewing LKML in
"realtime", but I've lost the adress - would anyone be so kind and tell
me where I can find this?)


please find the patches below:

--- linux-2.6.11.10.orig/arch/i386/kernel/process.c 2005-05-16 19:50:30.000000000 +0200
+++ linux-2.6.11.10/arch/i386/kernel/process.c 2005-05-21 23:20:44.000000000 +0200
@@ -5,6 +5,9 @@
*
* Pentium III FXSR, SSE support
* Gareth Hughes <[email protected]>, May 2000
+ *
+ * Sat May 21 22:11:22 MEST 2005 herp - Herbert Rosmanith
+ * minor fixes for as from binutils-2.16
*/

/*
@@ -596,8 +599,8 @@
* Save away %fs and %gs. No need to save %es and %ds, as
* those are always kernel segments while inside the kernel.
*/
- asm volatile("movl %%fs,%0":"=m" (*(int *)&prev->fs));
- asm volatile("movl %%gs,%0":"=m" (*(int *)&prev->gs));
+ asm volatile("movw %%fs,%0":"=m" (*(int *)&prev->fs));
+ asm volatile("movw %%gs,%0":"=m" (*(int *)&prev->gs));

/*
* Restore %fs and %gs if needed.
--- linux-2.6.11.10.orig/arch/i386/kernel/vm86.c 2005-05-16 19:50:30.000000000 +0200
+++ linux-2.6.11.10/arch/i386/kernel/vm86.c 2005-05-21 23:10:13.000000000 +0200
@@ -3,6 +3,9 @@
*
* Copyright (C) 1994 Linus Torvalds
*
+ * 21 may 2005 - make it compile with binutils-2.16.90
+ * Herbert Rosmanith
+ *
* 29 dec 2001 - Fixed oopses caused by unchecked access to the vm86
* stack - Manfred Spraul <[email protected]>
*
@@ -309,8 +312,8 @@
*/
info->regs32->eax = 0;
tsk->thread.saved_esp0 = tsk->thread.esp0;
- asm volatile("movl %%fs,%0":"=m" (tsk->thread.saved_fs));
- asm volatile("movl %%gs,%0":"=m" (tsk->thread.saved_gs));
+ asm volatile("movw %%fs,%0":"=m" (tsk->thread.saved_fs));
+ asm volatile("movw %%gs,%0":"=m" (tsk->thread.saved_gs));

tss = &per_cpu(init_tss, get_cpu());
tsk->thread.esp0 = (unsigned long) &info->VM86_TSS_ESP0;
--- linux-2.6.11.10.orig/include/asm-i386/system.h 2005-05-16 19:51:12.000000000 +0200
+++ linux-2.6.11.10/include/asm/system.h 2005-05-21 22:48:48.000000000 +0200
@@ -81,7 +81,7 @@
#define loadsegment(seg,value) \
asm volatile("\n" \
"1:\t" \
- "movl %0,%%" #seg "\n" \
+ "movw %0,%%" #seg "\n" \
"2:\n" \
".section .fixup,\"ax\"\n" \
"3:\t" \
@@ -99,7 +99,7 @@
* Save a segment register away
*/
#define savesegment(seg, value) \
- asm volatile("movl %%" #seg ",%0":"=m" (*(int *)&(value)))
+ asm volatile("movw %%" #seg ",%0":"=m" (*(int *)&(value)))

/*
* Clear and set 'TS' bit respectively


2005-05-21 21:31:11

by K. Ernel

[permalink] [raw]
Subject: Re: [PATCH] binutils-2.16 & kernel-2.6.11.10

> (by the way - I once found an webpage which allowed viewing LKML in
> "realtime", but I've lost the adress - would anyone be so kind and tell
> me where I can find this?)

too late, got it: http://marc.theaimsgroup.com/?l=linux-kernel

thanks anyway for trying ;-)

best regards,
h.rosmanith

2005-05-21 22:38:41

by Jan Dittmer

[permalink] [raw]
Subject: Re: [PATCH] binutils-2.16 & kernel-2.6.11.10

Herbert Rosmanith wrote:
> hi,
>
> the "not being able to compile kernel with latest binutils" problem is also
> present in 2.6.11.10, at least in:
>
> arch/i386/kernel/process.c
> arch/i386/kernel/vm86.c
> include/asm-i386/system.h
>
> substituting movl with movw for segreg moves will make it work again,
> but I don't know if these are the only files which are probably affected, too.

http://www.kernel.org/pub/linux/devel/binutils/linux-2.6-seg-5.patch
http://www.kernel.org/pub/linux/devel/binutils/linux-2.4-seg-4.patch

should probably fix that.

--
Jan

2005-05-21 22:59:58

by K. Ernel

[permalink] [raw]
Subject: Re: [PATCH] binutils-2.16 & kernel-2.6.11.10


> http://www.kernel.org/pub/linux/devel/binutils/linux-2.6-seg-5.patch
> http://www.kernel.org/pub/linux/devel/binutils/linux-2.4-seg-4.patch
>
> should probably fix that.

interesting, that's the same patch (s/movl/movw/), but it is date
from *march* 2005.

why is this not in the kernel source yet? It is definitely not
okay to "movl" a segreg.

regards,
h.rosmanith

2005-05-22 07:13:54

by K. Ernel

[permalink] [raw]
Subject: Re: [PATCH] binutils-2.16 & kernel-2.6.11.10

> Herbert Rosmanith <[email protected]> wrote:
>
> > (by the way - I once found an webpage which allowed viewing LKML in
> > "realtime", but I've lost the adress - would anyone be so kind and tell
> > me where I can find this?)
>
> http://groups-beta.google.com/group/linux.kernel

*lol*

did you try that?
the first entry that is returns tells me about:

"Real teen p0rn0 Portal with downloadable Full-Length Movies"


2005-05-22 07:21:56

by K. Ernel

[permalink] [raw]
Subject: Re: [PATCH] binutils-2.16 & kernel-2.6.11.10

Bodo Eggert:
> http://groups-beta.google.com/group/linux.kernel

oops .... I acidentially hit the "group-reply" button.
sorry about that.

2005-05-22 10:52:16

by Andrew Walrond

[permalink] [raw]
Subject: Re: [PATCH] binutils-2.16 & kernel-2.6.11.10

On Saturday 21 May 2005 23:59, Herbert Rosmanith wrote:
> > http://www.kernel.org/pub/linux/devel/binutils/linux-2.6-seg-5.patch
> > http://www.kernel.org/pub/linux/devel/binutils/linux-2.4-seg-4.patch
> >
> > should probably fix that.
>
> interesting, that's the same patch (s/movl/movw/), but it is date
> from *march* 2005.
>
> why is this not in the kernel source yet? It is definitely not
> okay to "movl" a segreg.
>

I'd also like to know the status of these patches; I've avoided the last
couple binutils upgrades because of HJL's attached kernel patches and implied
Linux build problems.
#

Andrew Walrond

2005-05-22 15:22:20

by Alistair John Strachan

[permalink] [raw]
Subject: Re: [PATCH] binutils-2.16 & kernel-2.6.11.10

On Sunday 22 May 2005 11:51, you wrote:
> On Saturday 21 May 2005 23:59, Herbert Rosmanith wrote:
> > > http://www.kernel.org/pub/linux/devel/binutils/linux-2.6-seg-5.patch
> > > http://www.kernel.org/pub/linux/devel/binutils/linux-2.4-seg-4.patch
> > >
> > > should probably fix that.
> >
> > interesting, that's the same patch (s/movl/movw/), but it is date
> > from *march* 2005.
> >
> > why is this not in the kernel source yet? It is definitely not
> > okay to "movl" a segreg.
>
> I'd also like to know the status of these patches; I've avoided the last
> couple binutils upgrades because of HJL's attached kernel patches and
> implied Linux build problems.

For what it's worth, I recently built an adapted LFS SVN for x86-64, using
HJL's binutils 2.16.90.0.2. A few weeks later, and still no problems.
Literally the only package I had difficulty building was Linux itself, and
the attached patches seem to work fine.

Let's hope they get into mainline shortly.

--
Cheers,
Alistair.

personal: alistair()devzero!co!uk
university: s0348365()sms!ed!ac!uk
student: CS/CSim Undergraduate
contact: 1F2 55 South Clerk Street,
Edinburgh. EH8 9PP.