Making allyesconfig work

Russell King - ARM Linux linux at arm.linux.org.uk
Fri Jan 20 06:51:08 EST 2012


Presently, allyesconfig fails to get anywhere near building on ARM, which
is caused mainly by a Kconfig problem.

The problem is XIP_KERNEL gets enabled, which turns off ARM_PATCH_PHYS_VIRT,
and then we have Kconfig wanting a value for PHYS_OFFSET.  Because 'y'
doesn't suit this, Kconfig leaves this blank.

The result is that make allyesconfig produces an invalid configuration
file, which fails on building - killing off the build before we've even
compiled any of the kernel .c files.

One solution to this would be:

config __ALLYESCONFIG
	bool "If you enable me, your personal universe will implode"
	help
	  Never enable this option.  This option is here to detect
	  'make allyesconfig' and allow certain options to be disabled.
	  Saying 'y' here yourself will result in those options being
	  hidden from you, which is probably not what you want.

and then we can have:

config XIP_KERNEL
        bool "Kernel Execute-In-Place from ROM"
        depends on !ZBOOT_ROM && !ARM_LPAE && !__ALLYESCONFIG

Once this is done, then we can actually get to a point where we can
start building the kernel.  The good news is that most of the kernel
builds relatively cleanly, although there are the expected warnings
about virt_to_bus(), bus_to_virt().

However, it seems we're exporting a few constants which don't have a
good namespace - one of those is fixed by a patches I posted earlier
today to avoid exporting the CR_* constants to the entire kernel
build.  CR_* is not a good namespace to be visible to drivers and the
like, so these definitions have been moved to a private ARM header.

There's also the troublesome T() macro, which conflicts with a bunch
of other drivers.  (I've added Catalin to the To: line for this
reason.)

I won't post the entire build log - it comes in around 430K which is
much too large for these lists.  Instead, below are the errors and
warnings from the build.

Below are the errors from a fresh allyesconfig build:

drivers/input/touchscreen/eeti_ts.c:65: error: implicit declaration of function 'irq_to_gpio'
drivers/mfd/ezx-pcap.c:205: error: implicit declaration of function 'irq_to_gpio'
drivers/net/ethernet/faraday/ftgmac100.c:983: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'ftgmac100_interrupt'
drivers/net/ethernet/faraday/ftgmac100.c:1085: error: implicit declaration of function 'request_irq'
drivers/net/ethernet/faraday/ftgmac100.c:1085: error: 'ftgmac100_interrupt' undeclared (first use in this function)
drivers/net/ethernet/faraday/ftgmac100.c:1085: error: (Each undeclared identifier is reported only once
drivers/net/ethernet/faraday/ftgmac100.c:1085: error: for each function it appears in.)
drivers/net/ethernet/faraday/ftgmac100.c:1113: error: implicit declaration of function 'free_irq'
drivers/net/ethernet/faraday/ftmac100.c:859: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'ftmac100_interrupt'
drivers/net/ethernet/faraday/ftmac100.c:964: error: implicit declaration of function 'request_irq'
drivers/net/ethernet/faraday/ftmac100.c:964: error: 'ftmac100_interrupt' undeclared (first use in this function)
drivers/net/ethernet/faraday/ftmac100.c:964: error: (Each undeclared identifier is reported only once
drivers/net/ethernet/faraday/ftmac100.c:964: error: for each function it appears in.)
drivers/net/ethernet/faraday/ftmac100.c:987: error: implicit declaration of function 'free_irq'
drivers/net/ethernet/stmicro/stmmac/mmc_core.c:142: error: implicit declaration of function 'pr_debug'
drivers/scsi/advansys.c:8376: error: implicit declaration of function 'dma_cache_sync'
drivers/staging/iio/accel/lis3l02dq_core.c:702: error: implicit declaration of function 'irq_to_gpio'
drivers/staging/iio/accel/lis3l02dq_ring.c:295: error: implicit declaration of function 'irq_to_gpio'

which shows mostly its irq_to_gpio, and three drivers with missing
include files.

The warnings are (with virt_to_bus/bus_to_virt omitted):

arch/arm/kernel/return_address.c:62:2: warning: #warning "TODO: return_address should use unwind tables"
arch/arm/kernel/return_address.c:62:2: warning: #warning "TODO: return_address should use unwind tables"
kernel/debug/kdb/kdb_support.c:639: warning: passing argument 1 of 'is_idle_task' discards qualifiers from pointer target type
kernel/sched/fair.c:419: warning: 'account_cfs_rq_runtime' declared inline after being called
kernel/sched/fair.c:419: warning: previous declaration of 'account_cfs_rq_runtime' was here
kernel/sched/fair.c:1178: warning: 'return_cfs_rq_runtime' declared inline after being called
kernel/sched/fair.c:1178: warning: previous declaration of 'return_cfs_rq_runtime' was here
kernel/trace/trace.c:3697: warning: 'page2' may be used uninitialized in this function
mm/memcontrol.c:381: warning: 'mem_cgroup_is_root' declared inline after being called
mm/memcontrol.c:381: warning: previous declaration of 'mem_cgroup_is_root' was here
fs/btrfs/backref.c:419: warning: 'ret' may be used uninitialized in this function
fs/nfs/callback_proc.c:116: warning: 'ino' may be used uninitialized in this function
fs/nfs/callback_proc.c:115: warning: 'lo' may be used uninitialized in this function
include/asm-generic/xor.h:696: warning: 'xor_block_8regs_p' defined but not usedinclude/asm-generic/xor.h:704: warning: 'xor_block_32regs_p' defined but not used
drivers/dma/pl330.c:859: warning: comparison of distinct pointer types lacks a cast
drivers/gpu/drm/drm_edid.c:1341: warning: array subscript is above array bounds
drivers/gpu/drm/drm_edid.c:1341: warning: array subscript is above array bounds
drivers/gpu/drm/drm_edid.c:1341: warning: array subscript is above array bounds
drivers/gpu/drm/drm_edid.c:1341: warning: array subscript is above array bounds
drivers/gpu/drm/drm_edid.c:1341: warning: array subscript is above array bounds
drivers/gpu/drm/nouveau/nv50_display.c:618: warning: 'mc' may be used uninitialized in this function
drivers/infiniband/hw/mlx4/qp.c:1366: warning: 'vlan' may be used uninitialized in this function
drivers/input/joystick/analog.c:175:2: warning: #warning Precise timer not defined for this architecture.
drivers/isdn/hardware/mISDN/hfcpci.c:2319: warning: ignoring return value of 'driver_for_each_device', declared with attribute warn_unused_result
drivers/isdn/hardware/mISDN/w6692.c:1189: warning: unsupported argument to '__builtin_return_address'
drivers/isdn/hardware/mISDN/mISDNipac.c:755: warning: unsupported argument to '__builtin_return_address'
drivers/leds/leds-lp5521.c:648: warning: 'ret' may be used uninitialized in this function
drivers/leds/leds-lp5521.c:649: warning: 'buf' may be used uninitialized in this function
drivers/leds/leds-lp5521.c:197: warning: 'mode' may be used uninitialized in this function
drivers/leds/leds-lp5523.c:443: warning: 'vdd' may be used uninitialized in this function
drivers/leds/leds-lp5523.c:443: warning: 'adc' may be used uninitialized in this function
drivers/leds/leds-lp5523.c:196: warning: 'status' may be used uninitialized in this function
drivers/media/dvb/pt1/pt1.c:395: warning: 'addr' may be used uninitialized in this function
drivers/media/dvb/pt1/pt1.c:397: warning: 'buf_pfn' may be used uninitialized in this function
drivers/media/rc/redrat3.c:1100: warning: assignment from incompatible pointer type
drivers/media/video/em28xx/em28xx-core.c:1116: warning: 'packet_size' may be used uninitialized in this function
drivers/mmc/card/block.c:794: warning: 'arg' may be used uninitialized in this function
drivers/mmc/card/block.c:794: warning: 'nr' may be used uninitialized in this function
drivers/mmc/card/block.c:794: warning: 'from' may be used uninitialized in this function
drivers/mtd/devices/doc2000.c:874: warning: value computed is not used
drivers/mtd/devices/doc2000.c:1043: warning: value computed is not used
drivers/mtd/devices/doc2000.c:1068: warning: value computed is not used
drivers/mtd/devices/doc2000.c:1143: warning: value computed is not used
drivers/mtd/devices/doc2001plus.c:634: warning: value computed is not used
drivers/mtd/devices/doc2001plus.c:635: warning: value computed is not used
drivers/mtd/devices/doc2001plus.c:891: warning: value computed is not used
drivers/mtd/devices/doc2001plus.c:892: warning: value computed is not used
drivers/mtd/devices/docg3.c:753: warning: 'doc_get_erase_count' defined but not used
drivers/mtd/devices/docprobe.c:74:2: warning: #warning Unknown architecture for DiskOnChip. No default probe locations defined
drivers/mtd/devices/docprobe.c:138: warning: value computed is not used
drivers/mtd/devices/docprobe.c:139: warning: value computed is not used
drivers/mtd/devices/docprobe.c:158: warning: value computed is not used
drivers/mtd/devices/slram.c:52:1: warning: "T" redefined
arch/arm/include/asm/domain.h:86:1: warning: this is the location of the previous definition
drivers/mtd/devices/sst25l.c:381: warning: unused variable 'i'
drivers/mtd/nand/diskonchip.c:57:2: warning: #warning Unknown architecture for DiskOnChip. No default probe locations defined
drivers/mtd/nand/diskonchip.c:318: warning: value computed is not used
drivers/mtd/nand/diskonchip.c:494: warning: value computed is not used
drivers/mtd/nand/diskonchip.c:520: warning: value computed is not used
drivers/mtd/nand/diskonchip.c:537: warning: value computed is not used
drivers/mtd/nand/diskonchip.c:541: warning: value computed is not used
drivers/mtd/nand/diskonchip.c:556: warning: value computed is not used
drivers/mtd/nand/diskonchip.c:557: warning: value computed is not used
drivers/mtd/nand/diskonchip.c:593: warning: value computed is not used
drivers/mtd/nand/diskonchip.c:594: warning: value computed is not used
drivers/mtd/nand/diskonchip.c:624: warning: value computed is not used
drivers/mtd/nand/diskonchip.c:625: warning: value computed is not used
drivers/mtd/nand/diskonchip.c:629: warning: value computed is not used
drivers/mtd/nand/diskonchip.c:630: warning: value computed is not used
drivers/mtd/nand/diskonchip.c:1454: warning: value computed is not used
drivers/mtd/nand/diskonchip.c:1455: warning: value computed is not used
drivers/mtd/nand/diskonchip.c:1456: warning: value computed is not used
drivers/mtd/nand/diskonchip.c:1547: warning: value computed is not used
drivers/net/ethernet/amd/nmclan_cs.c:626: warning: 'pcmcia_request_exclusive_irq' is deprecated (declared at include/pcmcia/ds.h:203)
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c:2784: warning: comparison of distinct pointer types lacks a cast
drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c:1530: warning: comparison of distinct pointer types lacks a cast
drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c:1614:1: warning: "T" redefined
arch/arm/include/asm/domain.h:86:1: warning: this is the location of the previous definition
drivers/net/ethernet/dec/tulip/winbond-840.c:914:2: warning: #warning Processor architecture undefined
drivers/net/ethernet/marvell/sky2.c:1762: warning: 'imask' may be used uninitialized in this function
drivers/net/ethernet/neterion/vxge/vxge-main.c:2117: warning: 'adaptive_coalesce_tx_interrupts' defined but not used
drivers/net/ethernet/neterion/vxge/vxge-main.c:2145: warning: 'adaptive_coalesce_rx_interrupts' defined but not used
drivers/net/ethernet/via/via-velocity.c:3062: warning: array subscript is above array bounds
drivers/net/ethernet/via/via-velocity.c:3064: warning: array subscript is above array bounds
drivers/net/ethernet/via/via-velocity.c:3074: warning: array subscript is above array bounds
drivers/net/tokenring/ibmtr_cs.c:195: warning: 'pcmcia_request_exclusive_irq' is deprecated (declared at include/pcmcia/ds.h:203)
drivers/net/wireless/ath/ath6kl/sdio.c:330: warning: 'sg_sz' may be used uninitialized in this function
drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c:346: warning: 'wsec' may be used uninitialized in this function
drivers/net/wireless/brcm80211/brcmsmac/aiutils.c:1159: warning: 'val' may be used uninitialized in this function
drivers/net/wireless/rt2x00/rt2800lib.c:1291: warning: 'gf40_mode' may be used uninitialized in this function
drivers/net/wireless/rt2x00/rt2800lib.c:1291: warning: 'gf20_mode' may be used uninitialized in this function
drivers/net/wireless/rt2x00/rt2800lib.c:1291: warning: 'mm40_mode' may be used uninitialized in this function
drivers/net/wireless/rt2x00/rt2800lib.c:1291: warning: 'mm20_mode' may be used uninitialized in this function
drivers/net/wireless/rtlwifi/rtl8192de/trx.c:124: warning: 'rx_pwr_all' may be used uninitialized in this function
drivers/rtc/rtc-m41t80.c:217: warning: 'm41t80_rtc_alarm_irq_enable' defined but not used
drivers/rtc/rtc-m41t80.c:239: warning: 'm41t80_rtc_set_alarm' defined but not used
drivers/rtc/rtc-m41t80.c:309: warning: 'm41t80_rtc_read_alarm' defined but not used
drivers/scsi/aic94xx/aic94xx_sds.c:985: warning: 'offs' may be used uninitialized in this function
drivers/scsi/lpfc/lpfc_scsi.c:1307: warning: integer constant is too large for 'long' type
drivers/scsi/lpfc/lpfc_scsi.c:1333: warning: integer constant is too large for 'long' type
drivers/scsi/lpfc/lpfc_scsi.c:1344: warning: integer constant is too large for 'long' type
drivers/scsi/lpfc/lpfc_scsi.c:1367: warning: integer constant is too large for 'long' type
drivers/scsi/lpfc/lpfc_scsi.c:1378: warning: integer constant is too large for 'long' type
drivers/scsi/lpfc/lpfc_scsi.c:1412: warning: integer constant is too large for 'long' type
drivers/scsi/lpfc/lpfc_scsi.c:1434: warning: integer constant is too large for 'long' type
drivers/scsi/lpfc/lpfc_debugfs.c:3892: warning: integer constant is too large for 'long' type
drivers/scsi/advansys.c:72:2: warning: #warning this driver is still not properly converted to the DMA API
drivers/scsi/dpt_i2o.c:183: warning: 'dptids' defined but not used
drivers/scsi/ips.c:210:2: warning: #warning "This driver has only been tested on the x86/ia64/x86_64 platforms"
drivers/scsi/fdomain.c:1775: warning: 'fdomain_pci_tbl' defined but not used
drivers/scsi/initio.c:131: warning: 'i91u_pci_devices' defined but not used
drivers/staging/iio/gyro/adis16080_core.c:85: warning: 'ut' may be used uninitialized in this function
drivers/staging/iio/light/isl29018.c:297: warning: 'new_adc_bit' may be used uninitialized in this function
drivers/staging/iio/light/isl29018.c:255: warning: 'new_range' may be used uninitialized in this function
drivers/staging/media/dt3155v4l/dt3155v4l.c:307: warning: initialization from incompatible pointer type
drivers/staging/media/dt3155v4l/dt3155v4l.c:311: warning: initialization from incompatible pointer type
include/linux/jhash.h:90: warning: array subscript is above array bounds
include/linux/jhash.h:91: warning: array subscript is above array bounds
include/linux/jhash.h:92: warning: array subscript is above array bounds
include/linux/jhash.h:93: warning: array subscript is above array bounds
include/linux/jhash.h:94: warning: array subscript is above array bounds
include/linux/jhash.h:95: warning: array subscript is above array bounds
include/linux/jhash.h:96: warning: array subscript is above array bounds
include/linux/jhash.h:97: warning: array subscript is above array bounds
drivers/staging/rtl8712/rtl8712_recv.c:752: warning: 'rx_pwr_all' may be used uninitialized in this function
drivers/staging/usbip/usbip_common.c:796: warning: 'ret' may be used uninitialized in this function
drivers/staging/wlan-ng/cfg80211.c:404: warning: ignoring return value of 'cfg80211_inform_bss', declared with attribute warn_unused_result
drivers/tty/serial/ifx6x60.c:609: warning: 'more' may be used uninitialized in this function
drivers/usb/host/xhci-ring.c:1253: warning: 'hcd' may be used uninitialized in this function
drivers/usb/musb/musb_gadget.c:1087: warning: 'double_buffer_not_ok' is deprecated (declared at drivers/usb/musb/musb_core.h:450)
drivers/usb/musb/musb_gadget.c:1127: warning: 'double_buffer_not_ok' is deprecated (declared at drivers/usb/musb/musb_core.h:450)
drivers/usb/musb/musb_host.c:599: warning: 'double_buffer_not_ok' is deprecated (declared at drivers/usb/musb/musb_core.h:450)
drivers/usb/musb/musb_host.c:774: warning: 'double_buffer_not_ok' is deprecated (declared at drivers/usb/musb/musb_core.h:450)
drivers/usb/otg/ab8500-usb.c:156: warning: 'event' may be used uninitialized in this function
drivers/video/aty/atyfb_base.c:169: warning: array subscript is above array bounds
drivers/video/aty/atyfb_base.c:154: warning: array subscript is above array bounds
drivers/video/aty/radeon_pm.c:1719: warning: 'radeon_reinitialize_M10' defined but not used
sound/soc/codecs/wm_hubs.c:120: warning: 'reg_r' may be used uninitialized in this function
sound/soc/codecs/wm_hubs.c:120: warning: 'reg_l' may be used uninitialized in this function
sound/soc/codecs/wm8994.c:58: warning: unused variable 'wm8994'
sound/soc/codecs/wm8996.c:1661: warning: 'bclk_reg' may be used uninitialized in this function
net/bluetooth/rfcomm/tty.c:218: warning: 'p' may be used uninitialized in this function
net/ceph/ceph_fs.c:33: warning: 'mode' may be used uninitialized in this function
include/net/netfilter/xt_log.h:50: warning: value computed is not used
include/net/netfilter/xt_log.h:50: warning: value computed is not used

The biggest one in there that I think we need to be concerned about is
the T() thing, which really needs to change to something more suitable
or move to a private header file which isn't exposed to the entire
kernel build.



More information about the linux-arm-kernel mailing list