|
Member
Registered: Jul 2004
Distribution: Custom Linux 3.1/Busybox. Fedora 16
Posts: 88
Rep:
|
Cross compiling
I'm trying to recompile a 2.4.31 kernel to run on a 386, on a development machine that is a 686.
In the days when my development machine was running a 2.2.16 kernel (with the associated build tools) I could do this no problem, but now my development machine has been upgraded to run Fedora Core 5, I'm having compiler problems. e.g.
gcc -D__KERNEL__ -I/home/mike/linux-2.4.31/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i486 -fno-unit-at-a-time -DKBUILD_BASENAME=main -c -o init/main.o init/main.c
In file included from /home/mike/linux-2.4.31/include/linux/kernel.h:15,
from /home/mike/linux-2.4.31/include/linux/wait.h:13,
from /home/mike/linux-2.4.31/include/linux/fs.h:12,
from /home/mike/linux-2.4.31/include/linux/capability.h:17,
from /home/mike/linux-2.4.31/include/linux/binfmts.h:5,
from /home/mike/linux-2.4.31/include/linux/sched.h:9,
from /home/mike/linux-2.4.31/include/linux/mm.h:4,
from /home/mike/linux-2.4.31/include/linux/slab.h:14,
from /home/mike/linux-2.4.31/include/linux/proc_fs.h:5,
from init/main.c:15:
/home/mike/linux-2.4.31/include/asm/byteorder.h:14: warning: type qualifiers ignored on function return type
/home/mike/linux-2.4.31/include/asm/byteorder.h:30: warning: type qualifiers ignored on function return type
In file included from /home/mike/linux-2.4.31/include/linux/byteorder/little_endian.h:11,
from /home/mike/linux-2.4.31/include/asm/byteorder.h:65,
from /home/mike/linux-2.4.31/include/linux/kernel.h:15,
from /home/mike/linux-2.4.31/include/linux/wait.h:13,
from /home/mike/linux-2.4.31/include/linux/fs.h:12,
from /home/mike/linux-2.4.31/include/linux/capability.h:17,
from /home/mike/linux-2.4.31/include/linux/binfmts.h:5,
from /home/mike/linux-2.4.31/include/linux/sched.h:9,
from /home/mike/linux-2.4.31/include/linux/mm.h:4,
from /home/mike/linux-2.4.31/include/linux/slab.h:14,
from /home/mike/linux-2.4.31/include/linux/proc_fs.h:5,
from init/main.c:15:
/home/mike/linux-2.4.31/include/linux/byteorder/swab.h:160: warning: type qualifiers ignored on function return type
/home/mike/linux-2.4.31/include/linux/byteorder/swab.h:173: warning: type qualifiers ignored on function return type
/home/mike/linux-2.4.31/include/linux/byteorder/swab.h:186: warning: type qualifiers ignored on function return type
/home/mike/linux-2.4.31/include/linux/byteorder/swab.h:200: warning: type qualifiers ignored on function return type
In file included from /home/mike/linux-2.4.31/include/linux/prefetch.h:13,
from /home/mike/linux-2.4.31/include/linux/list.h:6,
from /home/mike/linux-2.4.31/include/linux/wait.h:14,
from /home/mike/linux-2.4.31/include/linux/fs.h:12,
from /home/mike/linux-2.4.31/include/linux/capability.h:17,
from /home/mike/linux-2.4.31/include/linux/binfmts.h:5,
from /home/mike/linux-2.4.31/include/linux/sched.h:9,
from /home/mike/linux-2.4.31/include/linux/mm.h:4,
from /home/mike/linux-2.4.31/include/linux/slab.h:14,
from /home/mike/linux-2.4.31/include/linux/proc_fs.h:5,
from init/main.c:15:
/home/mike/linux-2.4.31/include/asm/processor.h:75: error: array type has incomplete element type
In file included from /home/mike/linux-2.4.31/include/linux/fs.h:322,
from /home/mike/linux-2.4.31/include/linux/capability.h:17,
from /home/mike/linux-2.4.31/include/linux/binfmts.h:5,
from /home/mike/linux-2.4.31/include/linux/sched.h:9,
from /home/mike/linux-2.4.31/include/linux/mm.h:4,
from /home/mike/linux-2.4.31/include/linux/slab.h:14,
from /home/mike/linux-2.4.31/include/linux/proc_fs.h:5,
from init/main.c:15:
/home/mike/linux-2.4.31/include/linux/ncp_fs_i.h:26: warning: ‘packed’ attribute ignored for field of type ‘__u8’
/home/mike/linux-2.4.31/include/linux/ncp_fs_i.h:27: warning: ‘packed’ attribute ignored for field of type ‘__u8[5u]’
In file included from /home/mike/linux-2.4.31/include/linux/ncp_mount.h:12,
from /home/mike/linux-2.4.31/include/linux/ncp_fs_sb.h:12,
from /home/mike/linux-2.4.31/include/linux/fs.h:733,
from /home/mike/linux-2.4.31/include/linux/capability.h:17,
from /home/mike/linux-2.4.31/include/linux/binfmts.h:5,
from /home/mike/linux-2.4.31/include/linux/sched.h:9,
from /home/mike/linux-2.4.31/include/linux/mm.h:4,
from /home/mike/linux-2.4.31/include/linux/slab.h:14,
from /home/mike/linux-2.4.31/include/linux/proc_fs.h:5,
from init/main.c:15:
/home/mike/linux-2.4.31/include/linux/ncp.h:24: warning: ‘packed’ attribute ignored for field of type ‘__u8’
/home/mike/linux-2.4.31/include/linux/ncp.h:25: warning: ‘packed’ attribute ignored for field of type ‘__u8’
/home/mike/linux-2.4.31/include/linux/ncp.h:26: warning: ‘packed’ attribute ignored for field of type ‘__u8’
/home/mike/linux-2.4.31/include/linux/ncp.h:27: warning: ‘packed’ attribute ignored for field of type ‘__u8’
/home/mike/linux-2.4.31/include/linux/ncp.h:28: warning: ‘packed’ attribute ignored for field of type ‘__u8’
/home/mike/linux-2.4.31/include/linux/ncp.h:29: warning: ‘packed’ attribute ignored for field of type ‘__u8[]’
/home/mike/linux-2.4.31/include/linux/ncp.h:37: warning: ‘packed’ attribute ignored for field of type ‘__u8’
/home/mike/linux-2.4.31/include/linux/ncp.h:38: warning: ‘packed’ attribute ignored for field of type ‘__u8’
/home/mike/linux-2.4.31/include/linux/ncp.h:39: warning: ‘packed’ attribute ignored for field of type ‘__u8’
/home/mike/linux-2.4.31/include/linux/ncp.h:40: warning: ‘packed’ attribute ignored for field of type ‘__u8’
/home/mike/linux-2.4.31/include/linux/ncp.h:41: warning: ‘packed’ attribute ignored for field of type ‘__u8’
/home/mike/linux-2.4.31/include/linux/ncp.h:42: warning: ‘packed’ attribute ignored for field of type ‘__u8’
/home/mike/linux-2.4.31/include/linux/ncp.h:43: warning: ‘packed’ attribute ignored for field of type ‘__u8[]’
/home/mike/linux-2.4.31/include/linux/ncp.h:137: warning: ‘packed’ attribute ignored for field of type ‘__u8’
/home/mike/linux-2.4.31/include/linux/ncp.h:138: warning: ‘packed’ attribute ignored for field of type ‘__u8[255u]’
/home/mike/linux-2.4.31/include/linux/ncp.h:174: warning: ‘packed’ attribute ignored for field of type ‘__u8’
make: *** [init/main.o] Error 1
[mike@glynys linux-2.4.31]$
I assumed that this was an incompatibility with gcc, so I tried building a gcc-3.0 which was what I used to have under 2.2.16, but I can't compile gcc either. i.e.
gcc -c -DIN_GCC -g -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -DHAVE_CONFIG_H -I. -Icp -I. -I./cp -I./config -I./../include cp/decl.c -o cp/decl.o
cp/decl.c: In function ‘push_binding_level’:
cp/decl.c:528: error: invalid lvalue in assignment
cp/decl.c: In function ‘pop_binding_level’:
cp/decl.c:584: error: invalid lvalue in assignment
cp/decl.c: In function ‘suspend_binding_level’:
cp/decl.c:599: error: invalid lvalue in assignment
cp/decl.c:621: error: invalid lvalue in assignment
cp/decl.c: In function ‘resume_binding_level’:
cp/decl.c:634: error: invalid lvalue in assignment
cp/decl.c: In function ‘pushdecl_with_scope’:
cp/decl.c:4294: error: invalid lvalue in assignment
cp/decl.c:4296: error: invalid lvalue in assignment
cp/decl.c: In function ‘init_decl_processing’:
cp/decl.c:6405: error: invalid lvalue in assignment
cp/decl.c: In function ‘grokdeclarator’:
cp/decl.c:9932: error: invalid lvalue in assignment
cp/decl.c:9935: error: invalid lvalue in assignment
cp/decl.c: In function ‘start_function’:
cp/decl.c:13472: error: invalid lvalue in assignment
make[1]: *** [cp/decl.o] Error 1
make[1]: Leaving directory `/home/mike/gcc-3.0/gcc'
make: *** [all-gcc] Error 2
[mike@glynys gcc-3.0]$
My current gcc is the standard for Fedora Core 5 i.e.
[mike@glynys build_i386]$ gcc -v
Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=i386-redhat-linux
Thread model: posix
gcc version 4.1.0 20060304 (Red Hat 4.1.0-3)
[mike@glynys build_i386]$
Why am I having these problems ? Is it an incompatibility with gcc and the kernel source code ? What can I do to sort this out ?
I'm trying to recompile a 2.4.31 kernel to run on a 386, on a development machine that is a 686.
Thanks for taking the time to read this .
|