sparc32: Fix version generation failed warnings
authorSam Ravnborg <sam@ravnborg.org>
Sun, 24 Mar 2024 06:56:22 +0000 (07:56 +0100)
committerAndreas Larsson <andreas@gaisler.com>
Mon, 22 Apr 2024 14:32:41 +0000 (16:32 +0200)
commit839c4dece27426a3f24ca3cb9b6624ce576374bd
tree98e91d4e7e7c5467e94516f2d11220947acffeda
parent98937707fea8375e8acea0aaa0b68a956dd52719
sparc32: Fix version generation failed warnings

An allmodconfig build of sparc32 resulted in several warnings:

WARNING: modpost: EXPORT symbol "empty_zero_page" [vmlinux] version generation failed, symbol will not be versioned.
Is "empty_zero_page" prototyped in <asm/asm-prototypes.h>?
WARNING: modpost: EXPORT symbol "__udelay" [vmlinux] version generation failed, symbol will not be versioned.
Is "__udelay" prototyped in <asm/asm-prototypes.h>?
WARNING: modpost: EXPORT symbol "__ndelay" [vmlinux] version generation failed, symbol will not be versioned.
Is "__ndelay" prototyped in <asm/asm-prototypes.h>?
WARNING: modpost: EXPORT symbol "__ashldi3" [vmlinux] version generation failed, symbol will not be versioned.
Is "__ashldi3" prototyped in <asm/asm-prototypes.h>?
WARNING: modpost: EXPORT symbol "__ashrdi3" [vmlinux] version generation failed, symbol will not be versioned.
Is "__ashrdi3" prototyped in <asm/asm-prototypes.h>?
WARNING: modpost: EXPORT symbol "__lshrdi3" [vmlinux] version generation failed, symbol will not be versioned.
Is "__lshrdi3" prototyped in <asm/asm-prototypes.h>?

And later a lot of warnings like this:
WARNING: modpost: "__udelay" [kernel/locking/locktorture.ko] has no CRC!
WARNING: modpost: "__udelay" [kernel/rcu/rcutorture.ko] has no CRC!
WARNING: modpost: "__udelay" [kernel/rcu/rcuscale.ko] has no CRC!
WARNING: modpost: "__udelay" [kernel/rcu/refscale.ko] has no CRC!
WARNING: modpost: "__ndelay" [kernel/rcu/refscale.ko] has no CRC!
WARNING: modpost: "__udelay" [kernel/time/test_udelay.ko] has no CRC!
WARNING: modpost: "__udelay" [kernel/scftorture.ko] has no CRC!
WARNING: modpost: "__ashrdi3" [fs/quota/quota_tree.ko] has no CRC!
WARNING: modpost: "__ashldi3" [fs/ext4/ext4.ko] has no CRC!

The fix was, as hinted, to add missing prototypes to asm-prototypes.h.

For the __*di3 functions add the prototypes direct to the
asm-prototypes.h file.
Some of the symbols were already declared, so pulled in the relevant
headers (delay.h, pgtable.h).
The include files was alphabetically sorted to make the list somehow
readable.

The .S files exporting the symbols do not include asm-prototypes.h,
so they need to be explicit rebuild to generate symbol versioning.
One or more of the generic headers pulled in by asm-prototypes.h
did not support being used from .S files, so adding asm-prototypes.h
as an include file was not an option.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Andreas Larsson <andreas@gaisler.com>
Cc: David S. Miller <davem@davemloft.net>
Reviewed-by: Andreas Larsson <andreas@gaisler.com>
Tested-by: Andreas Larsson <andreas@gaisler.com>
Link: https://lore.kernel.org/r/20240324065622.GA1032122@ravnborg.org
Signed-off-by: Andreas Larsson <andreas@gaisler.com>
arch/sparc/include/asm/asm-prototypes.h