add support for relocation type 'R_X86_64_GOTPCREL'

This commit is contained in:
PoroCYon 2019-05-17 15:37:19 +02:00 committed by PoroCYon
parent 4b4d8107a8
commit 987bbab3e4
1 changed files with 4 additions and 3 deletions

View File

@ -126,12 +126,13 @@ dynamic.end:
outf.write('_symbols:\n') outf.write('_symbols:\n')
for library, symrels in libraries.items(): for library, symrels in libraries.items():
for sym, reloc in symrels: for sym, reloc in symrels:
if reloc != 'R_X86_64_PLT32' and reloc != 'R_X86_64_GOTPCRELX' \ if reloc not in ['R_X86_64_PLT32', 'R_X86_64_GOTPCRELX', \
and reloc != 'R_X86_64_REX_GOTPCRELX': 'R_X86_64_REX_GOTPCRELX', 'R_X86_64_GOTPCREL']:
eprintf('Relocation type ' + reloc + ' of symbol ' + sym + ' unsupported!') eprintf('Relocation type ' + reloc + ' of symbol ' + sym + ' unsupported!')
sys.exit(1) sys.exit(1)
if reloc == 'R_X86_64_GOTPCRELX' or reloc == 'R_X86_64_REX_GOTPCRELX': if reloc in ['R_X86_64_GOTPCRELX', 'R_X86_64_REX_GOTPCRELX', \
'R_X86_64_GOTPCREL']:
outf.write(""" outf.write("""
global {name} global {name}
{name}: {name}: