Compilation errors 2.6.9 in process.c

Submitted by wdonne
on October 12, 2005 - 8:19am

Hi,

My system runs kernel 2.6.12-12mk. I would like to try kernel 2.6.9, because the ClearCase and VMWare kernel modules don't work.

For the build of 2.6.9 I have used the .config from the running kernel and did "make oldconfig". The compilation, however, always fails in process.c:

CHK include/linux/version.h
make[1]: `arch/i386/kernel/asm-offsets.s' is up to date.
CHK include/linux/compile.h
CC arch/i386/kernel/process.o
{standard input}: Assembler messages:
{standard input}:790: Error: suffix or operands invalid for `mov'
{standard input}:791: Error: suffix or operands invalid for `mov'
{standard input}:995: Error: suffix or operands invalid for `mov'
{standard input}:996: Error: suffix or operands invalid for `mov'
{standard input}:1068: Error: suffix or operands invalid for `mov'
{standard input}:1069: Error: suffix or operands invalid for `mov'
{standard input}:1162: Error: suffix or operands invalid for `mov'
{standard input}:1163: Error: suffix or operands invalid for `mov'
{standard input}:1172: Error: suffix or operands invalid for `mov'
{standard input}:1184: Error: suffix or operands invalid for `mov'
make[1]: *** [arch/i386/kernel/process.o] Error 1
make: *** [arch/i386/kernel] Error 2

I have also tried it with gcc-2.95.3 from the compatibility package, but it doesn't change anything. With the mm1 and ac15 patches for 2.6.9 it also doesn't compile.

Any thoughts?

Regards,

Werner.

binutils

on
October 12, 2005 - 10:52am

The assembler (the program which spits out these messages) is part of the binutils (usual filename: /usr/bin/as). Maybe you should try not only different versions of gcc, but also of binutils or the other programs listed in <linux-source-dir>/Documentation/Changes and the output of the version checker script <linux-source-dir>/scripts/ver_linux

Also "make[1]: `arch/i386/kernel/asm-offsets.s' is up to date." is suspicious, why is there an asm-offsets.s? This file is made during the build process, have you done "make clean" or "make mrproper" before applying your config/patches?

Thanks for the tip. I took bi

on
October 13, 2005 - 7:10am

Thanks for the tip. I took binutils from kernel.org, but because the rpms aren't relocatable I had to take the source instead. It doesn't build, however. I tried it with versions 2.10.91.0.2, 2.12.90.0.12 and 2.16.91.0.3.

I did "make mrproper". The output was from the second run of make in order to make it shorter.

I ran accross linux-2.6-seg-5.patch, which updates process.c. After applying that the kernel builds.

Thanks for helping.

Werner.

err

Anonymous (not verified)
on
July 20, 2007 - 4:38am

Hi can u please explain it briefly that
how u solve this issue
include/asm/apic.h:47: warning: value computed is not used
{standard input}: Assembler messages:
{standard input}:607: Error: suffix or operands invalid for `mov'
{standard input}:630: Error: suffix or operands invalid for `mov'
{standard input}:1144: Error: suffix or operands invalid for `mov'
{standard input}:1145: Error: suffix or operands invalid for `mov'
{standard input}:1146: Error: suffix or operands invalid for `mov'
{standard input}:1147: Error: suffix or operands invalid for `mov'
make[1]: *** [arch/x86_64/kernel/process.o] Error 1
make: *** [arch/x86_64/kernel] Error 2
Akhilesh

piety

Dre (not verified)
on
October 3, 2007 - 12:08pm

The new i386/x86_64 assemblers no longer accept instructions for moving
between a segment register and a 32bit memory location, i.e.,

movl (%eax),%ds
movl %ds,(%eax)

To generate instructions for moving between a segment register and a
16bit memory location without the 16bit operand size prefix, 0x66,

mov (%eax),%ds
mov %ds,(%eax)

should be used. It will work with both new and old assemblers. The
assembler starting from 2.16.90.0.1 will also support

movw (%eax),%ds
movw %ds,(%eax)

without the 0x66 prefix. Patches for 2.4 and 2.6 Linux kernels are
available at

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

Actually this is very funny :-)

Perfect!!! The patch

user-br (not verified)
on
December 20, 2007 - 11:16am

Perfect!!!

The patch worked.

Thanks

Hi -- Need help

Karthik2k (not verified)
on
January 17, 2008 - 8:08am

After applying the patch, the following error has been received.
Pleas let me know how to proceed....??

In file included from drivers/i2c/algos/i2c-algo-bit.c:31:
include/linux/i2c.h:58: error: array type has incomplete element type
include/linux/i2c.h:205: error: array type has incomplete element type
drivers/i2c/algos/i2c-algo-bit.c: In function âsendbytesâ:
drivers/i2c/algos/i2c-algo-bit.c:337: warning: pointer targets in initialization differ in signedness
drivers/i2c/algos/i2c-algo-bit.c: In function âreadbytesâ:
drivers/i2c/algos/i2c-algo-bit.c:370: warning: pointer targets in initialization differ in signedness
make[3]: *** [drivers/i2c/algos/i2c-algo-bit.o] Error 1
make[2]: *** [drivers/i2c/algos] Error 2
make[1]: *** [drivers/i2c] Error 2
make: *** [drivers] Error 2
[root@fedora linux]#

Thanks for the tip.

--Richard-- (not verified)
on
April 12, 2008 - 12:43am

It worked for me.

Upgrade VMware to a newer

Anonymous (not verified)
on
April 13, 2008 - 4:20am

Upgrade VMware to a newer patch level. About ClearCase, dunno, sounds out of place.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.