GCC4.6.1编译Linux内核kernel3.0出现的警告信息(原创)
作者:余超 Email:[email protected]
[yuchao@yuchao-Latitude-E5410 linux-3.0]$gcc --version
gcc (GCC) 4.6.1
Copyright © 2011 Free Software Foundation, Inc.
本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保;
包括没有适销性和某一专用目的下的适用性担保。
========================================================================================
drivers/ata/sata_sil.c: 在函数‘sil_host_intr’中:
drivers/ata/sata_sil.c:453:14: 警告:此函数中的‘serror’在使用前可能未初始化 [-Wuninitialized]
=========================================================================================
drivers/block/drbd/drbd_main.c: 在函数‘drbd_buildtag’中:
drivers/block/drbd/drbd_main.c:4187:19: 警告:the comparison will always evaluate as ‘true’ for the address of ‘__this_module’ will never be NULL [-Waddress]
CC [M] drivers/block/drbd/drbd_strings.o
=========================================================================================
CC [M] drivers/block/DAC960.o
drivers/block/DAC960.c: 在函数‘DAC960_V2_ProcessCompletedCommand’中:
drivers/block/DAC960.c:5095:30: 警告:在‘DAC960_V2_IOCTL_Opcode_T’和‘enum <匿名>’间比较 [-Wenum-compare]
drivers/block/DAC960.c: 在函数‘DAC960_V1_EnableMemoryMailboxInterface’中:
/home/yuchao/dev/linux-3.0/arch/x86/include/asm/io.h:63:1: 警告:此函数中的‘CommandMailbox.Bytes[12]’在使用前可能未初始化 [-Wuninitialized]
drivers/block/DAC960.c:1175:30: 附注:‘CommandMailbox.Bytes[12]’在此声明
=====================================================================================================================================
在函数‘copy_from_user’中,
内联自‘parse_command.part.1’于 fs/binfmt_misc.c:422:20:
/home/yuchao/dev/linux-3.0/arch/x86/include/asm/uaccess_32.h:211:26: 警告:调用‘copy_from_user_overflow’,声明有警告属性:copy_from_user() buffer size is not provably correct [默认启用]
arch/x86/kvm/emulate.c: 在函数‘emulate_sysexit’中:
arch/x86/kvm/emulate.c:2054:9: 警告:此函数中的‘ss_sel’在使用前可能未初始化 [-Wuninitialized]
arch/x86/kvm/emulate.c:2053:9: 警告:此函数中的‘cs_sel’在使用前可能未初始化 [-Wuninitialized]
/home/yuchao/dev/linux-3.0/arch/x86/include/asm/bitops.h: 在函数‘can_boost.part.7’中:
/home/yuchao/dev/linux-3.0/arch/x86/include/asm/bitops.h:319:2: 警告:不建议在 asm 操作数 1 中不带左值地使用内存输入 [默认启用]
WARNING: drivers/eisa/built-in.o(.data+0xd0): Section mismatch in reference from the variable pci_eisa_driver to the function .init.text:pci_eisa_init()
The variable pci_eisa_driver references
the function __init pci_eisa_init()
If the reference is valid then annotate the
variable with __init* or __refdata (see linux/init.h) or name the variable:
*_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console
WARNING: drivers/gpu/drm/radeon/radeon.o(.text+0x4435b): Section mismatch in reference from the function radeon_get_clock_info() to the function .devinit.text:radeon_read_clocks_OF()
The function radeon_get_clock_info() references
the function __devinit radeon_read_clocks_OF().
This is often because radeon_get_clock_info lacks a __devinit
annotation or the annotation of radeon_read_clocks_OF is wrong.
CC [M] drivers/gpu/drm/nouveau/nv50_display.o
drivers/gpu/drm/nouveau/nv50_display.c: 在函数‘nv50_display_unk10_handler’中:
drivers/gpu/drm/nouveau/nv50_display.c:628:15: 警告:此函数中的‘or’在使用前可能未初始化 [-Wuninitialized]
drivers/gpu/drm/nouveau/nv50_display.c: 在函数‘nv50_display_unk20_handler’中:
drivers/gpu/drm/nouveau/nv50_display.c:751:15: 警告:此函数中的‘or’在使用前可能未初始化 [-Wuninitialized]
CC [M] drivers/gpu/drm/nouveau/nv04_dac.o
drivers/hwmon/applesmc.c: 在函数‘applesmc_get_entry_by_key’中:
drivers/hwmon/applesmc.c:390:10: 警告:此函数中的‘end’在使用前可能未初始化 [-Wuninitialized]
CC [M] drivers/hwmon/asc7621.o
drivers/infiniband/hw/mlx4/qp.c: 在函数‘build_mlx_header’中:
drivers/infiniband/hw/mlx4/qp.c:1379:30: 警告:此函数中的‘vlan’在使用前可能未初始化 [-Wuninitialized]
In file included from /home/yuchao/dev/linux-3.0/arch/x86/include/asm/uaccess.h:570:0,
from include/net/checksum.h:25,
from include/linux/skbuff.h:28,
from drivers/isdn/hardware/avm/b1.c:17:
在函数‘copy_from_user’中,
内联自‘b1_load_t4file’于 drivers/isdn/hardware/avm/b1.c:179:22:
/home/yuchao/dev/linux-3.0/arch/x86/include/asm/uaccess_32.h:211:26: 警告:调用‘copy_from_user_overflow’,声明有警告属性:copy_from_user() buffer size is not provably correct [默认启用]
在函数‘copy_from_user’中,
内联自‘b1_load_config’于 drivers/isdn/hardware/avm/b1.c:227:22:
/home/yuchao/dev/linux-3.0/arch/x86/include/asm/uaccess_32.h:211:26: 警告:调用‘copy_from_user_overflow’,声明有警告属性:copy_from_user() buffer size is not provably correct [默认启用]
CC [M] drivers/isdn/hardware/avm
drivers/isdn/hardware/eicon/message.c: 在函数‘mixer_notify_update’中:
drivers/isdn/hardware/eicon/message.c:11308:54: 警告:数组下标大于数组边界 [-Warray-bounds]
drivers/isdn/hardware/mISDN/hfcpci.c: 在函数‘hfcpci_softirq’中:
drivers/isdn/hardware/mISDN/hfcpci.c:2318:2: 警告:忽略声明有 warn_unused_result 属性的‘driver_for_each_device’的返回值 [-Wunused-result]
===============================================================================
CC [M] drivers/media/dvb/dvb-core/dvb_ca_en50221.o
In file included from /home/yuchao/dev/linux-3.0/arch/x86/include/asm/uaccess.h:570:0,
from include/linux/poll.h:14,
from drivers/media/dvb/dvb-core/dvbdev.h:27,
from drivers/media/dvb/dvb-core/dvb_ca_en50221.h:27,
from drivers/media/dvb/dvb-core/dvb_ca_en50221.c:41:
在函数‘copy_from_user’中,
内联自‘dvb_ca_en50221_io_write’于 drivers/media/dvb/dvb-core/dvb_ca_en50221.c:1314:26:
/home/yuchao/dev/linux-3.0/arch/x86/include/asm/uaccess_32.h:211:26: 警告:调用‘copy_from_user_overflow’,声明有警告属性:copy_from_user() buffer size is not provably correct [默认启用]
==================================================================
drivers/media/common/tuners/max2165.c: 在函数‘max2165_set_rf’中:
drivers/media/common/tuners/max2165.c:203:11: 警告:此函数中的‘fraction’在使用前可能未初始化 [-Wuninitialized]
drivers/media/common/tuners/max2165.c:205:19: 警告:此函数中的‘quotient’在使用前可能未初始化 [-Wuninitialized]
=======================================================================================================
==================================================================================================================
drivers/isdn/sc/init.c: 在函数‘identify_board’中:
drivers/isdn/sc/init.c:487:2: 警告:传递‘readl’的第 1 个参数时将整数赋给指针,未作类型转换 [默认启用]
/home/yuchao/dev/linux-3.0/arch/x86/include/asm/io.h:57:1: 附注:需要类型‘const volatile void *’,但实参的类型为‘long unsigned int’
drivers/isdn/sc/init.c:497:2: 警告:传递‘readl’的第 1 个参数时将整数赋给指针,未作类型转换 [默认启用]
/home/yuchao/dev/linux-3.0/arch/x86/include/asm/io.h:57:1: 附注:需要类型‘const volatile void *’,但实参的类型为‘long unsigned int’
drivers/isdn/sc/init.c:507:2: 警告:传递‘readl’的第 1 个参数时将整数赋给指针,未作类型转换 [默认启用]
/home/yuchao/dev/linux-3.0/arch/x86/include/asm/io.h:57:1: 附注:需要类型‘const volatile void *’,但实参的类型为‘long unsigned int’
=============================================================================================================================
drivers/isdn/icn/icn.c: 在函数‘icn_sendbuf’中:
drivers/isdn/icn/icn.c:721:4: 警告:#warning TODO test headroom or use skb->nb to flag ACK [-Wcpp]
In file included from /home/yuchao/dev/linux-3.0/arch/x86/include/asm/uaccess.h:570:0,
from include/net/checksum.h:25,
from include/linux/skbuff.h:28,
from include/linux/isdnif.h:57,
from drivers/isdn/icn/icn.h:51,
from drivers/isdn/icn/icn.c:12:
在函数‘copy_from_user’中,
内联自‘icn_writecmd’于 drivers/isdn/icn/icn.c:1048:22:
/home/yuchao/dev/linux-3.0/arch/x86/include/asm/uaccess_32.h:211:26: 警告:调用‘copy_from_user_overflow’,声明有警告属性:copy_from_user() buffer size is not provably correct [默认启用]
===============================================================================================================================
drivers/isdn/hardware/mISDN/hfcpci.c: 在函数‘hfcpci_softirq’中:
drivers/isdn/hardware/mISDN/hfcpci.c:2318:2: 警告:忽略声明有 warn_unused_result 属性的‘driver_for_each_device’的返回值 [-Wunused-result]
==============================================================================================================
drivers/isdn/hardware/eicon/message.c: 在函数‘mixer_notify_update’中:
drivers/isdn/hardware/eicon/message.c:11308:54: 警告:数组下标大于数组边界 [-Warray-bounds]
In file included from /home/yuchao/dev/linux-3.0/arch/x86/include/asm/uaccess.h:570:0,
from include/net/checksum.h:25,
from include/linux/skbuff.h:28,
from drivers/isdn/hardware/avm/b1.c:17:
在函数‘copy_from_user’中,
内联自‘b1_load_t4file’于 drivers/isdn/hardware/avm/b1.c:179:22:
/home/yuchao/dev/linux-3.0/arch/x86/include/asm/uaccess_32.h:211:26: 警告:调用‘copy_from_user_overflow’,声明有警告属性:copy_from_user() buffer size is not provably correct [默认启用]
在函数‘copy_from_user’中,
内联自‘b1_load_config’于 drivers/isdn/hardware/avm/b1.c:227:22:
/home/yuchao/dev/linux-3.0/arch/x86/include/asm/uaccess_32.h:211:26: 警告:调用‘copy_from_user_overflow’,声明有警告属性:copy_from_user() buffer size is not provably correct [默认启用]
===========================================================================================
WARNING: drivers/mfd/built-in.o(.data+0x24cc): Section mismatch in reference from the variable ab3550_driver to the function .init.text:ab3550_probe()
The variable ab3550_driver references
the function __init ab3550_probe()
If the reference is valid then annotate the
variable with __init* or __refdata (see linux/init.h) or name the variable:
*_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console
++++++++++++++++++++++++++++++++
WARNING: drivers/net/phy/built-in.o(.init.text+0x4c2): Section mismatch in reference from the function mdio_gpio_init() to the function .exit.text:mdio_ofgpio_exit()
The function __init mdio_gpio_init() references
a function __exit mdio_ofgpio_exit().
This is often seen when error handling in the init function
uses functionality in the exit path.
The fix is often to remove the __exit annotation of
mdio_ofgpio_exit() so it may be used outside an exit section.
=================================================================
drivers/misc/lkdtm.c: 在函数‘recursive_loop.constprop.2’中:
drivers/misc/lkdtm.c:276:1: 警告:栈帧有 1028 字节,超过了 1024 字节 [-Wframe-larger-than=]
==================================================================
In file included from drivers/net/tokenring/smctr.c:43:0:
include/linux/mca-legacy.h:12:2: 警告:#warning "MCA legacy - please move your driver to the new sysfs api" [-Wcpp]
include/linux/mtd/map.h:330:11: 警告:此函数中的‘r.x[0]’在使用前可能未初始化 [-Wuninitialized]
=======================================================================
drivers/net/pcmcia/nmclan_cs.c: 在函数‘nmclan_config’中:
drivers/net/pcmcia/nmclan_cs.c:628:3: 警告:不建议使用‘pcmcia_request_exclusive_irq’(声明于 include/pcmcia/ds.h:201) [-Wdeprecated-declarations]
drivers/net/pcmcia/ibmtr_cs.c: 在函数‘ibmtr_config’中:
drivers/net/pcmcia/ibmtr_cs.c:195:5: 警告:不建议使用‘pcmcia_request_exclusive_irq’(声明于 include/pcmcia/ds.h:201) [-Wdeprecated-declarations]
========================================================
drivers/net/wan/cycx_x25.c: 在函数‘hex_dump’中:
drivers/net/wan/cycx_x25.c:1030:1: 警告:栈帧有 1040 字节,超过了 1024 字节 [-Wframe-larger-than=]
drivers/net/wireless/prism54/isl_ioctl.c: 在函数‘prism54_hostapd’中:
drivers/net/wireless/prism54/isl_ioctl.c:2733:14: 警告:数组下标大于数组边界 [-Warray-bounds]
drivers/net/wireless/airo.c: 在函数‘encapsulate’中:
drivers/net/wireless/airo.c:1421:15: 警告:数组下标大于数组边界 [-Warray-bounds]
drivers/net/wireless/ray_cs.c: 在函数‘rx_authenticate.isra.13’中:
drivers/net/wireless/ray_cs.c:2439:15: 警告:数组下标大于数组边界 [-Warray-bounds]
drivers/net/cnic.c: 在函数‘cnic_cm_open’中:
drivers/net/cnic.c:4047:2: 警告:the comparison will always evaluate as ‘true’ for the address of ‘cm_ulp_ops’ will never be NULL [-Waddress]
drivers/net/cnic.c: 在函数‘cnic_start_bnx2_hw’中:
drivers/net/cnic.c:4556:1: 警告:栈帧有 1168 字节,超过了 1024 字节 [-Wframe-larger-than=]
drivers/scsi/aic94xx/aic94xx_sds.c:597:21: 警告:此函数中的‘offs’在使用前可能未初始化 [-Wuninitialized]
drivers/scsi/libsas/sas_ata.c:80:3: 警告:case 值‘2’不在枚举类型‘enum exec_status’内 [-Wswitch]
drivers/scsi/lpfc/lpfc_bsg.c:1662:5: 警告:此函数中的‘mbxstatus’在使用前可能未初始化 [-Wuninitialized]
drivers/staging/comedi/drivers/pcmmio.c:498:22: 警告:数组下标大于数组边界 [-Warray-bounds]
drivers/staging/comedi/drivers/pcmmio.c:561:37: 警告:此函数中的‘irq[1]’在使用前可能未初始化 [-Wuninitialized]
drivers/staging/comedi/drivers/vmk80xx.c: 在函数‘vmk80xx_cnt_rinsn’中:
drivers/staging/comedi/drivers/vmk80xx.c:995:37: 警告:此函数中的‘reg[0]’在使用前可能未初始化 [-Wuninitialized]
drivers/staging/iio/industrialio-core.c: 在函数‘iio_device_add_event_sysfs.isra.3’中:
drivers/staging/iio/industrialio-core.c:925:7: 警告:此函数中的‘mask’在使用前可能未初始化 [-Wuninitialized]
drivers/telephony/ixj.c: 在函数‘add_caps’中:
drivers/telephony/ixj.c:5930:38: 警告:‘j->caps’上的运算结果可能是未定义的 [-Wsequence-point]