svn commit: r328125 - stable/11/sys/boot/common
Konstantin Belousov
kib at FreeBSD.org
Thu Jan 18 12:14:25 UTC 2018
Author: kib
Date: Thu Jan 18 12:14:24 2018
New Revision: 328125
URL: https://svnweb.freebsd.org/changeset/base/328125
Log:
MFC r327822:
Skip IRELATIVE relocations when loader processes ELF files.
Modified:
stable/11/sys/boot/common/reloc_elf.c
Directory Properties:
stable/11/ (props changed)
Modified: stable/11/sys/boot/common/reloc_elf.c
==============================================================================
--- stable/11/sys/boot/common/reloc_elf.c Thu Jan 18 12:08:52 2018 (r328124)
+++ stable/11/sys/boot/common/reloc_elf.c Thu Jan 18 12:14:24 2018 (r328125)
@@ -115,6 +115,7 @@ __elfN(reloc)(struct elf_file *ef, symaddr_fn *symaddr
/* XXX, definitions not available on i386. */
#define R_X86_64_64 1
#define R_X86_64_RELATIVE 8
+#define R_X86_64_IRELATIVE 37
switch (rtype) {
case R_X86_64_64: /* S + A */
@@ -129,6 +130,9 @@ __elfN(reloc)(struct elf_file *ef, symaddr_fn *symaddr
val = addr;
*where = val;
break;
+ case R_X86_64_IRELATIVE:
+ /* leave it to kernel */
+ break;
default:
printf("\nunhandled relocation type %u\n", (u_int)rtype);
return (EFTYPE);
@@ -173,6 +177,7 @@ __elfN(reloc)(struct elf_file *ef, symaddr_fn *symaddr
#define R_386_32 1 /* Add symbol value. */
#define R_386_GLOB_DAT 6 /* Set GOT entry to data address. */
#define R_386_RELATIVE 8 /* Add load address of shared object. */
+#define R_386_IRELATIVE 42
switch (rtype) {
case R_386_RELATIVE:
@@ -185,6 +190,9 @@ __elfN(reloc)(struct elf_file *ef, symaddr_fn *symaddr
return (ESRCH);
val = addr + addend;
*where = val;
+ break;
+ case R_386_IRELATIVE:
+ /* leave it to kernel */
break;
default:
printf("\nunhandled relocation type %u\n", (u_int)rtype);
More information about the svn-src-stable
mailing list