[PATCH -fixes] riscv: Fix relocatable kernels with early alternatives using -fno-pie

Alexandre Ghiti alex at ghiti.fr
Mon May 29 12:37:28 PDT 2023


On 29/05/2023 21:06, Conor Dooley wrote:
> On Mon, May 29, 2023 at 08:51:57PM +0200, Alexandre Ghiti wrote:
>> On 28/05/2023 15:56, Conor Dooley wrote:
>>> On Sun, May 28, 2023 at 03:42:59PM +0200, Alexandre Ghiti wrote:
>>>> Hmmm, it still works for me with both clang and gcc-9.
>>> gcc-9 is a bit of a relic, do you have more recent compilers lying
>>> around? If not, I can try some older compilers at some point.
>>>
>>>> You don't have to do that now but is there a way I could get your compiled
>>>> image? With the sha1 used to build it? Sorry, I don't see what happens, I
>>>> need to get my hands dirty in some debug!
>>> What do you mean by "sha1"? It falls with v6.4-rc1 which is a stable
>>> hash, if that's what you're looking for.
>>>
>>> Otherwise,
>>> https://github.com/ConchuOD/riscv-env/releases/download/v2022.03/vmlinux.bin
>>> (ignore the release crap haha, too lazy to find a proper hosting
>>> mechanism)
>>
>> Ok, I don't get much info without the symbols, can you also provide the
>> vmlinux please? But at least your image does not boot, not during the early
>> boot though because the mmu is enabled.
> Do you see anything print when you try it? Cos I do not. Iff I have time
> tomorrow, I'll go poking with gdb. I'm sorry I have not really done any
> investigating, I have been really busy this last week or so with
> dt-binding stuff but I should be freer again from tomorrow.
>
> https://github.com/ConchuOD/riscv-env/releases/download/v2022.03/vmlinux


Better, the trap happens in kasan_early_init() when it tries to access a 
global symbol using the GOT but ends up with a NULL pointer, which is 
weird. So to me, this is not related to kasan, it happens that 
kasan_early_init() is the first function called after enabling the mmu, 
I think you may have an issue with the filling of the relocations. Sorry 
to bother you again, but if at some point you can recompile with 
DEBUG_INFO enabled, that would be perfect! And also provide the 
vmlinux.relocs file. Sorry for all that, too bad I can't reproduce it.


>
>> I tried with gcc-12 and it still works fine on my end, so frustrating!
> Crap! Also, should you not be enjoying a public holiday rather than
> debugging?! Or maybe debugging is enjoyable for you...


Ahah, this is what I enjoy doing when the kids finally sleep :)


Thank you again for your very quick feedback, really appreciated!


>
> Cheers,
> Conor.



More information about the linux-riscv mailing list