Re: [mcgrof-next:20210908-firmware-builtin-v4 2/11] drivers/base/firmware_loader/builtin/main.c:36:6: error: no previous prototype for function 'firmware_is_builtin'

From: Nathan Chancellor
Date: Mon Sep 13 2021 - 13:25:41 EST


On 9/13/2021 8:56 AM, Luis Chamberlain wrote:
On Fri, Sep 10, 2021 at 06:52:03PM -0700, Nathan Chancellor wrote:
On Fri, Sep 10, 2021 at 05:48:23PM -0700, Luis Chamberlain wrote:
On Fri, Sep 10, 2021 at 03:41:31PM +0800, kernel test robot wrote:
tree: https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git 20210908-firmware-builtin-v4
head: 1c69d6a17750179d68bcaf6b16f9a08d2e475989
commit: 79e9fce20ee88ffe37542a66277628e6c53dde14 [2/11] firmware_loader: formalize built-in firmware API
config: hexagon-buildonly-randconfig-r004-20210910 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 261cbe98c38f8c1ee1a482fe76511110e790f58a)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git/commit/?id=79e9fce20ee88ffe37542a66277628e6c53dde14
git remote add mcgrof-next https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git
git fetch --no-tags mcgrof-next 20210908-firmware-builtin-v4
git checkout 79e9fce20ee88ffe37542a66277628e6c53dde14
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=hexagon

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

drivers/base/firmware_loader/builtin/main.c:36:6: error: no previous prototype for function 'firmware_is_builtin' [-Werror,-Wmissing-prototypes]
bool firmware_is_builtin(const struct firmware *fw)

This is a lie though its defined on drivers/base/firmware_loader/firmware.h

Unless I am missing something, you don't include the firmware_loader
copy of firmware.h in builtin/main.c (only the linux one)? Isn't that
the source of the warning?

You would think, but nope, its there:

#include "firmware.h"

I see that in drivers/base/firmware_loader/main.c but the warning is complaining about drivers/base/firmware_loader/builtin/main.c, where I only see

#include <linux/firmware.h>

Sorry for the issues with reproducing. For what it's worth, I can reproduce this locally and adding

#include "../firmware.h"

to drivers/base/firmware_loader/builtin/main.c fixes it for me.

Cheers,
Nathan