Since kernel modules can now contain sections of type SHT_AMD64_UNWIND,

the boot loader should not skip over these anymore while loading images.
Otherwise the kernel can still panic when it doesn't find the .eh_frame
section belonging to the .rela.eh_frame section.

Unfortunately this will require installing boot loaders from sys/boot
before attempting to boot with a new kernel.

Reviewed by:	kib
MFC after:	2 weeks
X-MFC-With:	r296419
This commit is contained in:
Dimitry Andric 2016-03-06 15:57:43 +00:00
parent 823d0bdbb1
commit 20893a44b7
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=296428

View File

@ -221,6 +221,9 @@ __elfN(obj_loadimage)(struct preloaded_file *fp, elf_file_t ef, u_int64_t off)
switch (shdr[i].sh_type) {
case SHT_PROGBITS:
case SHT_NOBITS:
#if defined(__i386__) || defined(__amd64__)
case SHT_AMD64_UNWIND:
#endif
lastaddr = roundup(lastaddr, shdr[i].sh_addralign);
shdr[i].sh_addr = (Elf_Addr)lastaddr;
lastaddr += shdr[i].sh_size;