Patch "lib/test_hash.c: fix warning in preprocessor symbol evaluation" has been added to the 4.7-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
lib/test_hash.c: fix warning in preprocessor symbol evaluation
to the 4.7-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
lib-test_hash.c-fix-warning-in-preprocessor-symbol-evaluation.patch
and it can be found in the queue-4.7 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
e6173ba42bbdba05fd4f3021c0beda0506271507Mon Sep 17 00:00:00 2001
From: Geert Uytterhoeven <[email protected]>
Date: Thu, 1 Sep 2016 16:14:53 -0700
Subject: lib/test_hash.c: fix warning in preprocessor symbol evaluation
From: Geert Uytterhoeven <[email protected]>
commit e6173ba42bbdba05fd4f3021c0beda0506271507 upstream.
Some versions of gcc don't like tests for the value of an undefined preprocessor symbol, even in the #else branch of an #ifndef:
lib/test_hash.c:224:7: warning: "HAVE_ARCH__HASH_32" is not defined [-Wundef]
#elif HAVE_ARCH__HASH_32 != 1
^
lib/test_hash.c:229:7: warning: "HAVE_ARCH_HASH_32" is not defined [-Wundef]
#elif HAVE_ARCH_HASH_32 != 1
^
lib/test_hash.c:234:7: warning: "HAVE_ARCH_HASH_64" is not defined [-Wundef]
#elif HAVE_ARCH_HASH_64 != 1
^Seen with gcc 4.9, not seen with 4.1.2.
Change the logic to only check the value inside an #ifdef to fix this.
--- lib/test_hash.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-)
lib/test_hash.c +15 -9
@@ -219,21 +219,27 @@ 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 +#ifdef HAVE_ARCH__HASH_32 +#if 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 +#else +pr_info ("__hash_32() has no arch implementation to test." ); +#endif +#ifdef HAVE_ARCH_HASH_32 +#if 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 +#else +pr_info ("hash_32() has no arch implementation to test." ); +#endif +#ifdef HAVE_ARCH_HASH_64 +#if HAVE_ARCH_HASH_64 !=1 pr_info ("hash_64() is arch-specific; not compared to generic." );#endif +#else +pr_info ("hash_64() has no arch implementation to test." ); +#endif pr_notice ("%u tests passed." , tests);
Patches currently in stable-queue which might be from [email protected] are
queue-4.7/lib-test_hash.c-fix-warning-in-preprocessor-symbol-evaluation.patch queue-4.7/nfc-fdp-detect-errors-from-fdp_nci_create_conn.patch queue-4.7/lib-test_hash.c-fix-warning-in-two-dimensional-array-init.patch