Re: Build error due to commit 8ab2ae655b ("default exported asm symbols to zero")
From: Linus Torvalds
Date: Mon Dec 05 2016 - 17:12:39 EST
On Mon, Dec 5, 2016 at 1:23 PM, Guenter Roeck <linux@xxxxxxxxxxxx> wrote:
>
> commit 8ab2ae655bf ("default exported asm symbols to zero") results
> in the following build error when building alpha:allmodconfig.
>
> arch/alpha/lib/callback_srm.S: Assembler messages:
> arch/alpha/lib/callback_srm.S:97: Warning:
> Tried to .set unrecognized mode `__crc_callback_getenv'
> arch/alpha/lib/callback_srm.S:97: Error:
> junk at end of line, first unrecognized character is `,'
Christ on a stick!
This binutils modversion problem is just _incredibly_ annoying.
I think the problem is that on alpha, ".set" is used for various
random attributes, like "noat" and "noreorder".
Hmm. Looking at what the C __kcrctab_ output is, it looks like this
for me (picking one at random):
.section ___kcrctab+blk_set_runtime_active,"a",@progbits
.align 8
.type __kcrctab_blk_set_runtime_active, @object
.size __kcrctab_blk_set_runtime_active, 8
__kcrctab_blk_set_runtime_active:
.quad __crc_blk_set_runtime_active
and I wonder if we should just try to emulate that as closely as possible?
For example, why does the asm code use ".weak" for the kcrctab entry?
None of the other entries do that. Maybe just removing the .weak (and
the .set) would fix things?
Over to Arnd, who presumably knows more than he ever really wanted to
know about those nasty crc entries.. Ideas?
Linus