Subject: linux-next: build failure after merge of the mac80211-next tree

From: Stephen Rothwell <[email-masked]>
Date: Wed, 24 Feb 2016 11:59:27 +1100

Hi Johannes,

After merging the mac80211-next tree, today's linux-next build (x86_64
allmodconfig) failed like this:

In file included from include/linux/linkage.h:4:0,
                 from include/linux/kernel.h:6,
                 from net/rfkill/core.c:20:
net/rfkill/core.c: In function 'rfkill_find_type':
include/linux/compiler.h:501:38: error: call to '__compiletime_assert_647' declared with attribute error: BUILD_BUG_ON failed: !rfkill_types[NUM_RFKILL_TYPES - 1]
  _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
                                      ^
include/linux/compiler.h:484:4: note: in definition of macro '__compiletime_assert'
    prefix ## suffix();    \
    ^
include/linux/compiler.h:501:2: note: in expansion of macro '_compiletime_assert'
  _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
  ^
include/linux/bug.h:50:37: note: in expansion of macro 'compiletime_assert'
 #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                     ^
include/linux/bug.h:74:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
  BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
  ^
net/rfkill/core.c:647:2: note: in expansion of macro 'BUILD_BUG_ON'
  BUILD_BUG_ON(!rfkill_types[NUM_RFKILL_TYPES - 1]);
  ^

Caused by commit

  1f86443b4ffe ("net: rfkill: add rfkill_find_type function")

Maybe the compiler version matters?  I am using gcc v5.2.0.

Though, it seems to be that "!rfkill_types[NUM_RFKILL_TYPES - 1]" is
not a constant expression since

static const char *rfkill_types[NUM_RFKILL_TYPES]

does not stop "rfkill_types[NUM_RFKILL_TYPES - 1]" being modified at
run time. I think that you might need:

static const char * const rfkill_types[NUM_RFKILL_TYPES]

I have used the mac80211-next from next-20160223 for today.

-- 
Cheers,
Stephen Rothwell