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

From: Alexandre Ghiti
Date: Mon May 29 2023 - 15:37:43 EST



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.