Re: kexec, x86/purgatory: Cleanup the unholy mess

From: Thomas Gleixner
Date: Fri Mar 10 2017 - 09:58:28 EST


On Fri, 10 Mar 2017, Vivek Goyal wrote:
> I think we probably will have to initialize these global variables in
> purgatory itself and that puts them in .data section and relocation
> works.
>
> That's how the code was intially. I initialized value of
> purgatory_sha256_digest in the code and then did "readelf -a purgatory.o"
> and symbol section index changed from COM to 3.
>
> 13: 0000000000000000 32 OBJECT GLOBAL DEFAULT 3
> purgatory_sha256_digest
>
> [ 3] .data PROGBITS 0000000000000000 00000120
> 0000000000000020 0000000000000000 WA 0 0 32

Yeah, and then instead of doing it proper you relied on compiler/link magic
which is unreliable, undocumented and uncomprehensible. But that's just
compatible to the rest of kexec. Works for me is never a good engineering
principle.

Thanks,

tglx