Re: [linux-next:master 5868/6773] arch/powerpc/mm/mem.c:91:12: warning: no previous prototype for function 'create_section_mapping'

Randy Dunlap
2020-11-18T21:19:52Z

On 11/18/20 11:52 AM, Nick Desaulniers wrote:
> On Wed, Nov 18, 2020 at 11:22 AM Dan Williams <dan.j.williams@intel.com> wrote:
>>
>> On Wed, Nov 18, 2020 at 4:27 AM kernel test robot <lkp@intel.com> wrote:
>>>
>>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
>>> head: 2052923327794192c5d884623b5ee5fec1867bda
>>> commit: d106ad47e292fde47fc09e16a2ddc13609ff2ad1 [5868/6773] mm-fix-phys_to_target_node-and-memory_add_physaddr_to_nid-exports-v4
>>> config: powerpc64-randconfig-r026-20201118 (attached as .config)
>
> ^ randconfig
>
>>> compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project b2613fb2f0f53691dd0211895afbb9413457fca7)
>>> reproduce (this is a W=1 build):
>
> ^ W=1
>
>>> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>>> chmod +x ~/bin/make.cross
>>> # install powerpc64 cross compiling tool for clang build
>>> # apt-get install binutils-powerpc64-linux-gnu
>>> # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=d106ad47e292fde47fc09e16a2ddc13609ff2ad1
>>> git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
>>> git fetch --no-tags linux-next master
>>> git checkout d106ad47e292fde47fc09e16a2ddc13609ff2ad1
>>> # save the attached .config to linux build tree
>>> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc64
>>
>> I get:
>>
>> Makefile:597: arch/powerpc64/Makefile: No such file or directory
>> make[1]: *** No rule to make target 'arch/powerpc64/Makefile'. Stop.
>> make: *** [Makefile:712: include/config/auto.conf.cmd] Error 2
>>
>> ...changing it to ARCH=powerpc I get:
>>
>> Assembler messages:
>> Fatal error: invalid listing option `3'
>> clang: error: assembler command failed with exit code 1 (use -v to see
>> invocation)
>> make[1]: *** [scripts/Makefile.build:283: scripts/mod/empty.o] Error 1
>> make[1]: *** Waiting for unfinished jobs....
>> make: *** [Makefile:1199: prepare0] Error 2
>>
>> This is on a Fedora 31 host.
>>
>>>
>>> If you fix the issue, kindly add following tag as appropriate
>>> Reported-by: kernel test robot <lkp@intel.com>
>>>
>>> All warnings (new ones prefixed by >>):
>>>
>>>>> arch/powerpc/mm/mem.c:91:12: warning: no previous prototype for function 'create_section_mapping' [-Wmissing-prototypes]
>>> int __weak create_section_mapping(unsigned long start, unsigned long end,
>>> ^
>>> arch/powerpc/mm/mem.c:91:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
>>> int __weak create_section_mapping(unsigned long start, unsigned long end,
>>> ^
>>> static
>>> 1 warning generated.
>>
>> I do not see these errors with gcc.
>>
>> I feel like clang errors should be flagged / de-emphasized when the
>> same error does not appear on gcc.
>
> Note this is a W=1 build. For this warning, you either need to mark
> functions as having static linkage, or provide a prototype in a header
> so that callers know the correct function signature.

Yes, so with gcc, that gave me something like 109 missing prototype
warnings -- including one for 'create_section_mapping'.

--
~Randy