Messages in this thread | | | From | Arvind Sankar <> | Date | Thu, 12 Mar 2020 14:23:23 -0400 | Subject | Re: [PATCH v4 2/2] x86/purgatory: Make sure we fail the build if purgatory.ro has missing symbols |
| |
On Thu, Mar 12, 2020 at 06:46:44PM +0100, Hans de Goede wrote: > Hi, > > On 3/12/20 1:10 AM, Arvind Sankar wrote: > > On Wed, Mar 11, 2020 at 10:46:01PM +0100, Hans de Goede wrote: > >> Since we link purgatory.ro with -r aka we enable "incremental linking" > >> no checks for unresolved symbols is done while linking purgatory.ro. > >> > > > > Do we actually need to link purgatory with -r? We could use > > --emit-relocs to get the relocation sections generated the way the main > > x86 kernel does, no? > > > > Eg like the below? This would avoid the double-link creating > > purgatory.chk. > > So I've changed the patch for this in my local tree over to the version > suggested below and tested kexec with this (and I can confirm that it > still works) > > I'm wondering though if it would not be better to keep the purgatory.ro name ? : > > 1. The generated ELF binary should still be relocatable > 2. .ro files are part of the global .gitignore settings, for the > new purgatory name we need to add an arch/x86/purgatory/.gitignore file > 3. Keeping the purgatory.ro name will make the diff easier to read > > Regards, > > Hans >
No objections to the name, we can change it later to purgatory.elf or something if we want in a separate patch.
There is one issue I noticed -- x86_64 kernel default LDFLAGS have max-page-size=0x200000. If purgatory is linked into a real executable this makes kexec-purgatory.o become quite large, from about 25k to just over 4Mb. Adding -z max-page-size=4096 to the LDFLAGS lowers this back down to around 29k. arch/x86/entry/vdso/Makefile adds this flag too.
| |