solutions to errors occured when compiling kernel linux-2.6.31.14

来源:互联网 发布:asp客服源码 编辑:程序博客网 时间:2024/06/04 17:15
solutions to errors occured when compiling kernel linux-2.6.31.14-----------------------------------------------------------------------------------------------------PROBLEM:-1------------------------------------------------------------------------------------------------------gcc: error: elf_i386: No such file or directoryOBJCOPY arch/x86/vdso/vdso32-int80.soobjcopy: 'arch/x86/vdso/vdso32-int80.so.dbg': No such filemake[2]: *** [arch/x86/vdso/vdso32-int80.so] Error 1make[1]: *** [arch/x86/vdso] Error 2make: *** [arch/x86] Error 2------------------------------------------------------------------------------------------------------SOLUTION:----------The problem is that gcc 4.6 doesn't support anymore linker-style architecture options.Apply the following changes to solve the problem :In arch/x86/vdso/Makefile :replace "-m elf_x86_64" by "-m64" on the line starting with VDSO_LDFLAGS_vdso.ldsreplace "-m elf_i386" by "-m32" on the line starting with VDSO_LDFLAGS_vdso32.lds------------------------------------------------------------------------------------------------------PROBLEM:-2------------------------------------------------------------------------------------------------------In file included from drivers/net/igbvf/ethtool.c:36:0:drivers/net/igbvf/igbvf.h: At top level:drivers/net/igbvf/igbvf.h:129:15: error: duplicate member ‘page’make[3]: *** [drivers/net/igbvf/ethtool.o] Error 1make[2]: *** [drivers/net/igbvf] Error 2make[1]: *** [drivers/net] Error 2make: *** [drivers] Error 2------------------------------------------------------------------------------------------------------SOLUTION:---------struct igbvf_buffer {dma_addr_t dma;struct sk_buff *skb;`enter code here`union {/* Tx */struct {unsigned long time_stamp;u16 length;u16 next_to_watch;u16 mapped_as_page;};/* Rx */struct {struct page *page; <--------------- No 1u64 page_dma;unsigned int page_offset;};};struct page *page; <------------ No 2};Hmm conflict of a member with a transparent union.Maybe older gccs didn't catch that. But it looks very brokenComment second pointer.------------------------------------------------------------------------------------------------------PROBLEM 3: Similar to Problem-2-------------------------------------------------------------------------------In file included from drivers/scsi/pmcraid.c:57:0:drivers/scsi/pmcraid.h: At top level:drivers/scsi/pmcraid.h:601:8: error: duplicate member ‘sense_buffer’drivers/scsi/pmcraid.c: In function ‘pmcraid_abort_cmd’:drivers/scsi/pmcraid.c:2940:33: warning: variable ‘res’ set but not used [-Wunused-but-set-variable]drivers/scsi/pmcraid.c: In function ‘pmcraid_ioctl_passthrough’:drivers/scsi/pmcraid.c:3745:5: warning: variable ‘access’ set but not used [-Wunused-but-set-variable]drivers/scsi/pmcraid.c: In function ‘pmcraid_check_ioctl_buffer’:drivers/scsi/pmcraid.c:4052:6: warning: variable ‘access’ set but not used [-Wunused-but-set-variable]make[3]: *** [drivers/scsi/pmcraid.o] Error 1make[2]: *** [drivers/scsi] Error 2make[1]: *** [drivers] Error 2make[1]: Leaving directory `/home/ashish/litmus-rt'make: *** [debian/stamp/build/kernel] Error 2-------------------------------------------------------------------------------SOLUTION:----------Comment drivers/scsi/pmcraid.h:571-------------------------------------------------------------------------------
0 0