Re: [BUG] alpha: module xxx: Unknown relocation: 1

From: Helge Deller
Date: Wed Apr 12 2017 - 01:58:31 EST


On 12.04.2017 04:59, Bob Tracy wrote:
> (Adding linux-kernel to the distribution. The issue seems to be
> architecture-specific, but I'm trying to understand what broke.)
>
> The 4.10-rc1 patch set made fairly extensive modifications to
> "a/kernel/module.c" (I'm leaving the "a" there so there's no doubt I
> mean the top-level "kernel/module.c" file and not any of the
> architecture-specific ones).
>
> One of the changes was to replace an include of <asm/uaccess.h> with
> <linux/uaccess.h>. This is potentially significant because of the
> mod we made to alpha's <asm/uaccess.h> to fix the BRSGP relocation
> error on __copy_user() issue.
>
> Bottom line is, no kernel I've built since 4.9 can load a module. All
> attempts to load a module result in the error message emitted by
> "arch/alpha/kernel/module.c" as follows:
>
> module XXX: Unknown relocation: 1
>
> I'll start attempting to revert the recent module patches to see if that
> helps. If anyone reading this knows what's happening, feel free to
> weigh-in before I spend too much time rebuilding kernels on a slow
> machine.

I assume it's due this commmit "modversions: treat symbol CRCs as 32 bit quantities":
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=71810db27c1c853b335675bee335d893bc3d324b

For parisc this patch solves it:
parisc: support R_PARISC_SECREL32 relocation in modules
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5f655322b1ba4bd46e26e307d04098f9c84df764

> module XXX: Unknown relocation: 1

For alpha it seems you need to add similar code to handle R_ALPHA_REFLONG
to apply_relocate_add() in arch/alpha/kernel/module.c

Helge