2.6.0-test8 compile error

Submitted by rusik
on October 27, 2003 - 8:10am

Hello everybody.

After patching 2.6.0-test7 by test8 patch i have error message during compile

----------------------------------------------------------------
  CC      fs/proc/array.o
fs/proc/array.c: In function `proc_pid_stat':
fs/proc/array.c:398: Unrecognizable insn:
(insn/i 1335 1670 1664 (parallel[
            (set (reg:SI 0 eax)
                (asm_operands ("") ("=a") 0[
                        (reg:DI 1 edx)
                    ]
                    [
                        (asm_input:DI ("A"))
                    ]  ("include/linux/times.h") 37))
            (set (reg:SI 1 edx)
                (asm_operands ("") ("=d") 1[
                        (reg:DI 1 edx)
                    ]
                    [
                        (asm_input:DI ("A"))
                    ]  ("include/linux/times.h") 37))
            (clobber (reg:QI 19 dirflag))
            (clobber (reg:QI 18 fpsr))
            (clobber (reg:QI 17 flags))
        ] ) -1 (insn_list 1329 (nil))
    (nil))
fs/proc/array.c:398: confused by earlier errors, bailing out
make[2]: *** [fs/proc/array.o] error 1
make[1]: *** [fs/proc] error 2
make: *** [fs] error 2
---------------------------------------------------------------------

does anybody help, what that mean and how it correct.
Thanks :) sorry for english

Compiler error.

molo
on
October 27, 2003 - 5:06pm

This is a compiler error. What version of GCC are you using?

-molo

gcc-2.96

rusik
on
October 28, 2003 - 1:14am

gcc-2.96

now i downloaded a full 2.6.0-test9 kernel from kernel.org and get the same error during compile.

gcc-2.96

gouns
on
October 28, 2003 - 6:15am

gcc 2.96 is NOT a release, it was the dev branch for gcc3,
just try to switch to gcc 3.2.3 and try again.

More from gcc.gnu.org

gouns
on
October 28, 2003 - 6:18am

What you can see at http://gcc.gnu.org/gcc-2.96.html:



It has come to our attention that some GNU/Linux distributions are currently shipping with ``GCC 2.96''.

We would like to point out that GCC 2.96 is not a formal GCC release nor will there ever be such a release. Rather, GCC 2.96 has been the code- name for our development branch that will eventually become GCC 3.0.

Current snapshots of GCC, and any version labeled 2.96, produce object files that are not compatible with those produced by either GCC 2.95.2 or the forthcoming GCC 3.0. Therefore, programs built with these snapshots will not be compatible with any official GCC release. Actually, C and Fortran code will probably be compatible, but code in other languages, most notably C++ due to incompatibilities in symbol encoding (``mangling''), the standard library and the application binary interface (ABI), is likely to fail in some way. Static linking against C++ libraries may make a binary more portable, at the cost of increasing file size and memory use.

To avoid any confusion, we have bumped the version of our current development branch to GCC 2.97.

Please note that both GCC 2.96 and 2.97 are development versions; we do not recommend using them for production purposes. Binaries built using any version of GCC 2.96 or 2.97 will not be portable to systems based on one of our regular releases.

If you encounter a bug in a compiler labeled 2.96, we suggest you contact whoever supplied the compiler as we can not support 2.96 versions that were not issued by the GCC team.



Now you should understand why ;)

Thank you very much for expla

rusik
on
October 28, 2003 - 7:29am

Thank you very much for explain, now i understand.

Ok, just another question. I have rh72 with glibc-2.2.4 and gcc-2.96.
For upgrading to gcc-3.3.2 do i need upgrade glibc(i guess i need)?
Sorry for dummy questions but i never reinstall manualy glibc and gcc, but i want to use 2.6.0 kernel :)

Thank you in advance

"kgcc" ?

molo
on
October 28, 2003 - 11:32am

I believe RH 7.2 shipped with two versions of gcc, "2.96" which was a redhat-only version (never a release from the GCC project) and gcc 2.95 for compiling kernels (installed as "kgcc").

So, see if there is a 'kgcc' binary. Run 'kgcc --version'. If its 2.95, that should be fine for compiling the kernel.

To compile with "kgcc" instead of "gcc" I *think* you only need to chage the HOSTCC line in the top-level Makefile.

Good luck.

-molo

rh2 comes with gcc-2.96 and g

rusik
on
October 29, 2003 - 1:16am

rh2 comes with gcc-2.96 and gcc-3.0.1(now i update to 3.0.4)
I can't find kgcc in packages.

For compiling kernel with another gcc i change HOSTCC(it is not work) and CC=$(CROSS_COMPILE)gcc3(it is work).

and now i have 2.6.0-test9. :)))) yeah

Thank's to all who help and the other :)

kgcc is not a package?

molo
on
October 29, 2003 - 11:52pm

I don't know if kgcc is a package or not. I just know that on most installs, there is a kgcc binary.

-molo (not a RH user)

How to make it works in gcc 2.96?

Anonymous
on
November 10, 2003 - 12:15pm

How to make it works in gcc 2.96? as i also using RH 7.3 GCC 2.96. pls tell me more details. Thx.

patch

Kibble
on
October 28, 2003 - 12:16pm

There was a patch sent to lkml to fix this, but yeah you should be using a real compiler.

use gcc 2.95.3, not any other

Anonymous
on
November 20, 2003 - 10:46am

use gcc 2.95.3, not any other one

learning curve

Zen
on
March 27, 2004 - 6:22am

I have been receiving the (almost) same error, though mine is fs/proc/array.c:400 confused by earlier blah blah blah bailing out. The only thing I havent upgraded is my GCC, and hopefully this will do the trick. Upgrading to the 2.6.4 using RedHat 7.2 has been a great learning experience. The end result of what Im trying to do, is prepare a box for linux gaming. thats the only thing left from moving completely away from Microsoft. Been trying to do that for 7 years with Linux, now I can see the light at the end of the tunnel. Just wanted to share :)

How to compile the kernel 2.6 using gcc 2.96

Anonymous
on
April 12, 2004 - 11:44am

You have to modify fs/proc/array.c

Find the function called "proc_pid_stat" (next to the line 295)

In this function, remove the line:

int tty_pgrp = -1, tty_nr = 0;

and insert the next two:

int tty_pgrp = -1;
volatile int tty_nr = 0;

As simple as that!

Thanks for Shane Shrybman who previously posted this solution into another site.

Leonardo Pinho

Comment viewing options

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