On Sunday, July 31, 2016 10:49:26 PM CEST kernelci. org bot wrote:
> next build: 143 builds: 1 failed, 142 passed, 1 error, 22 warnings 
> (next-20160801)
> 
> Full Build Summary: https://kernelci.org/build/next/kernel/next-20160801/
> 
> Tree: next
> Branch: local/master
> Git Describe: next-20160801
> Git Commit: c24c1308a5b274bbd90db927cb18efddc95340c7
> Git URL: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
> Built: 3 unique architectures
> 
> Build Failure Detected:
> 
> arm:    gcc version 5.3.1 20160113 (Linaro GCC 5.3-2016.02)
> 
>     rpc_defconfig: FAIL

I have verified that Linaro GCC 5.3-2016.05 is fixed, only Linaro GCC
5.3-2016.02 and earlier have this problem, please upgrade if possible

> Errors and Warnings Detected:
> 
> arm64:    gcc version 5.2.1 20151005 (Linaro GCC 5.2-2015.11-2)
> 
>     tinyconfig: 2 warnings

I now have a patch for it, just need to figure out who will
merge it.

> 
> Warnings:
>     drivers/tty/serial/8250/8250_fintek.c:34:0: warning: "IRQ_MODE" redefined

As commented in another thread, my patch is waiting to be picked up by
Greg, and has been in that state for a while.

> --------------------------------------------------------------------------------
> allmodconfig (arm64) — PASS, 0 errors, 0 warnings, 0 section mismatches
> 
> --------------------------------------------------------------------------------
> allmodconfig (x86) — PASS, 0 errors, 5 warnings, 0 section mismatches
> 
> Warnings:
>     lib/test_hash.c:224:7: warning: "HAVE_ARCH__HASH_32" is not defined 
> [-Wundef]
>     lib/test_hash.c:229:7: warning: "HAVE_ARCH_HASH_32" is not defined 
> [-Wundef]
>     lib/test_hash.c:234:7: warning: "HAVE_ARCH_HASH_64" is not defined 
> [-Wundef]
>     lib/test_hash.c:146:2: warning: missing braces around initializer 
> [-Wmissing-braces]
>     lib/test_hash.c:146:2: warning: (near initialization for 'hash_or[0]') 
> [-Wmissing-braces]

Upgrading to gcc-4.9 will fix avoid that, and a couple of workarounds have
been discussed before, but I don't know why none of them got merged.

George, how about this version:

commit 9b3cb7d0777a81522b799b0362ea0864ab7de6e0
Author: Arnd Bergmann <a...@arndb.de>
Date:   Tue May 31 10:27:08 2016 +0200

    hash: fix gcc-4 build warnings in test_hash.c
    
    The newly added lib/test_hash.c file builds fine with gcc-5 or newer,
    but causes some annoying warnings witih gcc-4.9 and older:
    
    lib/test_hash.c: In function ‘test_hash_init’:
    lib/test_hash.c:146:2: error: missing braces around initializer 
[-Werror=missing-braces]
    lib/test_hash.c:146:2: error: (near initialization for ‘hash_or[0]’) 
[-Werror=missing-braces]
    lib/test_hash.c:224:7: error: "HAVE_ARCH__HASH_32" is not defined 
[-Werror=undef]
    lib/test_hash.c:229:7: error: "HAVE_ARCH_HASH_32" is not defined 
[-Werror=undef]
    lib/test_hash.c:234:7: error: "HAVE_ARCH_HASH_64" is not defined 
[-Werror=undef]
    
    This adds the braces and extra #ifdef checks for the macros to shut up those
    warnings.
    
    Signed-off-by: Arnd Bergmann <a...@arndb.de>
    Cc: George Spelvin <li...@sciencehorizons.net>

diff --git a/lib/test_hash.c b/lib/test_hash.c
index 66c5fc8351e8..91a1dfa788d7 100644
--- a/lib/test_hash.c
+++ b/lib/test_hash.c
@@ -143,7 +143,7 @@ static int __init
 test_hash_init(void)
 {
        char buf[SIZE+1];
-       u32 string_or = 0, hash_or[2][33] = { 0 };
+       u32 string_or = 0, hash_or[2][33] = { { 0 } };
        unsigned tests = 0;
        unsigned long long h64 = 0;
        int i, j;
@@ -221,17 +221,17 @@ test_hash_init(void)
        /* Issue notices about skipped tests. */
 #ifndef HAVE_ARCH__HASH_32
        pr_info("__hash_32() has no arch implementation to test.");
-#elif HAVE_ARCH__HASH_32 != 1
+#elif defined(HAVE_ARCH__HASH_32) && HAVE_ARCH__HASH_32 != 1
        pr_info("__hash_32() is arch-specific; not compared to generic.");
 #endif
 #ifndef HAVE_ARCH_HASH_32
        pr_info("hash_32() has no arch implementation to test.");
-#elif HAVE_ARCH_HASH_32 != 1
+#elif defined(HAVE_ARCH_HASH_32) && HAVE_ARCH_HASH_32 != 1
        pr_info("hash_32() is arch-specific; not compared to generic.");
 #endif
 #ifndef HAVE_ARCH_HASH_64
        pr_info("hash_64() has no arch implementation to test.");
-#elif HAVE_ARCH_HASH_64 != 1
+#elif defined(HAVE_ARCH_HASH_64) && HAVE_ARCH_HASH_64 != 1
        pr_info("hash_64() is arch-specific; not compared to generic.");
 #endif


> --------------------------------------------------------------------------------
> aspeed_g4_defconfig (arm) — PASS, 0 errors, 1 warning, 0 section mismatches
> 
> Warnings:
>     arch/arm/configs/aspeed_g4_defconfig:61:warning: symbol value '1' invalid 
> for PRINTK_TIME
> 
> --------------------------------------------------------------------------------
> aspeed_g5_defconfig (arm) — PASS, 0 errors, 1 warning, 0 section mismatches
> 
> Warnings:
>     arch/arm/configs/aspeed_g5_defconfig:62:warning: symbol value '1' invalid 
> for PRINTK_TIME

This was caused by a commit I did to prepare for a patch turning the 'bool'
symbol into an integer symbol. That patch is no longer in -next and
we should revert my patch.


        Arnd

Reply via email to