On Wednesday, December 14, 2016 5:45:39 PM CET Mark Brown wrote: > On Wed, Dec 14, 2016 at 05:06:09PM +0100, Ralf Baechle wrote: > > On Wed, Dec 14, 2016 at 01:52:14PM +0000, Mark Brown wrote: > > > On Wed, Dec 14, 2016 at 12:39:18AM -0800, kernelci.org bot wrote: > > > > > mips: gcc version 5.3.0 (Sourcery CodeBench Lite 2016.05-8) > > > > These MIPS builds have been failing in kernelci ever since MIPS was > > > added. This means that we've got a constant level of noise in the > > > results which makes them less useful for everyone - people get used to > > > ignoring errors. Is there any plan to get these fixed? > > > I wonder if these are also toolchain-related issues. allnoconfig and > > tinyconfig do build fine for me with GCC 6.1.0 and binutils 2.26.20160125. > > > generic_defconfig requires mkimage of uboot-tools or it will fail like this: > > > ITB arch/mips/boot/vmlinux.gz.itb > > "mkimage" command not found - U-Boot images will not be built > > arch/mips/boot/Makefile:159: recipe for target 'arch/mips/boot/vmlinux.gz.itb' failed > > make[1]: *** [arch/mips/boot/vmlinux.gz.itb] Error 1 > > arch/mips/Makefile:365: recipe for target 'vmlinux.gz.itb' failed > > make: *** [vmlinux.gz.itb] Error 2 > > Ah, you don't have a separate uImage target? > > > What binutils are you using and can you send me the build errors messages? > > You can see logs for all the trees we build via the web interface: > > https://kernelci.org/job/ > > I don't have access to the builders to check the binutils version > without going and finding/downloading the CodeSourcery release. Where > did your toolchain come from, is there something specific recommended > for MIPS? > >From the web interface: | Errors Summary | | 2 arch/mips/include/asm/mach-generic/spaces.h:28:0: error: "CAC_BASE" redefined [-Werror] | 1 {standard input}:191: Error: number (0x9000000080000000) larger than 32 bits | 1 {standard input}:164: Error: number (0x9000000080000000) larger than 32 bits | 1 {standard input}:154: Error: number (0x9000000080000000) larger than 32 bits | 1 {standard input}:139: Error: number (0x9000000080000000) larger than 32 bits | 1 {standard input}:131: Error: number (0x9000000080000000) larger than 32 bits This already got better than it was. I haven't analyzed them at all, but I had not expected them to be toolchain related. The first one is for ip27_defconfig, the other ones are for allnoconfig/tinyconfig. The allmodconfig build had a lot more warnings, and was disabled in kernelci a long time ago. | Warnings Summary | | 2 arch/mips/configs/ip22_defconfig:71:warning: symbol value 'm' invalid for NF_CT_PROTO_UDPLITE | 2 arch/mips/configs/ip22_defconfig:70:warning: symbol value 'm' invalid for NF_CT_PROTO_DCCP Lots of these, from defconfigs that need a trivial update 1 net/wireless/nl80211.c:4389:1: warning: the frame size of 2240 bytes is larger than 2048 bytes [-Wframe-larger-than=] 1 net/wireless/nl80211.c:1895:1: warning: the frame size of 3776 bytes is larger than 2048 bytes [-Wframe-larger-than=] 1 net/wireless/nl80211.c:1410:1: warning: the frame size of 2208 bytes is larger than 2048 bytes [-Wframe-larger-than=] 1 net/bridge/br_netlink.c:1282:1: warning: the frame size of 2544 bytes is larger than 2048 bytes [-Wframe-larger-than=] 1 drivers/net/ethernet/ti/cpmac.c:1213:2: warning: #warning FIXME: unhardcode gpio&reset bits [-Wcpp] 1 drivers/net/ethernet/hisilicon/hns/hns_dsaf_xgmac.c:748:1: warning: the frame size of 4704 bytes is larger than 2048 bytes [-Wframe-larger-than=] 1 drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c:970:1: warning: the frame size of 2784 bytes is larger than 2048 bytes [-Wframe-larger-than=] 1 drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c:1021:1: warning: the frame size of 2208 bytes is larger than 2048 bytes [-Wframe-larger-than=] 1 drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c:621:1: warning: the frame size of 3616 bytes is larger than 2048 bytes [-Wframe-larger-than=] 1 drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c:2753:1: warning: the frame size of 10768 bytes is larger than 2048 bytes [-Wframe-larger-than=] 1 drivers/net/ethernet/hisilicon/hns/hns_dsaf_gmac.c:641:1: warning: the frame size of 5728 bytes is larger than 2048 bytes [-Wframe-larger-than=] 1 drivers/net/ethernet/hisilicon/hns/hns_dsaf_gmac.c:419:1: warning: the frame size of 2912 bytes is larger than 2048 bytes [-Wframe-larger-than=] 1 drivers/net/ethernet/broadcom/bcm63xx_enet.c:1130:3: warning: 'phydev' may be used uninitialized in this function [-Wmaybe-uninitialized] 1 drivers/mtd/maps/pmcmsp-flash.c:149:30: warning: passing argument 1 of 'strncpy' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] | 1 crypto/wp512.c:987:1: warning: the frame size of 1568 bytes is larger than 1024 bytes [-Wframe-larger-than=] | 1 crypto/wp512.c:987:1: warning: the frame size of 1504 bytes is larger than 1024 bytes [-Wframe-larger-than=] | 1 crypto/wp512.c:987:1: warning: the frame size of 1264 bytes is larger than 1024 bytes [-Wframe-larger-than=] | 1 crypto/serpent_generic.c:436:1: warning: the frame size of 1472 bytes is larger than 1024 bytes [-Wframe-larger-than=] | 1 crypto/serpent_generic.c:436:1: warning: the frame size of 1456 bytes is larger than 1024 bytes [-Wframe-larger-than=] I've played around with these, it's possibly a gcc bug. This fixes one of them, but breaks older toolchains that didn't have those options: @@ -779,7 +779,10 @@ static const u64 rc[WHIRLPOOL_ROUNDS] = { * The core Whirlpool transform. */ -static void wp512_process_buffer(struct wp512_ctx *wctx) { +static void +__attribute__((optimize("-fno-sched-critical-path-heuristic"))) +__attribute__((optimize("-fno-sched-dep-count-heuristic"))) +wp512_process_buffer(struct wp512_ctx *wctx) { int i, r; u64 K[8]; /* the round key */ u64 block[8]; /* mu(buffer) */ | 1 arch/mips/ralink/timer.c:74:13: warning: 'rt_timer_free' defined but not used [-Wunused-function] | 1 arch/mips/ralink/timer.c:104:13: warning: 'rt_timer_disable' defined but not used [-Wunused-function] | 1 arch/mips/ralink/rt305x.c:92:13: warning: 'rt305x_wdt_reset' defined but not used [-Wunused-function] | 1 arch/mips/ralink/prom.c:70:2: warning: 'argv' is used uninitialized in this function [-Wuninitialized] | 1 arch/mips/ralink/prom.c:70:2: warning: 'argc' is used uninitialized in this function [-Wuninitialized] These are obvious bugs, fix should be trivial | 1 arch/mips/netlogic/common/smpboot.S:63: Warning: dla used to load 32-bit register; recommend using la instead | 1 arch/mips/netlogic/common/smpboot.S:62: Warning: dla used to load 32-bit register; recommend using la instead Probably toolchain related, but should not be hard to fix up for older toolchains. ARnd