According to a discussion on ipxe mailing list[1], binutils 2.31.0 generates R_X86_64_PLT32 instead of R_X86_64_PC32.
This change fixes building wimboot on systems with binutils >= 2.31.0 [1] http://lists.ipxe.org/pipermail/ipxe-devel/2018-August/006255.html Signed-off-by: Alif M. Ahmad <alive4e...@live.com> --- src/efireloc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/efireloc.c b/src/efireloc.c index 519dd75..e0736cd 100644 --- a/src/efireloc.c +++ b/src/efireloc.c @@ -326,7 +326,8 @@ static void process_reloc ( bfd *bfd __unused, asection *section, arelent *rel, /* Generate a 2-byte PE relocation */ generate_pe_reloc ( pe_reltab, offset, 2 ); } else if ( ( strcmp ( howto->name, "R_386_PC32" ) == 0 ) || - ( strcmp ( howto->name, "R_X86_64_PC32" ) == 0 ) ) { + ( strcmp ( howto->name, "R_X86_64_PC32" ) == 0 ) || + ( strcmp ( howto->name, "R_X86_64_PLT32" ) == 0 ) ) { /* Skip PC-relative relocations; all relative offsets * remain unaltered when the object is loaded. */ -- 2.20.1 _______________________________________________ ipxe-devel mailing list ipxe-devel@lists.ipxe.org https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel