Here are the build results from automated periodic testing.
The tree being built was arm-soc, found at:
http://git.kernel.org/cgit/linux/kernel/git/arm/arm-soc.git (for-next or to-build branch)
Topmost commit:
06c0773 [EXPERIMENTAL] try to get Linux to build with bare-metal toolchain
Build logs (stderr only) can be found at the following link (experimental):
http://arm-soc.lixom.net/buildlogs/arm-soc/v3.18-rc1-20-g06c0773/
Runtime: 57m 11s
Passed: 129 Failed: 0
Warnings: 2917
Section mismatches: 0
-------------------------------------------------------------------------------
Failed defconfigs:
-------------------------------------------------------------------------------
Errors:
Warnings: 1 arch/arm/mach-cns3xxx/pcie.c:313:1: warning: the frame size of 1080 bytes is larger than 1024 bytes [-Wframe-larger-than=] 1 buildall.arm.acs5k_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.acs5k_tiny_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.allmodconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.allnoconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.am200epdkit_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.ape6evm_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.armadillo800eva_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.assabet_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.at91_dt_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.at91rm9200_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.at91sam9260_9g20_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.at91sam9261_9g10_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.at91sam9263_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.at91sam9g45_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.at91sam9rl_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.at91x40_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.axm55xx_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.badge4_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.bcm2835_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.bcm_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.bockw_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.cerfcube_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.clps711x_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.cm_x2xx_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.cm_x300_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.cns3420vb_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.colibri_pxa270_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.colibri_pxa300_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.collie_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.corgi_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.davinci_all_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.dove_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.ebsa110_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.efm32_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.em_x270_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.ep93xx_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.eseries_pxa_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.exynos_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.ezx_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.footbridge_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.h3600_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.h5000_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.hackkit_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.hisi_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.imote2_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.imx_v4_v5_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.imx_v6_v7_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.integrator_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.iop13xx_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.iop32x_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.iop33x_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.ixp4xx_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.jornada720_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.keystone_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.koelsch_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.ks8695_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.kzm9g_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.lager_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.lart_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.lpc32xx_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.lpd270_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.lubbock_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.mackerel_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.magician_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.mainstone_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.marzen_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.mini2440_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.mmp2_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.moxart_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.msm_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.multi_lpae_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.multi_v5_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.multi_v7_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.mv78xx0_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.mvebu_v5_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.mvebu_v7_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.mxs_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.neponset_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.netwinder_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.netx_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.nhk8815_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.nuc910_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.nuc950_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.nuc960_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.omap1_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.omap2plus_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.orion5x_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.palmz72_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.pcm027_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.pleb_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.prima2_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.pxa168_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.pxa255-idp_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.pxa3xx_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.pxa910_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.qcom_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.raumfeld_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.realview_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.realview-smp_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.rpc_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.s3c2410_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.s3c6400_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.s5pv210_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.sama5_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.shannon_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.shmobile_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.simpad_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.socfpga_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.spear13xx_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.spear3xx_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.spear6xx_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.spitz_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.sunxi_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.tct_hammer_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.tegra_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.trizeps4_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.u300_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.u8500_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.versatile_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.vexpress_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.viper_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.vt8500_v6_v7_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.xcep_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.arm.zeus_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.powerpc.pasemi_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 buildall.powerpc.ppc64_defconfig.log.passed:<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp] 1 drivers/base/regmap/regcache.c:644:2: warning: format '%zu' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 1 drivers/base/regmap/regmap.c:1244:4: warning: format '%zu' expects argument of type 'size_t', but argument 5 has type 'unsigned int' [-Wformat=] 1 drivers/block/drbd/drbd_bitmap.c:482:0: warning: "BITS_PER_PAGE" redefined 1 drivers/block/drbd/drbd_bitmap.c:483:0: warning: "BITS_PER_PAGE_MASK" redefined 1 drivers/infiniband/hw/ehca/ehca_mrmw.c:1907:6: warning: 'prev_pgaddr' may be used uninitialized in this function [-Wmaybe-uninitialized] 1 drivers/infiniband/hw/ehca/ehca_mrmw.c:2430:5: warning: 'hret' may be used uninitialized in this function [-Wmaybe-uninitialized] 1 drivers/infiniband/hw/qib/qib_qp.c:44:0: warning: "BITS_PER_PAGE" redefined 1 drivers/infiniband/ulp/iser/iser_verbs.c:1171:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 1 drivers/infiniband/ulp/iser/iser_verbs.c:1172:31: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 1 drivers/infiniband/ulp/iser/iser_verbs.c:1198:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 1 drivers/infiniband/ulp/iser/iser_verbs.c:1203:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 1 drivers/misc/eeprom/at24.c:256:3: warning: format '%zu' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 1 drivers/misc/eeprom/at24.c:378:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 6 has type 'ssize_t' [-Wformat=] 1 drivers/misc/eeprom/at24.c:378:3: warning: format '%zu' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 1 drivers/misc/eeprom/at24.c:626:2: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 1 drivers/mtd/chips/cfi_cmdset_0020.c:651:1: warning: the frame size of 1208 bytes is larger than 1024 bytes [-Wframe-larger-than=] 1 drivers/net/ethernet/dec/tulip/tulip_core.c:101:2: warning: #warning Processor architecture undefined! [-Wcpp] 1 drivers/net/ethernet/intel/e100.c:1308:3: warning: format '%zu' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 1 drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:303:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 1 drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:307:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 1 drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:467:46: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 1 drivers/net/irda/sir_dev.c:543:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 4 has type 'size_t' [-Wformat=] 1 drivers/power/power_supply_sysfs.c:87:6: warning: format '%zd' expects argument of type 'signed size_t', but argument 4 has type 'ssize_t' [-Wformat=] 1 drivers/staging/bcm/CmHost.c:1503:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 1 drivers/staging/bcm/CmHost.c:1546:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 1 drivers/staging/bcm/CmHost.c:1564:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 1 drivers/staging/vt6655/device_main.c:2993:1: warning: the frame size of 1304 bytes is larger than 1024 bytes [-Wframe-larger-than=] 1 drivers/usb/gadget/udc/udc-xilinx.c:2136:34: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 1 drivers/usb/misc/adutux.c:569:4: warning: format '%Zd' expects argument of type 'signed size_t', but argument 5 has type 'size_t' [-Wformat=] 1 drivers/usb/misc/adutux.c:576:4: warning: format '%Zd' expects argument of type 'signed size_t', but argument 5 has type 'size_t' [-Wformat=] 1 drivers/usb/misc/adutux.c:582:4: warning: format '%Zd' expects argument of type 'signed size_t', but argument 5 has type 'size_t' [-Wformat=] 1 drivers/usb/misc/adutux.c:582:4: warning: format '%Zd' expects argument of type 'signed size_t', but argument 6 has type 'size_t' [-Wformat=] 1 drivers/usb/misc/adutux.c:582:4: warning: format '%Zd' expects argument of type 'signed size_t', but argument 7 has type 'size_t' [-Wformat=] 1 drivers/usb/misc/iowarrior.c:284:2: warning: format '%zd' expects argument of type 'signed size_t', but argument 5 has type 'size_t' [-Wformat=] 1 drivers/usb/misc/iowarrior.c:353:2: warning: format '%zd' expects argument of type 'signed size_t', but argument 5 has type 'size_t' [-Wformat=] 1 drivers/usb/misc/ldusb.c:500:5: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 1 drivers/usb/misc/ldusb.c:574:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 1 drivers/usb/misc/ldusb.c:575:2: warning: format '%zd' expects argument of type 'signed size_t', but argument 5 has type 'size_t' [-Wformat=] 1 drivers/usb/misc/ldusb.c:575:2: warning: format '%zd' expects argument of type 'signed size_t', but argument 6 has type 'size_t' [-Wformat=] 1 drivers/usb/renesas_usbhs/common.c:469:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 1 drivers/video/fbdev/sm501fb.c:245:2: warning: format '%zd' expects argument of type 'signed size_t', but argument 8 has type 'size_t' [-Wformat=] 1 fs/btrfs/extent_io.c:2166:13: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 1 fs/cifs/connect.c:2397:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'ssize_t' [-Wformat=] 1 fs/cifs/connect.c:2405:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'ssize_t' [-Wformat=] 1 fs/cifs/connect.c:2414:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'ssize_t' [-Wformat=] 1 fs/cifs/connect.c:2424:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'ssize_t' [-Wformat=] 1 fs/ext4/inode.c:2935:2: warning: format '%zd' expects argument of type 'signed size_t', but argument 6 has type 'ssize_t' [-Wformat=] 1 fs/ext4/page-io.c:162:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 6 has type 'ssize_t' [-Wformat=] 1 fs/jffs2/debug.c:138:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 6 has type 'size_t' [-Wformat=] 1 fs/jffs2/debug.c:785:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 6 has type 'size_t' [-Wformat=] 1 include/sound/control.h:212:2: warning: 'master_vol' may be used uninitialized in this function [-Wmaybe-uninitialized] 1 include/uapi/linux/swab.h:13:15: warning: integer overflow in expression [-Woverflow] 1 lib/cpumask.c:194:25: warning: the address of 'cpu_all_bits' will always evaluate as 'true' [-Waddress] 1 lib/lz4/lz4hc_compress.c:514:1: warning: the frame size of 1480 bytes is larger than 1024 bytes [-Wframe-larger-than=] 1 mm/percpu.c:895:3: warning: format '%zu' expects argument of type 'size_t', but argument 2 has type 'unsigned int' [-Wformat=] 1 mm/percpu.c:895:3: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 1 net/irda/af_irda.c:1636:2: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 1 net/irda/af_irda.c:1687:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 1 net/netfilter/nf_conntrack_ftp.c:301:2: warning: format '%Zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 1 net/rds/iw_rdma.c:200:1: warning: the frame size of 1056 bytes is larger than 1024 bytes [-Wframe-larger-than=] 1 sound/soc/soc-core.c:3886:2: warning: format '%Zu' expects argument of type 'size_t', but argument 5 has type 'unsigned int' [-Wformat=] 2 arch/arm/mm/cache-l2x0.c:168:13: warning: 'l2x0_cache_sync' defined but not used [-Wunused-function] 2 arch/arm/mm/cache-l2x0.c:185:13: warning: 'l2x0_flush_all' defined but not used [-Wunused-function] 2 arch/arm/mm/cache-l2x0.c:195:13: warning: 'l2x0_disable' defined but not used [-Wunused-function] 2 drivers/char/nwflash.c:129:10: warning: format '%zx' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 2 drivers/char/nwflash.c:538:13: warning: format '%X' expects argument of type 'unsigned int', but argument 2 has type 'long int' [-Wformat=] 2 drivers/char/nwflash.c:548:12: warning: format '%X' expects argument of type 'unsigned int', but argument 2 has type 'long int' [-Wformat=] 2 drivers/char/nwflash.c:569:11: warning: format '%X' expects argument of type 'unsigned int', but argument 2 has type 'long int' [-Wformat=] 2 drivers/dma/amba-pl08x.c:1042:4: warning: format '%zx' expects argument of type 'size_t', but argument 5 has type 'unsigned int' [-Wformat=] 2 drivers/dma/amba-pl08x.c:1068:4: warning: format '%zu' expects argument of type 'size_t', but argument 5 has type 'unsigned int' [-Wformat=] 2 drivers/dma/amba-pl08x.c:1095:5: warning: format '%zx' expects argument of type 'size_t', but argument 5 has type 'unsigned int' [-Wformat=] 2 drivers/dma/amba-pl08x.c:1095:5: warning: format '%zx' expects argument of type 'size_t', but argument 6 has type 'unsigned int' [-Wformat=] 2 drivers/dma/amba-pl08x.c:1111:5: warning: format '%zu' expects argument of type 'size_t', but argument 5 has type 'unsigned int' [-Wformat=] 2 drivers/dma/amba-pl08x.c:1122:5: warning: format '%zx' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 2 drivers/dma/amba-pl08x.c:1122:5: warning: format '%zx' expects argument of type 'size_t', but argument 5 has type 'unsigned int' [-Wformat=] 2 drivers/dma/amba-pl08x.c:1664:2: warning: format '%zd' expects argument of type 'signed size_t', but argument 5 has type 'size_t' [-Wformat=] 2 drivers/dma/amba-pl08x.c:1664:2: warning: format '%zd' expects argument of type 'signed size_t', but argument 6 has type 'size_t' [-Wformat=] 2 drivers/dma/amba-pl08x.c:967:3: warning: format '%zu' expects argument of type 'size_t', but argument 10 has type 'unsigned int' [-Wformat=] 2 drivers/net/ethernet/broadcom/tg3.c:12059:4: warning: 'start' may be used uninitialized in this function [-Wmaybe-uninitialized] 2 drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp] 2 drivers/scsi/ips.c:210:2: warning: #warning "This driver has only been tested on the x86/ia64/x86_64 platforms" [-Wcpp] 2 drivers/scsi/osst.c:3435:12: warning: format '%Zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 drivers/scsi/osst.c:3755:7: warning: format '%Zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 drivers/scsi/osst.c:3816:13: warning: format '%Zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 drivers/usb/gadget/legacy/inode.c:1933:2: warning: format '%Zd' expects argument of type 'signed size_t', but argument 4 has type 'ssize_t' [-Wformat=] 2 drivers/usb/misc/uss720.c:536:3: warning: format '%Zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 2 drivers/usb/misc/uss720.c:597:3: warning: format '%Zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 2 drivers/usb/misc/uss720.c:615:3: warning: format '%Zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 2 drivers/usb/misc/uss720.c:648:3: warning: format '%Zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 2 drivers/usb/serial/ti_usb_3410_5052.c:1493:3: warning: format '%zu' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 2 fs/cifs/cifssmb.c:1458:3: warning: format '%zu' expects argument of type 'size_t', but argument 5 has type 'unsigned int' [-Wformat=] 2 fs/cifs/cifssmb.c:1500:2: warning: format '%zu' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 2 fs/cifs/connect.c:2397:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 2 has type 'ssize_t' [-Wformat=] 2 fs/cifs/connect.c:2405:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 2 has type 'ssize_t' [-Wformat=] 2 fs/cifs/connect.c:2414:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 2 has type 'ssize_t' [-Wformat=] 2 fs/cifs/connect.c:2424:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 2 has type 'ssize_t' [-Wformat=] 2 fs/cifs/file.c:1653:2: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 fs/cifs/file.c:2893:4: warning: format '%zu' expects argument of type 'size_t', but argument 5 has type 'unsigned int' [-Wformat=] 2 fs/cifs/file.c:2900:4: warning: format '%zu' expects argument of type 'size_t', but argument 5 has type 'unsigned int' [-Wformat=] 2 fs/cifs/file.c:3347:4: warning: format '%zu' expects argument of type 'size_t', but argument 6 has type 'unsigned int' [-Wformat=] 2 fs/cifs/file.c:3354:4: warning: format '%zu' expects argument of type 'size_t', but argument 6 has type 'unsigned int' [-Wformat=] 2 fs/cifs/readdir.c:696:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 fs/cifs/transport.c:350:3: warning: format '%zu' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 2 fs/ecryptfs/crypto.c:1263:10: warning: format '%zd' expects argument of type 'signed size_t', but argument 2 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/crypto.c:1386:11: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'ssize_t' [-Wformat=] 2 fs/ecryptfs/crypto.c:1533:11: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/crypto.c:1606:9: warning: format '%zd' expects argument of type 'signed size_t', but argument 2 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/crypto.c:1631:10: warning: format '%zd' expects argument of type 'signed size_t', but argument 2 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/crypto.c:2001:11: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/crypto.c:2087:11: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/crypto.c:353:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/crypto.c:612:2: warning: format '%zd' expects argument of type 'signed size_t', but argument 5 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:1011:10: warning: format '%zd' expects argument of type 'signed size_t', but argument 4 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:1020:10: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:1030:10: warning: format '%zd' expects argument of type 'signed size_t', but argument 4 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:1058:10: warning: format '%zd' expects argument of type 'signed size_t', but argument 5 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:1083:10: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:1091:10: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:1297:3: warning: format '%td' expects argument of type 'ptrdiff_t', but argument 2 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:1431:3: warning: format '%td' expects argument of type 'ptrdiff_t', but argument 2 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:150:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:1589:3: warning: format '%td' expects argument of type 'ptrdiff_t', but argument 2 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:1735:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:1815:5: warning: format '%zd' expects argument of type 'signed size_t', but argument 4 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:1849:4: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:2075:10: warning: format '%td' expects argument of type 'ptrdiff_t', but argument 2 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:2075:10: warning: format '%td' expects argument of type 'ptrdiff_t', but argument 3 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:2135:10: warning: format '%td' expects argument of type 'ptrdiff_t', but argument 2 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:2135:10: warning: format '%td' expects argument of type 'ptrdiff_t', but argument 3 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:2238:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:2268:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 4 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:2278:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 4 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:2296:2: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:2307:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:2327:10: warning: format '%td' expects argument of type 'ptrdiff_t', but argument 2 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:2327:10: warning: format '%td' expects argument of type 'ptrdiff_t', but argument 3 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:381:10: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:408:10: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:408:10: warning: format '%zd' expects argument of type 'signed size_t', but argument 4 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:416:10: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:690:10: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:690:10: warning: format '%zd' expects argument of type 'signed size_t', but argument 4 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:699:10: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:728:10: warning: format '%zd' expects argument of type 'signed size_t', but argument 4 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:821:10: warning: format '%zd' expects argument of type 'signed size_t', but argument 4 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:830:10: warning: format '%zd' expects argument of type 'signed size_t', but argument 4 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:850:10: warning: format '%zd' expects argument of type 'signed size_t', but argument 5 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:936:10: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:970:4: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/keystore.c:970:4: warning: format '%zd' expects argument of type 'signed size_t', but argument 4 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/main.c:448:11: warning: format '%td' expects argument of type 'ptrdiff_t', but argument 3 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/main.c:466:11: warning: format '%td' expects argument of type 'ptrdiff_t', but argument 3 has type 'size_t' [-Wformat=] 2 fs/ecryptfs/super.c:169:7: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 fs/reiserfs/prints.c:151:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 4 has type 'size_t' [-Wformat=] 2 include/linux/dynamic_debug.h:78:3: warning: unsupported argument to '__builtin_return_address' 2 mm/nommu.c:1659:2: warning: format '%zx' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 2 net/irda/af_irda.c:1291:2: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 net/irda/af_irda.c:1327:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 net/irda/af_irda.c:1394:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 net/irda/af_irda.c:1394:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 4 has type 'size_t' [-Wformat=] 2 net/irda/af_irda.c:1554:2: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 net/irda/af_irda.c:1578:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 2 sound/core/pcm_memory.c:67:2: warning: format '%zu' expects argument of type 'size_t', but argument 7 has type 'unsigned int' [-Wformat=] 3 arch/arm/common/dmabounce.c:318:2: warning: format '%zx' expects argument of type 'size_t', but argument 7 has type 'unsigned int' [-Wformat=] 3 arch/arm/common/dmabounce.c:369:2: warning: format '%zx' expects argument of type 'size_t', but argument 6 has type 'unsigned int' [-Wformat=] 3 arch/arm/common/dmabounce.c:409:2: warning: format '%zx' expects argument of type 'size_t', but argument 6 has type 'unsigned int' [-Wformat=] 3 crypto/async_tx/async_memcpy.c:80:3: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 3 crypto/async_tx/async_memcpy.c:86:3: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 3 crypto/async_tx/async_pq.c:191:3: warning: format '%zu' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 3 crypto/async_tx/async_pq.c:238:2: warning: format '%zu' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 3 crypto/async_tx/async_pq.c:305:3: warning: format '%zu' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 3 crypto/async_tx/async_pq.c:369:3: warning: format '%zu' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 3 crypto/async_tx/async_raid6_recov.c:360:2: warning: format '%zu' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 3 crypto/async_tx/async_raid6_recov.c:436:2: warning: format '%zu' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 3 crypto/async_tx/async_xor.c:192:3: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 3 crypto/async_tx/async_xor.c:214:3: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 3 crypto/async_tx/async_xor.c:288:3: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 3 crypto/async_tx/async_xor.c:320:3: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 3 drivers/bluetooth/bcm203x.c:201:2: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 3 drivers/bluetooth/bcm203x.c:227:2: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 3 drivers/bluetooth/bfusb.c:672:2: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 3 drivers/net/usb/kaweth.c:406:4: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 3 drivers/parport/probe.c:181:5: warning: format '%zX' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 3 drivers/parport/probe.c:206:6: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 3 drivers/usb/host/ehci-q.c:373:6: warning: format '%zu' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 3 drivers/usb/host/ehci-q.c:373:6: warning: format '%zu' expects argument of type 'size_t', but argument 5 has type 'unsigned int' [-Wformat=] 3 drivers/usb/misc/legousbtower.c:676:2: warning: format '%Zd' expects argument of type 'signed size_t', but argument 5 has type 'size_t' [-Wformat=] 3 drivers/usb/misc/legousbtower.c:676:2: warning: format '%Zd' expects argument of type 'signed size_t', but argument 6 has type 'size_t' [-Wformat=] 3 fs/jffs2/summary.c:822:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 7 has type 'size_t' [-Wformat=] 4 arch/arm/mm/init.c:587:4: warning: format '%d' expects argument of type 'int', but argument 16 has type 'long int' [-Wformat=] 4 fs/cifs/cifssmb.c:1458:3: warning: format '%zu' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 4 fs/cifs/cifssmb.c:1500:2: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 4 fs/cifs/file.c:1653:2: warning: format '%zd' expects argument of type 'signed size_t', but argument 2 has type 'size_t' [-Wformat=] 4 fs/cifs/file.c:2893:4: warning: format '%zu' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 4 fs/cifs/file.c:2900:4: warning: format '%zu' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 4 fs/cifs/file.c:3347:4: warning: format '%zu' expects argument of type 'size_t', but argument 5 has type 'unsigned int' [-Wformat=] 4 fs/cifs/file.c:3354:4: warning: format '%zu' expects argument of type 'size_t', but argument 5 has type 'unsigned int' [-Wformat=] 4 fs/cifs/readdir.c:696:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 2 has type 'size_t' [-Wformat=] 4 fs/cifs/transport.c:350:3: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 5 fs/configfs/file.c:117:2: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 5 net/bluetooth/a2mp.c:391:2: warning: format '%zu' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 5 net/bluetooth/a2mp.c:957:2: warning: format '%zu' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 5 net/bluetooth/af_bluetooth.c:220:2: warning: format '%zu' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 5 net/bluetooth/af_bluetooth.c:295:2: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 5 net/bluetooth/hci_event.c:801:3: warning: format '%zu' expects argument of type 'size_t', but argument 2 has type 'unsigned int' [-Wformat=] 5 net/bluetooth/hci_event.c:801:3: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 5 net/bluetooth/l2cap_core.c:2140:2: warning: format '%zu' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 5 net/bluetooth/l2cap_core.c:2172:2: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 5 net/bluetooth/l2cap_core.c:2203:2: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 5 net/bluetooth/l2cap_core.c:2257:2: warning: format '%zu' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 5 net/bluetooth/l2cap_core.c:2324:2: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 5 net/bluetooth/l2cap_core.c:2366:2: warning: format '%zu' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 5 net/bluetooth/mgmt.c:5695:2: warning: format '%zu' expects argument of type 'size_t', but argument 2 has type 'unsigned int' [-Wformat=] 5 net/dns_resolver/dns_query.c:79:2: warning: format '%zu' expects argument of type 'size_t', but argument 8 has type 'unsigned int' [-Wformat=] 6 drivers/i2c/i2c-dev.c:156:2: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 6 drivers/i2c/i2c-dev.c:180:2: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 6 net/irda/irnet/irnet_ppp.c:288:3: warning: format '%Zd' expects argument of type 'signed size_t', but argument 4 has type 'size_t' [-Wformat=] 6 net/irda/irnet/irnet_ppp.c:331:7: warning: format '%Zd' expects argument of type 'signed size_t', but argument 3 has type 'ssize_t' [-Wformat=] 6 net/irda/irnet/irnet_ppp.c:54:3: warning: format '%Zd' expects argument of type 'signed size_t', but argument 4 has type 'size_t' [-Wformat=] 6 net/irda/irnet/irnet_ppp.c:571:3: warning: format '%Zd' expects argument of type 'signed size_t', but argument 5 has type 'size_t' [-Wformat=] 6 net/irda/irnet/irnet_ppp.c:595:3: warning: format '%Zd' expects argument of type 'signed size_t', but argument 5 has type 'size_t' [-Wformat=] 6 net/irda/irnet/irnet_ppp.c:69:3: warning: format '%Zd' expects argument of type 'signed size_t', but argument 4 has type 'size_t' [-Wformat=] 6 net/sunrpc/auth_gss/auth_gss.c:742:5: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'ssize_t' [-Wformat=] 7 lib/assoc_array.c:799:2: warning: format '%zu' expects argument of type 'size_t', but argument 2 has type 'unsigned int' [-Wformat=] 7 lib/assoc_array.c:899:3: warning: format '%zu' expects argument of type 'size_t', but argument 2 has type 'unsigned int' [-Wformat=] 7 security/keys/keyctl.c:1041:2: warning: format '%zu' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 7 security/keys/keyring.c:430:2: warning: format '%zu' expects argument of type 'size_t', but argument 5 has type 'unsigned int' [-Wformat=] 7 security/keys/keyring.c:430:2: warning: format '%zu' expects argument of type 'size_t', but argument 6 has type 'unsigned int' [-Wformat=] 7 security/keys/keyring.c:458:2: warning: format '%zu' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 7 security/keys/keyring.c:485:2: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 7 security/keys/request_key_auth.c:77:3: warning: format '%zu' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 7 security/keys/request_key.c:212:2: warning: format '%zu' expects argument of type 'size_t', but argument 5 has type 'unsigned int' [-Wformat=] 7 security/keys/request_key.c:524:2: warning: format '%zu' expects argument of type 'size_t', but argument 6 has type 'unsigned int' [-Wformat=] 9 drivers/scsi/scsi_lib.c:2994:10: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 9 drivers/scsi/scsi_lib.c:2994:10: warning: format '%zu' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 9 fs/nfsd/nfscache.c:601:5: warning: format '%Zd' expects argument of type 'signed size_t', but argument 2 has type 'size_t' [-Wformat=] 17 init/initramfs.c:635:5: warning: format '%zd' expects argument of type 'signed size_t', but argument 2 has type 'ssize_t' [-Wformat=] 22 fs/jffs2/erase.c:357:4: warning: format '%zx' expects argument of type 'size_t', but argument 2 has type 'unsigned int' [-Wformat=] 22 fs/jffs2/erase.c:402:4: warning: format '%zd' expects argument of type 'signed size_t', but argument 4 has type 'size_t' [-Wformat=] 22 fs/jffs2/erase.c:471:5: warning: format '%zd' expects argument of type 'signed size_t', but argument 4 has type 'size_t' [-Wformat=] 22 fs/jffs2/gc.c:1015:4: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 22 fs/jffs2/gc.c:683:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 5 has type 'size_t' [-Wformat=] 22 fs/jffs2/gc.c:934:5: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 22 fs/jffs2/nodemgmt.c:765:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 22 fs/jffs2/nodemgmt.c:788:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 22 fs/jffs2/read.c:47:3: warning: format '%zx' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 22 fs/jffs2/readinode.c:1032:4: warning: format '%zu' expects argument of type 'size_t', but argument 5 has type 'unsigned int' [-Wformat=] 22 fs/jffs2/readinode.c:1203:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 5 has type 'size_t' [-Wformat=] 22 fs/jffs2/readinode.c:69:3: warning: format '%zu' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 22 fs/jffs2/readinode.c:92:4: warning: format '%zd' expects argument of type 'signed size_t', but argument 5 has type 'size_t' [-Wformat=] 22 fs/jffs2/readinode.c:947:3: warning: format '%zu' expects argument of type 'size_t', but argument 5 has type 'unsigned int' [-Wformat=] 22 fs/jffs2/scan.c:105:3: warning: format '%zx' expects argument of type 'size_t', but argument 2 has type 'unsigned int' [-Wformat=] 22 fs/jffs2/scan.c:121:3: warning: format '%zu' expects argument of type 'size_t', but argument 2 has type 'unsigned int' [-Wformat=] 22 fs/jffs2/scan.c:128:3: warning: format '%zu' expects argument of type 'size_t', but argument 2 has type 'unsigned int' [-Wformat=] 22 fs/jffs2/scan.c:300:3: warning: format '%zx' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 22 fs/jffs2/wbuf.c:1048:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 22 fs/jffs2/wbuf.c:1048:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 4 has type 'size_t' [-Wformat=] 22 fs/jffs2/wbuf.c:1090:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 22 fs/jffs2/wbuf.c:1090:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 4 has type 'size_t' [-Wformat=] 22 fs/jffs2/wbuf.c:1115:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 22 fs/jffs2/wbuf.c:1115:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 4 has type 'size_t' [-Wformat=] 22 fs/jffs2/wbuf.c:645:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 2 has type 'size_t' [-Wformat=] 22 fs/jffs2/wbuf.c:971:4: warning: format '%zx' expects argument of type 'size_t', but argument 2 has type 'unsigned int' [-Wformat=] 22 fs/jffs2/write.c:113:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 5 has type 'size_t' [-Wformat=] 22 fs/jffs2/write.c:271:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 5 has type 'size_t' [-Wformat=] 24 net/sunrpc/svc.c:1235:4: warning: format '%Zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 26 net/core/flow.c:401:4: warning: format '%zu' expects argument of type 'size_t', but argument 2 has type 'unsigned int' [-Wformat=] 28 arch/arm/mm/init.c:587:4: warning: format '%d' expects argument of type 'int', but argument 28 has type 'long int' [-Wformat=] 30 arch/arm/mm/dma-mapping.c:376:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 2 has type 'size_t' [-Wformat=] 30 arch/arm/mm/dma-mapping.c:385:2: warning: format '%zx' expects argument of type 'size_t', but argument 2 has type 'unsigned int' [-Wformat=] 30 mm/slab_common.c:589:6: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 31 fs/buffer.c:256:4: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 31 mm/percpu.c:895:3: warning: format '%zu' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 31 mm/percpu.c:895:3: warning: format '%zu' expects argument of type 'size_t', but argument 5 has type 'unsigned int' [-Wformat=] 32 arch/arm/mm/init.c:587:4: warning: format '%d' expects argument of type 'int', but argument 19 has type 'long int' [-Wformat=] 32 arch/arm/mm/init.c:587:4: warning: format '%d' expects argument of type 'int', but argument 22 has type 'long int' [-Wformat=] 32 arch/arm/mm/init.c:587:4: warning: format '%d' expects argument of type 'int', but argument 25 has type 'long int' [-Wformat=] 32 lib/swiotlb.c:517:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'size_t' [-Wformat=] 32 lib/swiotlb.c:710:9: warning: format '%zu' expects argument of type 'size_t', but argument 2 has type 'unsigned int' [-Wformat=] 32 mm/dmapool.c:99:6: warning: format '%Zu' expects argument of type 'size_t', but argument 6 has type 'unsigned int' [-Wformat=] 32 mm/dmapool.c:99:6: warning: format '%Zu' expects argument of type 'size_t', but argument 7 has type 'unsigned int' [-Wformat=] 32 mm/percpu.c:1040:3: warning: format '%zu' expects argument of type 'size_t', but argument 2 has type 'unsigned int' [-Wformat=] 32 mm/percpu.c:1040:3: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 32 mm/percpu.c:1446:9: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] 32 mm/percpu.c:1446:9: warning: format '%zu' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Wformat=] 32 mm/percpu.c:1446:9: warning: format '%zu' expects argument of type 'size_t', but argument 5 has type 'unsigned int' [-Wformat=] 32 mm/percpu.c:1446:9: warning: format '%zu' expects argument of type 'size_t', but argument 6 has type 'unsigned int' [-Wformat=] 32 mm/percpu.c:1446:9: warning: format '%zu' expects argument of type 'size_t', but argument 7 has type 'unsigned int' [-Wformat=] 32 mm/percpu.c:1446:9: warning: format '%zu' expects argument of type 'size_t', but argument 8 has type 'unsigned int' [-Wformat=] 32 mm/percpu-km.c:107:10: warning: format '%zu' expects argument of type 'size_t', but argument 2 has type 'unsigned int' [-Wformat=] 53 drivers/base/dma-coherent.c:303:2: warning: initialization from incompatible pointer type 53 drivers/base/dma-coherent.c:303:2: warning: (near initialization for 'rmem_dma_ops.device_init') 669 include/linux/kernel.h:706:17: warning: comparison of distinct pointer types lacks a cast
Section mismatches:
On Friday 24 October 2014 03:30:06 Olof's autobuilder wrote:
Here are the build results from automated periodic testing.
The tree being built was arm-soc, found at:
http://git.kernel.org/cgit/linux/kernel/git/arm/arm-soc.git (for-next or to-build branch)
Topmost commit:
06c0773 [EXPERIMENTAL] try to get Linux to build with bare-metal toolchain
This appears to have fixed one problem but not the other:
Build logs (stderr only) can be found at the following link (experimental):
http://arm-soc.lixom.net/buildlogs/arm-soc/v3.18-rc1-20-g06c0773/
Runtime: 57m 11s
Passed: 129 Failed: 0
Warnings: 2917
Section mismatches: 0
Failed defconfigs:
Errors:
All build errors are gone now, after passing -D__linux__. That is good.
1 drivers/video/fbdev/sm501fb.c:245:2: warning: format '%zd' expects argument of type 'signed size_t', but argument 8 has type 'size_t' [-Wformat=] 1 mm/percpu.c:895:3: warning: format '%zu' expects argument of type 'size_t', but argument 2 has type 'unsigned int' [-Wformat=] 1 mm/percpu.c:895:3: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=]
The warnings are completely unchanged, still 249 unique warnings involving size_t, using this patch:
diff --git a/arch/arm/include/asm/types.h b/arch/arm/include/asm/types.h index a53cdb8f068c..baaa8739b0bf 100644 --- a/arch/arm/include/asm/types.h +++ b/arch/arm/include/asm/types.h @@ -16,7 +16,7 @@ * types, so 'linux/types.h' and 'stdint.h' can be safely included from the same * source file (provided that -ffreestanding is used). * - * int32_t uint32_t uintptr_t + * int32_t uint32_t/size_t uintptr_t * bare metal GCC long unsigned long unsigned int * glibc GCC int unsigned int unsigned int * kernel int unsigned int unsigned long @@ -29,7 +29,12 @@
#ifdef __UINT32_TYPE__ #undef __UINT32_TYPE__ -#define __UINT32_TYPE__ unsigned int +#define __UINT32_TYPE__ unsigned int +#endif + +#ifdef __SIZE_TYPE__ +#undef __SIZE_TYPE__ +#define __SIZE_TYPE__ unsigned int #endif
#ifdef __UINTPTR_TYPE__
Arnd
On Fri, Oct 24, 2014 at 12:49:50PM +0200, Arnd Bergmann wrote:
On Friday 24 October 2014 03:30:06 Olof's autobuilder wrote:
Here are the build results from automated periodic testing.
The tree being built was arm-soc, found at:
http://git.kernel.org/cgit/linux/kernel/git/arm/arm-soc.git (for-next or to-build branch)
Topmost commit:
06c0773 [EXPERIMENTAL] try to get Linux to build with bare-metal toolchain
This appears to have fixed one problem but not the other:
Build logs (stderr only) can be found at the following link (experimental):
http://arm-soc.lixom.net/buildlogs/arm-soc/v3.18-rc1-20-g06c0773/
Runtime: 57m 11s
Passed: 129 Failed: 0
Warnings: 2917
Section mismatches: 0
Failed defconfigs:
Errors:
All build errors are gone now, after passing -D__linux__. That is good.
1 drivers/video/fbdev/sm501fb.c:245:2: warning: format '%zd' expects argument of type 'signed size_t', but argument 8 has type 'size_t' [-Wformat=] 1 mm/percpu.c:895:3: warning: format '%zu' expects argument of type 'size_t', but argument 2 has type 'unsigned int' [-Wformat=] 1 mm/percpu.c:895:3: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=]
The warnings are completely unchanged, still 249 unique warnings involving size_t, using this patch:
That's probably because the compiler is expecting size_t to be typedef'd to __SIZE_TYPE__ and isn't expecting anyone to change it.
On 24 October 2014 12:52, Russell King - ARM Linux linux@arm.linux.org.uk wrote:
On Fri, Oct 24, 2014 at 12:49:50PM +0200, Arnd Bergmann wrote:
On Friday 24 October 2014 03:30:06 Olof's autobuilder wrote:
Here are the build results from automated periodic testing.
The tree being built was arm-soc, found at:
http://git.kernel.org/cgit/linux/kernel/git/arm/arm-soc.git (for-next or to-build branch)
Topmost commit:
06c0773 [EXPERIMENTAL] try to get Linux to build with bare-metal toolchain
This appears to have fixed one problem but not the other:
Build logs (stderr only) can be found at the following link (experimental):
http://arm-soc.lixom.net/buildlogs/arm-soc/v3.18-rc1-20-g06c0773/
Runtime: 57m 11s Passed: 129 Failed: 0 Warnings: 2917 Section mismatches: 0
Failed defconfigs:
Errors:
All build errors are gone now, after passing -D__linux__. That is good.
1 drivers/video/fbdev/sm501fb.c:245:2: warning: format '%zd' expects argument of type 'signed size_t', but argument 8 has type 'size_t' [-Wformat=] 1 mm/percpu.c:895:3: warning: format '%zu' expects argument of type 'size_t', but argument 2 has type 'unsigned int' [-Wformat=] 1 mm/percpu.c:895:3: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=]
The warnings are completely unchanged, still 249 unique warnings involving size_t, using this patch:
That's probably because the compiler is expecting size_t to be typedef'd to __SIZE_TYPE__ and isn't expecting anyone to change it.
Indeed, I wouldn't expect the printf format validation code inside GCC to care about the actual values of macros and typedefs. Could someone dump the builtin #define's of that compiler? For instance, my bare metal 4.9 BE GCC gives me
$ /usr/local/gcc-linaro-armeb-none-eabi-4.9-2014.06_linux/bin/armeb-none-eabi-gcc -E -dM - <<<"" |grep _TYPE__ #define __UINT_LEAST8_TYPE__ unsigned char #define __SIG_ATOMIC_TYPE__ int #define __UINTMAX_TYPE__ long long unsigned int #define __INT_FAST16_TYPE__ int #define __INT_FAST64_TYPE__ long long int #define __UINT8_TYPE__ unsigned char #define __INT_FAST32_TYPE__ int #define __UINT_LEAST16_TYPE__ short unsigned int #define __SIZE_TYPE__ unsigned int #define __INT8_TYPE__ signed char #define __INT_LEAST16_TYPE__ short int #define __UINT_LEAST64_TYPE__ long long unsigned int #define __UINT_FAST16_TYPE__ unsigned int #define __CHAR16_TYPE__ short unsigned int #define __INT_LEAST64_TYPE__ long long int #define __INT16_TYPE__ short int #define __INT_LEAST8_TYPE__ signed char #define __INTPTR_TYPE__ int #define __UINT16_TYPE__ short unsigned int #define __WCHAR_TYPE__ unsigned int #define __UINT_FAST64_TYPE__ long long unsigned int #define __INT64_TYPE__ long long int #define __WINT_TYPE__ unsigned int #define __UINT_LEAST32_TYPE__ long unsigned int #define __INT_LEAST32_TYPE__ long int #define __UINT64_TYPE__ long long unsigned int #define __INT_FAST8_TYPE__ int #define __UINT_FAST32_TYPE__ unsigned int #define __CHAR32_TYPE__ long unsigned int #define __INT32_TYPE__ long int #define __INTMAX_TYPE__ long long int #define __PTRDIFF_TYPE__ int #define __UINT32_TYPE__ long unsigned int #define __UINTPTR_TYPE__ unsigned int #define __UINT_FAST8_TYPE__ unsigned int
What is surprising here is that __SIZE_TYPE__ is int not long. Could we in fact be dealing with a 4.9 bare metal GCC bug here?
On Friday 24 October 2014 12:59:40 Ard Biesheuvel wrote:
On 24 October 2014 12:52, Russell King - ARM Linux linux@arm.linux.org.uk wrote:
On Fri, Oct 24, 2014 at 12:49:50PM +0200, Arnd Bergmann wrote:
1 drivers/video/fbdev/sm501fb.c:245:2: warning: format '%zd' expects argument of type 'signed size_t', but argument 8 has type 'size_t' [-Wformat=] 1 mm/percpu.c:895:3: warning: format '%zu' expects argument of type 'size_t', but argument 2 has type 'unsigned int' [-Wformat=] 1 mm/percpu.c:895:3: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=]
The warnings are completely unchanged, still 249 unique warnings involving size_t, using this patch:
That's probably because the compiler is expecting size_t to be typedef'd to __SIZE_TYPE__ and isn't expecting anyone to change it.
Indeed, I wouldn't expect the printf format validation code inside GCC to care about the actual values of macros and typedefs. Could someone dump the builtin #define's of that compiler? For instance, my bare metal 4.9 BE GCC gives me
$ /usr/local/gcc-linaro-armeb-none-eabi-4.9-2014.06_linux/bin/armeb-none-eabi-gcc -E -dM - <<<"" |grep _TYPE__ #define __UINT_LEAST8_TYPE__ unsigned char #define __SIG_ATOMIC_TYPE__ int #define __UINTMAX_TYPE__ long long unsigned int #define __INT_FAST16_TYPE__ int #define __INT_FAST64_TYPE__ long long int #define __UINT8_TYPE__ unsigned char #define __INT_FAST32_TYPE__ int #define __UINT_LEAST16_TYPE__ short unsigned int #define __SIZE_TYPE__ unsigned int #define __INT8_TYPE__ signed char #define __INT_LEAST16_TYPE__ short int #define __UINT_LEAST64_TYPE__ long long unsigned int #define __UINT_FAST16_TYPE__ unsigned int #define __CHAR16_TYPE__ short unsigned int #define __INT_LEAST64_TYPE__ long long int #define __INT16_TYPE__ short int #define __INT_LEAST8_TYPE__ signed char #define __INTPTR_TYPE__ int #define __UINT16_TYPE__ short unsigned int #define __WCHAR_TYPE__ unsigned int #define __UINT_FAST64_TYPE__ long long unsigned int #define __INT64_TYPE__ long long int #define __WINT_TYPE__ unsigned int #define __UINT_LEAST32_TYPE__ long unsigned int #define __INT_LEAST32_TYPE__ long int #define __UINT64_TYPE__ long long unsigned int #define __INT_FAST8_TYPE__ int #define __UINT_FAST32_TYPE__ unsigned int #define __CHAR32_TYPE__ long unsigned int #define __INT32_TYPE__ long int #define __INTMAX_TYPE__ long long int #define __PTRDIFF_TYPE__ int #define __UINT32_TYPE__ long unsigned int #define __UINTPTR_TYPE__ unsigned int #define __UINT_FAST8_TYPE__ unsigned int
What is surprising here is that __SIZE_TYPE__ is int not long. Could we in fact be dealing with a 4.9 bare metal GCC bug here?
This is what I get on every arm gcc version on my system, all glibc or uClibc targetted, compared to yours:
#define __UINT_FAST64_TYPE__ long long unsigned int #define __INT64_TYPE__ long long int #define __WINT_TYPE__ unsigned int -#define __UINT_LEAST32_TYPE__ long unsigned int -#define __INT_LEAST32_TYPE__ long int +#define __UINT_LEAST32_TYPE__ unsigned int +#define __INT_LEAST32_TYPE__ int #define __UINT64_TYPE__ long long unsigned int -#define __INT_FAST8_TYPE__ int +#define __INT_FAST8_TYPE__ signed char #define __UINT_FAST32_TYPE__ unsigned int -#define __CHAR32_TYPE__ long unsigned int -#define __INT32_TYPE__ long int +#define __CHAR32_TYPE__ unsigned int +#define __INT32_TYPE__ int #define __INTMAX_TYPE__ long long int #define __PTRDIFF_TYPE__ int -#define __UINT32_TYPE__ long unsigned int +#define __UINT32_TYPE__ unsigned int #define __UINTPTR_TYPE__ unsigned int -#define __UINT_FAST8_TYPE__ unsigned int +#define __UINT_FAST8_TYPE__ unsigned char
Arnd
On 24 October 2014 13:37, Arnd Bergmann arnd@arndb.de wrote:
On Friday 24 October 2014 12:59:40 Ard Biesheuvel wrote:
On 24 October 2014 12:52, Russell King - ARM Linux linux@arm.linux.org.uk wrote:
On Fri, Oct 24, 2014 at 12:49:50PM +0200, Arnd Bergmann wrote:
1 drivers/video/fbdev/sm501fb.c:245:2: warning: format '%zd' expects argument of type 'signed size_t', but argument 8 has type 'size_t' [-Wformat=] 1 mm/percpu.c:895:3: warning: format '%zu' expects argument of type 'size_t', but argument 2 has type 'unsigned int' [-Wformat=] 1 mm/percpu.c:895:3: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=]
The warnings are completely unchanged, still 249 unique warnings involving size_t, using this patch:
That's probably because the compiler is expecting size_t to be typedef'd to __SIZE_TYPE__ and isn't expecting anyone to change it.
Indeed, I wouldn't expect the printf format validation code inside GCC to care about the actual values of macros and typedefs. Could someone dump the builtin #define's of that compiler? For instance, my bare metal 4.9 BE GCC gives me
$ /usr/local/gcc-linaro-armeb-none-eabi-4.9-2014.06_linux/bin/armeb-none-eabi-gcc -E -dM - <<<"" |grep _TYPE__ #define __UINT_LEAST8_TYPE__ unsigned char #define __SIG_ATOMIC_TYPE__ int #define __UINTMAX_TYPE__ long long unsigned int #define __INT_FAST16_TYPE__ int #define __INT_FAST64_TYPE__ long long int #define __UINT8_TYPE__ unsigned char #define __INT_FAST32_TYPE__ int #define __UINT_LEAST16_TYPE__ short unsigned int #define __SIZE_TYPE__ unsigned int #define __INT8_TYPE__ signed char #define __INT_LEAST16_TYPE__ short int #define __UINT_LEAST64_TYPE__ long long unsigned int #define __UINT_FAST16_TYPE__ unsigned int #define __CHAR16_TYPE__ short unsigned int #define __INT_LEAST64_TYPE__ long long int #define __INT16_TYPE__ short int #define __INT_LEAST8_TYPE__ signed char #define __INTPTR_TYPE__ int #define __UINT16_TYPE__ short unsigned int #define __WCHAR_TYPE__ unsigned int #define __UINT_FAST64_TYPE__ long long unsigned int #define __INT64_TYPE__ long long int #define __WINT_TYPE__ unsigned int #define __UINT_LEAST32_TYPE__ long unsigned int #define __INT_LEAST32_TYPE__ long int #define __UINT64_TYPE__ long long unsigned int #define __INT_FAST8_TYPE__ int #define __UINT_FAST32_TYPE__ unsigned int #define __CHAR32_TYPE__ long unsigned int #define __INT32_TYPE__ long int #define __INTMAX_TYPE__ long long int #define __PTRDIFF_TYPE__ int #define __UINT32_TYPE__ long unsigned int #define __UINTPTR_TYPE__ unsigned int #define __UINT_FAST8_TYPE__ unsigned int
What is surprising here is that __SIZE_TYPE__ is int not long. Could we in fact be dealing with a 4.9 bare metal GCC bug here?
This is what I get on every arm gcc version on my system, all glibc or uClibc targetted, compared to yours:
#define __UINT_FAST64_TYPE__ long long unsigned int #define __INT64_TYPE__ long long int #define __WINT_TYPE__ unsigned int -#define __UINT_LEAST32_TYPE__ long unsigned int -#define __INT_LEAST32_TYPE__ long int +#define __UINT_LEAST32_TYPE__ unsigned int +#define __INT_LEAST32_TYPE__ int #define __UINT64_TYPE__ long long unsigned int -#define __INT_FAST8_TYPE__ int +#define __INT_FAST8_TYPE__ signed char #define __UINT_FAST32_TYPE__ unsigned int -#define __CHAR32_TYPE__ long unsigned int -#define __INT32_TYPE__ long int +#define __CHAR32_TYPE__ unsigned int +#define __INT32_TYPE__ int #define __INTMAX_TYPE__ long long int #define __PTRDIFF_TYPE__ int -#define __UINT32_TYPE__ long unsigned int +#define __UINT32_TYPE__ unsigned int #define __UINTPTR_TYPE__ unsigned int -#define __UINT_FAST8_TYPE__ unsigned int +#define __UINT_FAST8_TYPE__ unsigned char
So no __SiZE_TYPE__ then? That's surprising ...
On Friday 24 October 2014 13:50:05 Ard Biesheuvel wrote:
On 24 October 2014 13:37, Arnd Bergmann arnd@arndb.de wrote:
On Friday 24 October 2014 12:59:40 Ard Biesheuvel wrote:
On 24 October 2014 12:52, Russell King - ARM Linux linux@arm.linux.org.uk wrote:
On Fri, Oct 24, 2014 at 12:49:50PM +0200, Arnd Bergmann wrote:
1 drivers/video/fbdev/sm501fb.c:245:2: warning: format '%zd' expects argument of type 'signed size_t', but argument 8 has type 'size_t' [-Wformat=] 1 mm/percpu.c:895:3: warning: format '%zu' expects argument of type 'size_t', but argument 2 has type 'unsigned int' [-Wformat=] 1 mm/percpu.c:895:3: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=]
The warnings are completely unchanged, still 249 unique warnings involving size_t, using this patch:
That's probably because the compiler is expecting size_t to be typedef'd to __SIZE_TYPE__ and isn't expecting anyone to change it.
Indeed, I wouldn't expect the printf format validation code inside GCC to care about the actual values of macros and typedefs. Could someone dump the builtin #define's of that compiler? For instance, my bare metal 4.9 BE GCC gives me
$ /usr/local/gcc-linaro-armeb-none-eabi-4.9-2014.06_linux/bin/armeb-none-eabi-gcc -E -dM - <<<"" |grep _TYPE__ #define __UINT_LEAST8_TYPE__ unsigned char #define __SIG_ATOMIC_TYPE__ int #define __UINTMAX_TYPE__ long long unsigned int #define __INT_FAST16_TYPE__ int #define __INT_FAST64_TYPE__ long long int #define __UINT8_TYPE__ unsigned char #define __INT_FAST32_TYPE__ int #define __UINT_LEAST16_TYPE__ short unsigned int #define __SIZE_TYPE__ unsigned int #define __INT8_TYPE__ signed char #define __INT_LEAST16_TYPE__ short int #define __UINT_LEAST64_TYPE__ long long unsigned int #define __UINT_FAST16_TYPE__ unsigned int #define __CHAR16_TYPE__ short unsigned int #define __INT_LEAST64_TYPE__ long long int #define __INT16_TYPE__ short int #define __INT_LEAST8_TYPE__ signed char #define __INTPTR_TYPE__ int #define __UINT16_TYPE__ short unsigned int #define __WCHAR_TYPE__ unsigned int #define __UINT_FAST64_TYPE__ long long unsigned int #define __INT64_TYPE__ long long int #define __WINT_TYPE__ unsigned int #define __UINT_LEAST32_TYPE__ long unsigned int #define __INT_LEAST32_TYPE__ long int #define __UINT64_TYPE__ long long unsigned int #define __INT_FAST8_TYPE__ int #define __UINT_FAST32_TYPE__ unsigned int #define __CHAR32_TYPE__ long unsigned int #define __INT32_TYPE__ long int #define __INTMAX_TYPE__ long long int #define __PTRDIFF_TYPE__ int #define __UINT32_TYPE__ long unsigned int #define __UINTPTR_TYPE__ unsigned int #define __UINT_FAST8_TYPE__ unsigned int
What is surprising here is that __SIZE_TYPE__ is int not long. Could we in fact be dealing with a 4.9 bare metal GCC bug here?
This is what I get on every arm gcc version on my system, all glibc or uClibc targetted, compared to yours:
#define __UINT_FAST64_TYPE__ long long unsigned int #define __INT64_TYPE__ long long int #define __WINT_TYPE__ unsigned int -#define __UINT_LEAST32_TYPE__ long unsigned int -#define __INT_LEAST32_TYPE__ long int +#define __UINT_LEAST32_TYPE__ unsigned int +#define __INT_LEAST32_TYPE__ int #define __UINT64_TYPE__ long long unsigned int -#define __INT_FAST8_TYPE__ int +#define __INT_FAST8_TYPE__ signed char #define __UINT_FAST32_TYPE__ unsigned int -#define __CHAR32_TYPE__ long unsigned int -#define __INT32_TYPE__ long int +#define __CHAR32_TYPE__ unsigned int +#define __INT32_TYPE__ int #define __INTMAX_TYPE__ long long int #define __PTRDIFF_TYPE__ int -#define __UINT32_TYPE__ long unsigned int +#define __UINT32_TYPE__ unsigned int #define __UINTPTR_TYPE__ unsigned int -#define __UINT_FAST8_TYPE__ unsigned int +#define __UINT_FAST8_TYPE__ unsigned char
So no __SiZE_TYPE__ then? That's surprising ...
Sorry for being unclear here: this is only the diff between my version and yours, so everything that is not listed above __UINT_FAST64_TYPE__ is the same on both compilers.
Arnd
On 24 October 2014 15:27, Arnd Bergmann arnd@arndb.de wrote:
On Friday 24 October 2014 13:50:05 Ard Biesheuvel wrote:
On 24 October 2014 13:37, Arnd Bergmann arnd@arndb.de wrote:
On Friday 24 October 2014 12:59:40 Ard Biesheuvel wrote:
On 24 October 2014 12:52, Russell King - ARM Linux linux@arm.linux.org.uk wrote:
On Fri, Oct 24, 2014 at 12:49:50PM +0200, Arnd Bergmann wrote:
> 1 drivers/video/fbdev/sm501fb.c:245:2: warning: format '%zd' expects argument of type 'signed size_t', but argument 8 has type 'size_t' [-Wformat=] > 1 mm/percpu.c:895:3: warning: format '%zu' expects argument of type 'size_t', but argument 2 has type 'unsigned int' [-Wformat=] > 1 mm/percpu.c:895:3: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=]
The warnings are completely unchanged, still 249 unique warnings involving size_t, using this patch:
That's probably because the compiler is expecting size_t to be typedef'd to __SIZE_TYPE__ and isn't expecting anyone to change it.
Indeed, I wouldn't expect the printf format validation code inside GCC to care about the actual values of macros and typedefs. Could someone dump the builtin #define's of that compiler? For instance, my bare metal 4.9 BE GCC gives me
$ /usr/local/gcc-linaro-armeb-none-eabi-4.9-2014.06_linux/bin/armeb-none-eabi-gcc -E -dM - <<<"" |grep _TYPE__ #define __UINT_LEAST8_TYPE__ unsigned char #define __SIG_ATOMIC_TYPE__ int #define __UINTMAX_TYPE__ long long unsigned int #define __INT_FAST16_TYPE__ int #define __INT_FAST64_TYPE__ long long int #define __UINT8_TYPE__ unsigned char #define __INT_FAST32_TYPE__ int #define __UINT_LEAST16_TYPE__ short unsigned int #define __SIZE_TYPE__ unsigned int #define __INT8_TYPE__ signed char #define __INT_LEAST16_TYPE__ short int #define __UINT_LEAST64_TYPE__ long long unsigned int #define __UINT_FAST16_TYPE__ unsigned int #define __CHAR16_TYPE__ short unsigned int #define __INT_LEAST64_TYPE__ long long int #define __INT16_TYPE__ short int #define __INT_LEAST8_TYPE__ signed char #define __INTPTR_TYPE__ int #define __UINT16_TYPE__ short unsigned int #define __WCHAR_TYPE__ unsigned int #define __UINT_FAST64_TYPE__ long long unsigned int #define __INT64_TYPE__ long long int #define __WINT_TYPE__ unsigned int #define __UINT_LEAST32_TYPE__ long unsigned int #define __INT_LEAST32_TYPE__ long int #define __UINT64_TYPE__ long long unsigned int #define __INT_FAST8_TYPE__ int #define __UINT_FAST32_TYPE__ unsigned int #define __CHAR32_TYPE__ long unsigned int #define __INT32_TYPE__ long int #define __INTMAX_TYPE__ long long int #define __PTRDIFF_TYPE__ int #define __UINT32_TYPE__ long unsigned int #define __UINTPTR_TYPE__ unsigned int #define __UINT_FAST8_TYPE__ unsigned int
What is surprising here is that __SIZE_TYPE__ is int not long. Could we in fact be dealing with a 4.9 bare metal GCC bug here?
This is what I get on every arm gcc version on my system, all glibc or uClibc targetted, compared to yours:
#define __UINT_FAST64_TYPE__ long long unsigned int #define __INT64_TYPE__ long long int #define __WINT_TYPE__ unsigned int -#define __UINT_LEAST32_TYPE__ long unsigned int -#define __INT_LEAST32_TYPE__ long int +#define __UINT_LEAST32_TYPE__ unsigned int +#define __INT_LEAST32_TYPE__ int #define __UINT64_TYPE__ long long unsigned int -#define __INT_FAST8_TYPE__ int +#define __INT_FAST8_TYPE__ signed char #define __UINT_FAST32_TYPE__ unsigned int -#define __CHAR32_TYPE__ long unsigned int -#define __INT32_TYPE__ long int +#define __CHAR32_TYPE__ unsigned int +#define __INT32_TYPE__ int #define __INTMAX_TYPE__ long long int #define __PTRDIFF_TYPE__ int -#define __UINT32_TYPE__ long unsigned int +#define __UINT32_TYPE__ unsigned int #define __UINTPTR_TYPE__ unsigned int -#define __UINT_FAST8_TYPE__ unsigned int +#define __UINT_FAST8_TYPE__ unsigned char
So no __SiZE_TYPE__ then? That's surprising ...
Sorry for being unclear here: this is only the diff between my version and yours, so everything that is not listed above __UINT_FAST64_TYPE__ is the same on both compilers.
Ah, ok. So apparently, size_t is not ambiguous between bare metal and glibc GCC, so we are looking at something else here.
On Fri, Oct 24, 2014 at 03:41:48PM +0200, Ard Biesheuvel wrote:
On 24 October 2014 15:27, Arnd Bergmann arnd@arndb.de wrote:
On Friday 24 October 2014 13:50:05 Ard Biesheuvel wrote:
On 24 October 2014 13:37, Arnd Bergmann arnd@arndb.de wrote:
On Friday 24 October 2014 12:59:40 Ard Biesheuvel wrote:
On 24 October 2014 12:52, Russell King - ARM Linux linux@arm.linux.org.uk wrote:
On Fri, Oct 24, 2014 at 12:49:50PM +0200, Arnd Bergmann wrote: > > 1 drivers/video/fbdev/sm501fb.c:245:2: warning: format '%zd' expects argument of type 'signed size_t', but argument 8 has type 'size_t' [-Wformat=] > > 1 mm/percpu.c:895:3: warning: format '%zu' expects argument of type 'size_t', but argument 2 has type 'unsigned int' [-Wformat=] > > 1 mm/percpu.c:895:3: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'unsigned int' [-Wformat=] > > The warnings are completely unchanged, still 249 unique warnings involving size_t, > using this patch:
That's probably because the compiler is expecting size_t to be typedef'd to __SIZE_TYPE__ and isn't expecting anyone to change it.
Indeed, I wouldn't expect the printf format validation code inside GCC to care about the actual values of macros and typedefs. Could someone dump the builtin #define's of that compiler? For instance, my bare metal 4.9 BE GCC gives me
$ /usr/local/gcc-linaro-armeb-none-eabi-4.9-2014.06_linux/bin/armeb-none-eabi-gcc -E -dM - <<<"" |grep _TYPE__ #define __UINT_LEAST8_TYPE__ unsigned char #define __SIG_ATOMIC_TYPE__ int #define __UINTMAX_TYPE__ long long unsigned int #define __INT_FAST16_TYPE__ int #define __INT_FAST64_TYPE__ long long int #define __UINT8_TYPE__ unsigned char #define __INT_FAST32_TYPE__ int #define __UINT_LEAST16_TYPE__ short unsigned int #define __SIZE_TYPE__ unsigned int #define __INT8_TYPE__ signed char #define __INT_LEAST16_TYPE__ short int #define __UINT_LEAST64_TYPE__ long long unsigned int #define __UINT_FAST16_TYPE__ unsigned int #define __CHAR16_TYPE__ short unsigned int #define __INT_LEAST64_TYPE__ long long int #define __INT16_TYPE__ short int #define __INT_LEAST8_TYPE__ signed char #define __INTPTR_TYPE__ int #define __UINT16_TYPE__ short unsigned int #define __WCHAR_TYPE__ unsigned int #define __UINT_FAST64_TYPE__ long long unsigned int #define __INT64_TYPE__ long long int #define __WINT_TYPE__ unsigned int #define __UINT_LEAST32_TYPE__ long unsigned int #define __INT_LEAST32_TYPE__ long int #define __UINT64_TYPE__ long long unsigned int #define __INT_FAST8_TYPE__ int #define __UINT_FAST32_TYPE__ unsigned int #define __CHAR32_TYPE__ long unsigned int #define __INT32_TYPE__ long int #define __INTMAX_TYPE__ long long int #define __PTRDIFF_TYPE__ int #define __UINT32_TYPE__ long unsigned int #define __UINTPTR_TYPE__ unsigned int #define __UINT_FAST8_TYPE__ unsigned int
What is surprising here is that __SIZE_TYPE__ is int not long. Could we in fact be dealing with a 4.9 bare metal GCC bug here?
This is what I get on every arm gcc version on my system, all glibc or uClibc targetted, compared to yours:
#define __UINT_FAST64_TYPE__ long long unsigned int #define __INT64_TYPE__ long long int #define __WINT_TYPE__ unsigned int -#define __UINT_LEAST32_TYPE__ long unsigned int -#define __INT_LEAST32_TYPE__ long int +#define __UINT_LEAST32_TYPE__ unsigned int +#define __INT_LEAST32_TYPE__ int #define __UINT64_TYPE__ long long unsigned int -#define __INT_FAST8_TYPE__ int +#define __INT_FAST8_TYPE__ signed char #define __UINT_FAST32_TYPE__ unsigned int -#define __CHAR32_TYPE__ long unsigned int -#define __INT32_TYPE__ long int +#define __CHAR32_TYPE__ unsigned int +#define __INT32_TYPE__ int #define __INTMAX_TYPE__ long long int #define __PTRDIFF_TYPE__ int -#define __UINT32_TYPE__ long unsigned int +#define __UINT32_TYPE__ unsigned int #define __UINTPTR_TYPE__ unsigned int -#define __UINT_FAST8_TYPE__ unsigned int +#define __UINT_FAST8_TYPE__ unsigned char
So no __SiZE_TYPE__ then? That's surprising ...
Sorry for being unclear here: this is only the diff between my version and yours, so everything that is not listed above __UINT_FAST64_TYPE__ is the same on both compilers.
Ah, ok. So apparently, size_t is not ambiguous between bare metal and glibc GCC, so we are looking at something else here.
GCC complains about the format specifier being wrong. %zu/%zd are the correct specifiers for variables of type size_t/ssize_t, so wherever a size_t or ssize_t is used as parameter it should have a corresponding %zu or %zd specifier.
Why not just fix it properly instead of mucking about with the size_t typedef?
Thierry
On Thursday 06 November 2014 12:49:22 Thierry Reding wrote:
GCC complains about the format specifier being wrong. %zu/%zd are the correct specifiers for variables of type size_t/ssize_t, so wherever a size_t or ssize_t is used as parameter it should have a corresponding %zu or %zd specifier.
Why not just fix it properly instead of mucking about with the size_t typedef?
Yes, but where are %zu and %zd implemented in gcc? I've looked but couldn't find it. For all I can tell is that gcc's own interpretation of %z doesn't match its definition of __SIZE_TYPE__ when building for bare-metal.
Arnd
On Thu, Nov 06, 2014 at 12:56:27PM +0100, Arnd Bergmann wrote:
On Thursday 06 November 2014 12:49:22 Thierry Reding wrote:
GCC complains about the format specifier being wrong. %zu/%zd are the correct specifiers for variables of type size_t/ssize_t, so wherever a size_t or ssize_t is used as parameter it should have a corresponding %zu or %zd specifier.
Why not just fix it properly instead of mucking about with the size_t typedef?
Yes, but where are %zu and %zd implemented in gcc? I've looked but couldn't find it. For all I can tell is that gcc's own interpretation of %z doesn't match its definition of __SIZE_TYPE__ when building for bare-metal.
I think the code you're looking for is gcc/c-family/c-format.c in function format_type_warning() (and its callers). Now my understanding of GCC internals is fairly limited, but what I think is happening is that the matching happens on the exact typedef, so even if size_t is typedef'd to unsigned int and the argument is of type unsigned int the check will still fail and cause the warning.
Interestingly I can't seem to reproduce these warnings, neither with the native compiler on my system nor a 4.9.0 ARM cross-compiler. I've used the attached source file as a test case (derived from the code at line 1244 in drivers/regmap/regmap.c, which causes the warning in one of your logs). Can you verify that the same warning happens when you run your compiler on that? I've tried compiling with something like this:
$ gcc -Wall -Wextra -Wformat=2 -c test.c
I don't think all of these are necessary, plain -Wformat /should/ be enough.
It's weird because both operands of the division are size_t, so I'm guessing the compiler looses the type information at some point.
Thierry
On 6 November 2014 13:59, Thierry Reding thierry.reding@gmail.com wrote:
On Thu, Nov 06, 2014 at 12:56:27PM +0100, Arnd Bergmann wrote:
On Thursday 06 November 2014 12:49:22 Thierry Reding wrote:
GCC complains about the format specifier being wrong. %zu/%zd are the correct specifiers for variables of type size_t/ssize_t, so wherever a size_t or ssize_t is used as parameter it should have a corresponding %zu or %zd specifier.
Why not just fix it properly instead of mucking about with the size_t typedef?
Yes, but where are %zu and %zd implemented in gcc? I've looked but couldn't find it. For all I can tell is that gcc's own interpretation of %z doesn't match its definition of __SIZE_TYPE__ when building for bare-metal.
I think the code you're looking for is gcc/c-family/c-format.c in function format_type_warning() (and its callers). Now my understanding of GCC internals is fairly limited, but what I think is happening is that the matching happens on the exact typedef, so even if size_t is typedef'd to unsigned int and the argument is of type unsigned int the check will still fail and cause the warning.
Yes, that is what it looks like.
Interestingly I can't seem to reproduce these warnings, neither with the native compiler on my system nor a 4.9.0 ARM cross-compiler. I've used the attached source file as a test case (derived from the code at line 1244 in drivers/regmap/regmap.c, which causes the warning in one of your
The mystery is that arm-linux-gnueabihf-gcc does not produce the warning, whereas Olof's arm-none-eabi-gcc does (built from the same source version, as far as we can tell)
logs). Can you verify that the same warning happens when you run your compiler on that? I've tried compiling with something like this:
$ gcc -Wall -Wextra -Wformat=2 -c test.c
I don't think all of these are necessary, plain -Wformat /should/ be enough.
It's weird because both operands of the division are size_t, so I'm guessing the compiler looses the type information at some point.
I have tried this with the BE bare metal compiler I have on my system, and it did not produce a warning. (gcc-linaro-armeb-none-eabi-4.9-2014.06)
On Thu, Nov 06, 2014 at 02:08:37PM +0100, Ard Biesheuvel wrote:
On 6 November 2014 13:59, Thierry Reding thierry.reding@gmail.com wrote:
On Thu, Nov 06, 2014 at 12:56:27PM +0100, Arnd Bergmann wrote:
On Thursday 06 November 2014 12:49:22 Thierry Reding wrote:
GCC complains about the format specifier being wrong. %zu/%zd are the correct specifiers for variables of type size_t/ssize_t, so wherever a size_t or ssize_t is used as parameter it should have a corresponding %zu or %zd specifier.
Why not just fix it properly instead of mucking about with the size_t typedef?
Yes, but where are %zu and %zd implemented in gcc? I've looked but couldn't find it. For all I can tell is that gcc's own interpretation of %z doesn't match its definition of __SIZE_TYPE__ when building for bare-metal.
I think the code you're looking for is gcc/c-family/c-format.c in function format_type_warning() (and its callers). Now my understanding of GCC internals is fairly limited, but what I think is happening is that the matching happens on the exact typedef, so even if size_t is typedef'd to unsigned int and the argument is of type unsigned int the check will still fail and cause the warning.
Yes, that is what it looks like.
Interestingly I can't seem to reproduce these warnings, neither with the native compiler on my system nor a 4.9.0 ARM cross-compiler. I've used the attached source file as a test case (derived from the code at line 1244 in drivers/regmap/regmap.c, which causes the warning in one of your
The mystery is that arm-linux-gnueabihf-gcc does not produce the warning, whereas Olof's arm-none-eabi-gcc does (built from the same source version, as far as we can tell)
logs). Can you verify that the same warning happens when you run your compiler on that? I've tried compiling with something like this:
$ gcc -Wall -Wextra -Wformat=2 -c test.c
I don't think all of these are necessary, plain -Wformat /should/ be enough.
It's weird because both operands of the division are size_t, so I'm guessing the compiler looses the type information at some point.
I have tried this with the BE bare metal compiler I have on my system, and it did not produce a warning. (gcc-linaro-armeb-none-eabi-4.9-2014.06)
Interesting. Can you still reproduce the build warnings from Olof's logs if you run that compiler on the kernel? It'd be nice to trigger this in a minimal test case since it seems to be something that needs to be fixed in GCC.
Thierry
On Thursday 06 November 2014 14:08:37 Ard Biesheuvel wrote:
On 6 November 2014 13:59, Thierry Reding thierry.reding@gmail.com wrote:
On Thu, Nov 06, 2014 at 12:56:27PM +0100, Arnd Bergmann wrote:
On Thursday 06 November 2014 12:49:22 Thierry Reding wrote:
GCC complains about the format specifier being wrong. %zu/%zd are the correct specifiers for variables of type size_t/ssize_t, so wherever a size_t or ssize_t is used as parameter it should have a corresponding %zu or %zd specifier.
Why not just fix it properly instead of mucking about with the size_t typedef?
Yes, but where are %zu and %zd implemented in gcc? I've looked but couldn't find it. For all I can tell is that gcc's own interpretation of %z doesn't match its definition of __SIZE_TYPE__ when building for bare-metal.
I think the code you're looking for is gcc/c-family/c-format.c in function format_type_warning() (and its callers). Now my understanding of GCC internals is fairly limited, but what I think is happening is that the matching happens on the exact typedef, so even if size_t is typedef'd to unsigned int and the argument is of type unsigned int the check will still fail and cause the warning.
Yes, that is what it looks like.
My reading is different, given this comment:
/* If ARG_TYPE is a typedef with a misleading name (for example, size_t but not the standard size_t expected by printf %zu), avoid printing the typedef name. */
I think what happens is that %z accepts size_t only when it is defined to the right type, but prints a message with the raw scalar type if the typedef does not match what %z expects.
Interestingly I can't seem to reproduce these warnings, neither with the native compiler on my system nor a 4.9.0 ARM cross-compiler. I've used the attached source file as a test case (derived from the code at line 1244 in drivers/regmap/regmap.c, which causes the warning in one of your
The mystery is that arm-linux-gnueabihf-gcc does not produce the warning, whereas Olof's arm-none-eabi-gcc does (built from the same source version, as far as we can tell)
Right, and as Russell pointed out, that compiler has other issues as well: the size of 'enum' is different and it does not define the __linux__ macro.
Arnd
On Thu, Nov 06, 2014 at 12:49:22PM +0100, Thierry Reding wrote:
On Fri, Oct 24, 2014 at 03:41:48PM +0200, Ard Biesheuvel wrote:
Ah, ok. So apparently, size_t is not ambiguous between bare metal and glibc GCC, so we are looking at something else here.
GCC complains about the format specifier being wrong. %zu/%zd are the correct specifiers for variables of type size_t/ssize_t, so wherever a size_t or ssize_t is used as parameter it should have a corresponding %zu or %zd specifier.
Why not just fix it properly instead of mucking about with the size_t typedef?
We haven't been mucking with the size_t typedef. We've been trying to find out /why/ GCC 4.9 complains.
For the n'th time, what we know is:
- gcc 4.9 bare metal seems to define __SIZE_TYPE__ to be unsigned int. - gcc 4.9's stddef.h typedef's size_t to __SIZE_TYPE__. - therefore, size_t is typedef'd from unsigned int. - the kernel typedefs __kernel_size_t from unsigned int. - the kernel typedefs size_t from __kernel_size_t.
So, in theory, size_t in the kernel is unsigned int too. However, GCC 4.9 issues loads of complains when %zu or %zd is used with a size_t variable in the kernel.
The question that we've been trying to work out is... why is this? Right now, it seems no one has an answer for this question. We don't know whether it's a compiler bug or not - and Arnd has explained why not.
On Thu, Nov 06, 2014 at 01:28:28PM +0000, Russell King - ARM Linux wrote:
For the n'th time, what we know is:
- gcc 4.9 bare metal seems to define __SIZE_TYPE__ to be unsigned int.
- gcc 4.9's stddef.h typedef's size_t to __SIZE_TYPE__.
- therefore, size_t is typedef'd from unsigned int.
- the kernel typedefs __kernel_size_t from unsigned int.
- the kernel typedefs size_t from __kernel_size_t.
So, in theory, size_t in the kernel is unsigned int too. However, GCC 4.9 issues loads of complains when %zu or %zd is used with a size_t variable in the kernel.
The question that we've been trying to work out is... why is this? Right now, it seems no one has an answer for this question. We don't know whether it's a compiler bug or not - and Arnd has explained why not.
Isn't this GCC tracking the literal use of size_t in addition to the actual definition and warning based on that information for the size_t specific formatting. Seems weird that it'd only affect a freestanding build though.
kernel-build-reports@lists.linaro.org