|
Größe: 33589
Kommentar: URLs: Kernelbacken
|
Größe: 49195
Kommentar: Update
|
| Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
| Zeile 1: | Zeile 1: |
| === Update === Using the old gcc, compiling the kernel worked, but then the image was much too big. Therefore, I rearranged the .config file using make menuconfig, and I set many drivers to "module". Now, new errors appear, which I document on ErrorCompilingKernel20031130 ... --- {{{New Knowledge: On my debian system, there is also the gcc-2.95 compiler! Now, I just changed the link from gcc to this older version. However, the finally mentioned error does not vanish. On the other hand, there shouldn't be any need of recompiling the kernel to match the gcc version with the kernel compiler's version...}}} |
|
| Zeile 2: | Zeile 12: |
| (2003 - 11 - 25) I just downloaded the kernel source of version 2.4.22. My gcc's verion is 3.3.2 (Debian). The config file for the |
(2003 - 11 - 28) I just downloaded the kernel source of version 2.4.22. My gcc's verion is 3.3.2 (Debian, x86). The config file for the |
| Zeile 6: | Zeile 16: |
| {{{make dep | {{{make oldconfig make dep |
| Zeile 8: | Zeile 19: |
| }}} I started 'make vmlinuz' and got a first error in usb.h: | }}} I started 'make vmlinux' and got a first error in usb.h: |
| Zeile 138: | Zeile 149: |
| make: *** [_dir_fs] Error 2}}} Now, I learned that there should be a line {#define CONFIG_NLS_DEFAULT "iso8859-1"} in file {include/linux/autoconf.h}! Having added this definition, the error above was gone. Next one is this: {{{make -C lockd make[2]: Entering directory `/data/src/linux-2.4.22/fs/lockd' make all_targets make[3]: Entering directory `/data/src/linux-2.4.22/fs/lockd' gcc -D__KERNEL__ -I/data/src/linux-2.4.22/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i686 -nostdinc -iwithprefix include -DKBUILD_BASENAME=svc4proc -c -o svc4proc.o svc4proc.c svc4proc.c:564: error: `nlm4svc_decode_void' undeclared here (not in a function) svc4proc.c:564: error: initializer element is not constant svc4proc.c:564: error: (near initialization for `nlmsvc_procedures4[0].pc_decode') svc4proc.c:564: error: `nlm4svc_encode_void' undeclared here (not in a function) svc4proc.c:564: error: initializer element is not constant svc4proc.c:564: error: (near initialization for `nlmsvc_procedures4[0].pc_encode') svc4proc.c:564: error: initializer element is not constant svc4proc.c:564: error: (near initialization for `nlmsvc_procedures4[0]') svc4proc.c:565: error: `nlm4svc_decode_testargs' undeclared here (not in a function) svc4proc.c:565: error: initializer element is not constant svc4proc.c:565: error: (near initialization for `nlmsvc_procedures4[1].pc_decode') svc4proc.c:565: error: `nlm4svc_encode_testres' undeclared here (not in a function) svc4proc.c:565: error: initializer element is not constant svc4proc.c:565: error: (near initialization for `nlmsvc_procedures4[1].pc_encode') svc4proc.c:565: error: initializer element is not constant svc4proc.c:565: error: (near initialization for `nlmsvc_procedures4[1]') svc4proc.c:566: error: `nlm4svc_decode_lockargs' undeclared here (not in a function) svc4proc.c:566: error: initializer element is not constant svc4proc.c:566: error: (near initialization for `nlmsvc_procedures4[2].pc_decode') svc4proc.c:566: error: `nlm4svc_encode_res' undeclared here (not in a function) svc4proc.c:566: error: initializer element is not constant svc4proc.c:566: error: (near initialization for `nlmsvc_procedures4[2].pc_encode') svc4proc.c:566: error: initializer element is not constant svc4proc.c:566: error: (near initialization for `nlmsvc_procedures4[2]') svc4proc.c:567: error: `nlm4svc_decode_cancargs' undeclared here (not in a function) svc4proc.c:567: error: initializer element is not constant svc4proc.c:567: error: (near initialization for `nlmsvc_procedures4[3].pc_decode') svc4proc.c:567: error: `nlm4svc_encode_res' undeclared here (not in a function) svc4proc.c:567: error: initializer element is not constant svc4proc.c:567: error: (near initialization for `nlmsvc_procedures4[3].pc_encode') svc4proc.c:567: error: initializer element is not constant svc4proc.c:567: error: (near initialization for `nlmsvc_procedures4[3]') svc4proc.c:568: error: `nlm4svc_decode_unlockargs' undeclared here (not in a function) svc4proc.c:568: error: initializer element is not constant svc4proc.c:568: error: (near initialization for `nlmsvc_procedures4[4].pc_decode') svc4proc.c:568: error: `nlm4svc_encode_res' undeclared here (not in a function) svc4proc.c:568: error: initializer element is not constant svc4proc.c:568: error: (near initialization for `nlmsvc_procedures4[4].pc_encode') svc4proc.c:568: error: initializer element is not constant svc4proc.c:568: error: (near initialization for `nlmsvc_procedures4[4]') svc4proc.c:569: error: `nlm4svc_decode_testargs' undeclared here (not in a function) svc4proc.c:569: error: initializer element is not constant svc4proc.c:569: error: (near initialization for `nlmsvc_procedures4[5].pc_decode') svc4proc.c:569: error: `nlm4svc_encode_res' undeclared here (not in a function) svc4proc.c:569: error: initializer element is not constant svc4proc.c:569: error: (near initialization for `nlmsvc_procedures4[5].pc_encode') svc4proc.c:569: error: initializer element is not constant svc4proc.c:569: error: (near initialization for `nlmsvc_procedures4[5]') svc4proc.c:570: error: `nlm4svc_decode_testargs' undeclared here (not in a function) svc4proc.c:570: error: initializer element is not constant svc4proc.c:570: error: (near initialization for `nlmsvc_procedures4[6].pc_decode') svc4proc.c:570: error: `nlm4svc_encode_void' undeclared here (not in a function) svc4proc.c:570: error: initializer element is not constant svc4proc.c:570: error: (near initialization for `nlmsvc_procedures4[6].pc_encode') svc4proc.c:570: error: initializer element is not constant svc4proc.c:570: error: (near initialization for `nlmsvc_procedures4[6]') svc4proc.c:571: error: `nlm4svc_decode_lockargs' undeclared here (not in a function) svc4proc.c:571: error: initializer element is not constant svc4proc.c:571: error: (near initialization for `nlmsvc_procedures4[7].pc_decode') svc4proc.c:571: error: `nlm4svc_encode_void' undeclared here (not in a function) svc4proc.c:571: error: initializer element is not constant svc4proc.c:571: error: (near initialization for `nlmsvc_procedures4[7].pc_encode') svc4proc.c:571: error: initializer element is not constant svc4proc.c:571: error: (near initialization for `nlmsvc_procedures4[7]') svc4proc.c:572: error: `nlm4svc_decode_cancargs' undeclared here (not in a function) svc4proc.c:572: error: initializer element is not constant svc4proc.c:572: error: (near initialization for `nlmsvc_procedures4[8].pc_decode') svc4proc.c:572: error: `nlm4svc_encode_void' undeclared here (not in a function) svc4proc.c:572: error: initializer element is not constant svc4proc.c:572: error: (near initialization for `nlmsvc_procedures4[8].pc_encode') svc4proc.c:572: error: initializer element is not constant svc4proc.c:572: error: (near initialization for `nlmsvc_procedures4[8]') svc4proc.c:573: error: `nlm4svc_decode_unlockargs' undeclared here (not in a function) svc4proc.c:573: error: initializer element is not constant svc4proc.c:573: error: (near initialization for `nlmsvc_procedures4[9].pc_decode') svc4proc.c:573: error: `nlm4svc_encode_void' undeclared here (not in a function) svc4proc.c:573: error: initializer element is not constant svc4proc.c:573: error: (near initialization for `nlmsvc_procedures4[9].pc_encode') svc4proc.c:573: error: initializer element is not constant svc4proc.c:573: error: (near initialization for `nlmsvc_procedures4[9]') svc4proc.c:574: error: `nlm4svc_decode_testargs' undeclared here (not in a function) svc4proc.c:574: error: initializer element is not constant svc4proc.c:574: error: (near initialization for `nlmsvc_procedures4[10].pc_decode') svc4proc.c:574: error: `nlm4svc_encode_void' undeclared here (not in a function) svc4proc.c:574: error: initializer element is not constant svc4proc.c:574: error: (near initialization for `nlmsvc_procedures4[10].pc_encode') svc4proc.c:574: error: initializer element is not constant svc4proc.c:574: error: (near initialization for `nlmsvc_procedures4[10]') svc4proc.c:575: error: `nlm4svc_decode_void' undeclared here (not in a function) svc4proc.c:575: error: initializer element is not constant svc4proc.c:575: error: (near initialization for `nlmsvc_procedures4[11].pc_decode') svc4proc.c:575: error: `nlm4svc_encode_void' undeclared here (not in a function) svc4proc.c:575: error: initializer element is not constant svc4proc.c:575: error: (near initialization for `nlmsvc_procedures4[11].pc_encode') svc4proc.c:575: error: initializer element is not constant svc4proc.c:575: error: (near initialization for `nlmsvc_procedures4[11]') svc4proc.c:576: error: `nlm4svc_decode_void' undeclared here (not in a function) svc4proc.c:576: error: initializer element is not constant svc4proc.c:576: error: (near initialization for `nlmsvc_procedures4[12].pc_decode') svc4proc.c:576: error: `nlm4svc_encode_void' undeclared here (not in a function) svc4proc.c:576: error: initializer element is not constant svc4proc.c:576: error: (near initialization for `nlmsvc_procedures4[12].pc_encode') svc4proc.c:576: error: initializer element is not constant svc4proc.c:576: error: (near initialization for `nlmsvc_procedures4[12]') svc4proc.c:577: error: `nlm4svc_decode_void' undeclared here (not in a function) svc4proc.c:577: error: initializer element is not constant svc4proc.c:577: error: (near initialization for `nlmsvc_procedures4[13].pc_decode') svc4proc.c:577: error: `nlm4svc_encode_void' undeclared here (not in a function) svc4proc.c:577: error: initializer element is not constant svc4proc.c:577: error: (near initialization for `nlmsvc_procedures4[13].pc_encode') svc4proc.c:577: error: initializer element is not constant svc4proc.c:577: error: (near initialization for `nlmsvc_procedures4[13]') svc4proc.c:578: error: `nlm4svc_decode_void' undeclared here (not in a function) svc4proc.c:578: error: initializer element is not constant svc4proc.c:578: error: (near initialization for `nlmsvc_procedures4[14].pc_decode') svc4proc.c:578: error: `nlm4svc_encode_void' undeclared here (not in a function) svc4proc.c:578: error: initializer element is not constant svc4proc.c:578: error: (near initialization for `nlmsvc_procedures4[14].pc_encode') svc4proc.c:578: error: initializer element is not constant svc4proc.c:578: error: (near initialization for `nlmsvc_procedures4[14]') svc4proc.c:579: error: `nlm4svc_decode_res' undeclared here (not in a function) svc4proc.c:579: error: initializer element is not constant svc4proc.c:579: error: (near initialization for `nlmsvc_procedures4[15].pc_decode') svc4proc.c:579: error: `nlm4svc_encode_void' undeclared here (not in a function) svc4proc.c:579: error: initializer element is not constant svc4proc.c:579: error: (near initialization for `nlmsvc_procedures4[15].pc_encode') svc4proc.c:579: error: initializer element is not constant svc4proc.c:579: error: (near initialization for `nlmsvc_procedures4[15]') svc4proc.c:581: error: `nlm4svc_decode_reboot' undeclared here (not in a function) svc4proc.c:581: error: initializer element is not constant svc4proc.c:581: error: (near initialization for `nlmsvc_procedures4[16].pc_decode') svc4proc.c:581: error: `nlm4svc_encode_void' undeclared here (not in a function) svc4proc.c:581: error: initializer element is not constant svc4proc.c:581: error: (near initialization for `nlmsvc_procedures4[16].pc_encode') svc4proc.c:581: error: initializer element is not constant svc4proc.c:581: error: (near initialization for `nlmsvc_procedures4[16]') svc4proc.c:582: error: `nlm4svc_decode_void' undeclared here (not in a function) svc4proc.c:582: error: initializer element is not constant svc4proc.c:582: error: (near initialization for `nlmsvc_procedures4[17].pc_decode') svc4proc.c:582: error: `nlm4svc_encode_void' undeclared here (not in a function) svc4proc.c:582: error: initializer element is not constant svc4proc.c:582: error: (near initialization for `nlmsvc_procedures4[17].pc_encode') svc4proc.c:582: error: initializer element is not constant svc4proc.c:582: error: (near initialization for `nlmsvc_procedures4[17]') svc4proc.c:583: error: `nlm4svc_decode_void' undeclared here (not in a function) svc4proc.c:583: error: initializer element is not constant svc4proc.c:583: error: (near initialization for `nlmsvc_procedures4[18].pc_decode') svc4proc.c:583: error: `nlm4svc_encode_void' undeclared here (not in a function) svc4proc.c:583: error: initializer element is not constant svc4proc.c:583: error: (near initialization for `nlmsvc_procedures4[18].pc_encode') svc4proc.c:583: error: initializer element is not constant svc4proc.c:583: error: (near initialization for `nlmsvc_procedures4[18]') svc4proc.c:584: error: `nlm4svc_decode_void' undeclared here (not in a function) svc4proc.c:584: error: initializer element is not constant svc4proc.c:584: error: (near initialization for `nlmsvc_procedures4[19].pc_decode') svc4proc.c:584: error: `nlm4svc_encode_void' undeclared here (not in a function) svc4proc.c:584: error: initializer element is not constant svc4proc.c:584: error: (near initialization for `nlmsvc_procedures4[19].pc_encode') svc4proc.c:584: error: initializer element is not constant svc4proc.c:584: error: (near initialization for `nlmsvc_procedures4[19]') svc4proc.c:585: error: `nlm4svc_decode_shareargs' undeclared here (not in a function) svc4proc.c:585: error: initializer element is not constant svc4proc.c:585: error: (near initialization for `nlmsvc_procedures4[20].pc_decode') svc4proc.c:585: error: `nlm4svc_encode_shareres' undeclared here (not in a function) svc4proc.c:585: error: initializer element is not constant svc4proc.c:585: error: (near initialization for `nlmsvc_procedures4[20].pc_encode') svc4proc.c:585: error: initializer element is not constant svc4proc.c:585: error: (near initialization for `nlmsvc_procedures4[20]') svc4proc.c:586: error: `nlm4svc_decode_shareargs' undeclared here (not in a function) svc4proc.c:586: error: initializer element is not constant svc4proc.c:586: error: (near initialization for `nlmsvc_procedures4[21].pc_decode') svc4proc.c:586: error: `nlm4svc_encode_shareres' undeclared here (not in a function) svc4proc.c:586: error: initializer element is not constant svc4proc.c:586: error: (near initialization for `nlmsvc_procedures4[21].pc_encode') svc4proc.c:586: error: initializer element is not constant svc4proc.c:586: error: (near initialization for `nlmsvc_procedures4[21]') svc4proc.c:587: error: `nlm4svc_decode_lockargs' undeclared here (not in a function) svc4proc.c:587: error: initializer element is not constant svc4proc.c:587: error: (near initialization for `nlmsvc_procedures4[22].pc_decode') svc4proc.c:587: error: `nlm4svc_encode_res' undeclared here (not in a function) svc4proc.c:587: error: initializer element is not constant svc4proc.c:587: error: (near initialization for `nlmsvc_procedures4[22].pc_encode') svc4proc.c:587: error: initializer element is not constant svc4proc.c:587: error: (near initialization for `nlmsvc_procedures4[22]') svc4proc.c:588: error: `nlm4svc_decode_notify' undeclared here (not in a function) svc4proc.c:588: error: initializer element is not constant svc4proc.c:588: error: (near initialization for `nlmsvc_procedures4[23].pc_decode') svc4proc.c:588: error: `nlm4svc_encode_void' undeclared here (not in a function) svc4proc.c:588: error: initializer element is not constant svc4proc.c:588: error: (near initialization for `nlmsvc_procedures4[23].pc_encode') svc4proc.c:588: error: initializer element is not constant svc4proc.c:588: error: (near initialization for `nlmsvc_procedures4[23]') make[3]: *** [svc4proc.o] Error 1 make[2]: *** [first_rule] Error 2 make[1]: *** [_subdir_lockd] Error 2 |
Update
Using the old gcc, compiling the kernel worked, but then the image was much too big. Therefore, I rearranged the .config file using make menuconfig, and I set many drivers to "module". Now, new errors appear, which I document on ErrorCompilingKernel20031130 ... ---
{{{New Knowledge: On my debian system, there is also the gcc-2.95 compiler! Now, I just changed the link from gcc to this older version. However, the finally mentioned error does not vanish. On the other hand, there shouldn't be any need of recompiling the kernel to match the gcc version with the kernel compiler's version...}}}
Documentation of Errors that Prevent Kernel Compilation
(2003 - 11 - 28)
I just downloaded the kernel source of version 2.4.22. My gcc's verion is 3.3.2 (Debian, x86). The config file for the compilation is quoted below. After {{{make oldconfig make dep make clean }}} I started 'make vmlinux' and got a first error in usb.h: {{{make all_targets make[3]: Entering directory `/data/src/linux-2.4.22/drivers/usb' gcc -DKERNEL -I/data/src/linux-2.4.22/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i686 -nostdinc -iwithprefix include -DKBUILD_BASENAME=usb -DEXPORT_SYMTAB -c usb.c gcc -DKERNEL -I/data/src/linux-2.4.22/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i686 -nostdinc -iwithprefix include -DKBUILD_BASENAME=usb_debug -c -o usb-debug.o usb-debug.c gcc -DKERNEL -I/data/src/linux-2.4.22/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i686 -nostdinc -iwithprefix include -DKBUILD_BASENAME=hub -c -o hub.o hub.c gcc -DKERNEL -I/data/src/linux-2.4.22/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i686 -nostdinc -iwithprefix include -DKBUILD_BASENAME=devio -c -o devio.o devio.c gcc -DKERNEL -I/data/src/linux-2.4.22/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-comon -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i686 -nostdinc -iwithprefix include -DKBUILD_BASENAME=inode -c -o inode.o inode.c inode.c:681: error: redefinition of `usbdevfs_add_bus' /data/src/linux-2.4.22/include/linux/usb.h:1119: error: `usbdevfs_add_bus' previously defined here inode.c:693: error: redefinition of `usbdevfs_remove_bus' /data/src/linux-2.4.22/include/linux/usb.h:1120: error: `usbdevfs_remove_bus' previously defined here inode.c:703: error: redefinition of `usbdevfs_add_device' /data/src/linux-2.4.22/include/linux/usb.h:1121: error: `usbdevfs_add_device' previously defined here inode.c:715: error: redefinition of `usbdevfs_remove_device' /data/src/linux-2.4.22/include/linux/usb.h:1122: error: `usbdevfs_remove_device' previously defined here inode.c:750: error: redefinition of `usbdevfs_init' /data/src/linux-2.4.22/include/linux/usb.h:1124: error: `usbdevfs_init' previously defined here inode.c:775: error: redefinition of `usbdevfs_cleanup' /data/src/linux-2.4.22/include/linux/usb.h:1125: error: `usbdevfs_cleanup' previously defined here make[3]: *** [inode.o] Error 1 make[3]: Leaving directory `/data/src/linux-2.4.22/drivers/usb' make[2]: *** [first_rule] Error 2 make[2]: Leaving directory `/data/src/linux-2.4.22/drivers/usb' make[1]: *** [_subdir_usb] Error 2 make[1]: Leaving directory `/data/src/linux-2.4.22/drivers' make: *** [_dir_drivers] Error 2 }}} As this seemed due to a non-working #ifdef/#else fork in the header file, now I commented out the affected lines 1119 to 1125: {{{#ifdef CONFIG_USB_DEVICEFS
extern void usbdevfs_add_bus(struct usb_bus *bus); extern void usbdevfs_remove_bus(struct usb_bus *bus); extern void usbdevfs_add_device(struct usb_device *dev); extern void usbdevfs_remove_device(struct usb_device *dev);
extern int usbdevfs_init(void); extern void usbdevfs_cleanup(void);
#else