Messages in this thread | | | From | "Michael H. Warfield" <> | Subject | Gotcha's in 2.1.79 | Date | Sun, 18 Jan 1998 21:47:16 -0500 (EST) |
| |
If an earlier message about this ever manages to fumble it's way past my addressing errors and reach this list - please ignore it.
Well... It was nice to see that the make xconfig problems in 2.1.78 got cleared in 2.1.79... However, I've run into a few errors in trying to compile the 2.1.79 kernel... Here they are along with the changes I had to make to get past them...
1)
It looks like drivers/char/tuner.h missed a patch somewhere. When I compile the kernel with the bttv driver enabled, I get piles of "too many initializers" warnings then then the driver bombs with an error about a non-existant structure element.
Doing diffs from 2.1.78 to 2.1.79, it looks like an element was added to the structure tuners in bttv.c but was missed in tuners.h where it is defined. Since the initializers grew by one element and there was one non-existant element complained about by the compiler, I took the wild ass guess and added that name for the additional structure element and it compiled.
I added this line to the end of the tuners structure definition in drivers/char/tuner.h and bttv.c then compile. Looks like just an oversight...
unchar config; unchar I2C; + ushort IFPCoff; }; #endif
2)
Next I got this little gem in the fs/fat/fatfs_syms.c:
make[3]: Entering directory `/var/src/linux-2.1.79/fs/fat' gcc -D__KERNEL__ -I/var/src/linux-2.1.79/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=586 -DEXPORT_SYMTAB -c fatfs_syms.c fatfs_syms.c:53: `fat_get_cluster' undeclared here (not in a function) fatfs_syms.c:53: initializer element for `__ksymtab_fat_get_cluster.value' is not constant make[3]: *** [fatfs_syms.o] Error 1
This seems to have been a change in the code to rename the function get_cluster to fat_get_cluster, but the file include/linux/msdos_fs.h was not updated to reflect the renaming. The following change got past that:
void cache_lookup(struct inode *inode,int cluster,int *f_clu,int *d_clu); void cache_add(struct inode *inode,int f_clu,int d_clu); - int get_cluster(struct inode *inode,int cluster); + int fat_get_cluster(struct inode *inode,int cluster);
/* inode.c */ extern int fat_bmap(struct inode *inode,int block);
3)
After that, the file fs/vfat/namei.c bombed with piles of errors surrounding references to the structure "slot_info" which had also been defined in include/linux/msdos_fs.h in 2.1.78 but had been renamed to vfat_slot_info in 2.1.79. Replaced all references to slot_info with vfat_slot_info in fs/vfat/namei.c and it then compiles clean.
4)
Anyone got any idea if I should be worried about the warning messages that binfmt_elf.c and binfmt_aout.c give about "conversion between unsigned int and pointer of different size" on lines like this:
__put_user((elf_caddr_t)(unsigned long)p,argv++);
It all compiles now... Now to see if it runs...
This is on an Intel Platform, 586 build.
Mike -- Michael H. Warfield | (770) 985-6132 | mhw@WittsEnd.com (The Mad Wizard) | (770) 925-8248 | http://www.wittsend.com/mhw/ NIC whois: MHW9 | An optimist believes we live in the best of all PGP Key: 0xDF1DD471 | possible worlds. A pessimist is sure of it!
| |