[PATCH v2 0/6] Add new relocations for LoongArch.
liuzhensong
liuzhensong@loongson.cn
Thu Jul 21 01:37:46 GMT 2022
This is the v2 version of patches to support new relocations for LoongArch.
The new reloc types docnments are on:
https://github.com/loongson/LoongArch-Documentation/pull/57/files
The testsuite status:
=== binutils Summary ===
# of expected passes 241
# of unsupported tests 6
=== gas Summary ===
# of expected passes 270
# of unsupported tests 7
=== ld Summary ===
# of expected passes 1457
# of expected failures 11
# of untested testcases 1
# of unsupported tests 154
The patch set changelog:
v1 -> v2
1. Rename some relocations.
2. Fix bug caused by a pointer point to global ifunc.
3. Fix bug in relocation R_LARCH_SOP_PUSH_GPREL.
3. Change some comments.
4. Add testcases.
liuzhensong (6):
bfd: Add supported for LoongArch new relocations.
LoongArch:opcodes: Add new reloc types.
LoongArch: gas: Add new reloc types.
LoongArch: Move ifunc info to rela.dyn from rela.plt.
bfd: Delete R_LARCH_NONE from dyn info of LoongArch.
LoongArch: Add testcases for new relocate types.
bfd/bfd-in2.h | 37 +
bfd/elfnn-loongarch.c | 1554 ++++++++++++-----
bfd/elfxx-loongarch.c | 1371 +++++++++++----
bfd/elfxx-loongarch.h | 4 +
bfd/libbfd.h | 37 +
bfd/reloc.c | 82 +
binutils/readelf.c | 2 +
gas/config/loongarch-lex.h | 3 +
gas/config/loongarch-parse.y | 72 +-
gas/config/tc-loongarch.c | 140 +-
gas/config/tc-loongarch.h | 7 +-
gas/testsuite/gas/all/gas.exp | 4 +-
gas/testsuite/gas/loongarch/jmp_op.d | 82 +-
gas/testsuite/gas/loongarch/jmp_op.s | 38 +-
gas/testsuite/gas/loongarch/macro_op.d | 778 +--------
gas/testsuite/gas/loongarch/macro_op.s | 44 +-
gas/testsuite/gas/loongarch/macro_op_32.d | 55 +
gas/testsuite/gas/loongarch/macro_op_32.s | 16 +
.../gas/loongarch/macro_op_large_abs.d | 77 +
.../gas/loongarch/macro_op_large_abs.s | 9 +
.../gas/loongarch/macro_op_large_pc.d | 77 +
.../gas/loongarch/macro_op_large_pc.s | 9 +
gas/testsuite/gas/loongarch/reloc.d | 167 ++
gas/testsuite/gas/loongarch/reloc.s | 144 ++
include/elf/loongarch.h | 139 ++
ld/testsuite/ld-elf/eh5.d | 2 +-
ld/testsuite/ld-elf/pr26936.d | 2 +-
ld/testsuite/ld-elf/shared.exp | 6 +-
ld/testsuite/ld-loongarch-elf/attr-ifunc-4.c | 23 +
.../ld-loongarch-elf/attr-ifunc-4.out | 1 +
ld/testsuite/ld-loongarch-elf/disas-jirl-32.d | 18 +-
ld/testsuite/ld-loongarch-elf/disas-jirl.d | 19 +-
ld/testsuite/ld-loongarch-elf/ifunc.exp | 34 +
ld/testsuite/ld-loongarch-elf/jmp_op.d | 84 +-
ld/testsuite/ld-loongarch-elf/jmp_op.s | 42 +-
.../ld-loongarch-elf/libnopic-global.s | 113 ++
ld/testsuite/ld-loongarch-elf/macro_op.d | 883 ++--------
ld/testsuite/ld-loongarch-elf/macro_op.s | 57 +-
ld/testsuite/ld-loongarch-elf/macro_op_32.d | 768 +-------
ld/testsuite/ld-loongarch-elf/macro_op_32.s | 43 +-
.../ld-loongarch-elf/nopic-global-so.rd | 5 +
.../ld-loongarch-elf/nopic-global-so.sd | 10 +
.../ld-loongarch-elf/nopic-global.out | 1 +
ld/testsuite/ld-loongarch-elf/nopic-global.s | 373 ++++
ld/testsuite/ld-loongarch-elf/nopic-global.sd | 5 +
ld/testsuite/ld-loongarch-elf/nopic-global.xd | 3 +
ld/testsuite/ld-loongarch-elf/nopic-local.out | 1 +
ld/testsuite/ld-loongarch-elf/nopic-local.rd | 0
ld/testsuite/ld-loongarch-elf/nopic-local.s | 383 ++++
ld/testsuite/ld-loongarch-elf/nopic-local.sd | 5 +
ld/testsuite/ld-loongarch-elf/nopic-local.xd | 3 +
.../ld-loongarch-elf/nopic-weak-global-so.rd | 5 +
.../ld-loongarch-elf/nopic-weak-global-so.sd | 10 +
.../ld-loongarch-elf/nopic-weak-global.out | 1 +
.../ld-loongarch-elf/nopic-weak-global.s | 374 ++++
.../ld-loongarch-elf/nopic-weak-global.sd | 5 +
.../ld-loongarch-elf/nopic-weak-global.xd | 3 +
.../ld-loongarch-elf/nopic-weak-local.out | 1 +
.../ld-loongarch-elf/nopic-weak-local.rd | 0
.../ld-loongarch-elf/nopic-weak-local.s | 383 ++++
.../ld-loongarch-elf/nopic-weak-local.sd | 5 +
.../ld-loongarch-elf/nopic-weak-local.xd | 3 +
ld/testsuite/ld-loongarch-elf/pic.exp | 202 +++
ld/testsuite/ld-loongarch-elf/pic.ld | 18 +
opcodes/loongarch-opc.c | 412 +++--
65 files changed, 5773 insertions(+), 3481 deletions(-)
create mode 100644 gas/testsuite/gas/loongarch/macro_op_32.d
create mode 100644 gas/testsuite/gas/loongarch/macro_op_32.s
create mode 100644 gas/testsuite/gas/loongarch/macro_op_large_abs.d
create mode 100644 gas/testsuite/gas/loongarch/macro_op_large_abs.s
create mode 100644 gas/testsuite/gas/loongarch/macro_op_large_pc.d
create mode 100644 gas/testsuite/gas/loongarch/macro_op_large_pc.s
create mode 100644 gas/testsuite/gas/loongarch/reloc.d
create mode 100644 gas/testsuite/gas/loongarch/reloc.s
create mode 100644 ld/testsuite/ld-loongarch-elf/attr-ifunc-4.c
create mode 100644 ld/testsuite/ld-loongarch-elf/attr-ifunc-4.out
create mode 100644 ld/testsuite/ld-loongarch-elf/ifunc.exp
create mode 100644 ld/testsuite/ld-loongarch-elf/libnopic-global.s
create mode 100644 ld/testsuite/ld-loongarch-elf/nopic-global-so.rd
create mode 100644 ld/testsuite/ld-loongarch-elf/nopic-global-so.sd
create mode 100644 ld/testsuite/ld-loongarch-elf/nopic-global.out
create mode 100644 ld/testsuite/ld-loongarch-elf/nopic-global.s
create mode 100644 ld/testsuite/ld-loongarch-elf/nopic-global.sd
create mode 100644 ld/testsuite/ld-loongarch-elf/nopic-global.xd
create mode 100644 ld/testsuite/ld-loongarch-elf/nopic-local.out
create mode 100644 ld/testsuite/ld-loongarch-elf/nopic-local.rd
create mode 100644 ld/testsuite/ld-loongarch-elf/nopic-local.s
create mode 100644 ld/testsuite/ld-loongarch-elf/nopic-local.sd
create mode 100644 ld/testsuite/ld-loongarch-elf/nopic-local.xd
create mode 100644 ld/testsuite/ld-loongarch-elf/nopic-weak-global-so.rd
create mode 100644 ld/testsuite/ld-loongarch-elf/nopic-weak-global-so.sd
create mode 100644 ld/testsuite/ld-loongarch-elf/nopic-weak-global.out
create mode 100644 ld/testsuite/ld-loongarch-elf/nopic-weak-global.s
create mode 100644 ld/testsuite/ld-loongarch-elf/nopic-weak-global.sd
create mode 100644 ld/testsuite/ld-loongarch-elf/nopic-weak-global.xd
create mode 100644 ld/testsuite/ld-loongarch-elf/nopic-weak-local.out
create mode 100644 ld/testsuite/ld-loongarch-elf/nopic-weak-local.rd
create mode 100644 ld/testsuite/ld-loongarch-elf/nopic-weak-local.s
create mode 100644 ld/testsuite/ld-loongarch-elf/nopic-weak-local.sd
create mode 100644 ld/testsuite/ld-loongarch-elf/nopic-weak-local.xd
create mode 100644 ld/testsuite/ld-loongarch-elf/pic.exp
create mode 100644 ld/testsuite/ld-loongarch-elf/pic.ld
--
2.31.1
More information about the Binutils
mailing list