diff options
author | Jose E. Marchesi <jose.marchesi@oracle.com> | 2019-05-23 19:06:17 +0200 |
---|---|---|
committer | Jose E. Marchesi <jose.marchesi@oracle.com> | 2019-05-23 19:34:21 +0200 |
commit | aca4efc7a4fc42bac5b7b029c52cbb2a2bc2574b (patch) | |
tree | 7d2aef37131904e9346e79c8454aea0f082f2aec /binutils/readelf.c | |
parent | 8376927b2cc8b80cd5aa1e48aabafc85c0ad4f3e (diff) | |
download | binutils-aca4efc7a4fc42bac5b7b029c52cbb2a2bc2574b.zip binutils-aca4efc7a4fc42bac5b7b029c52cbb2a2bc2574b.tar.gz binutils-aca4efc7a4fc42bac5b7b029c52cbb2a2bc2574b.tar.bz2 |
binutils: add support for eBPF
This patch adds support for ELF64 eBPF to readelf, and fixes a `nm'
test to run properly in bpf-*-* targets.
binutils/ChangeLog:
2019-05-23 Jose E. Marchesi <jose.marchesi@oracle.com>
* readelf.c: Include elf/bpf.h.
(guess_is_rela): Hanle EM_BPF.
(dump_relocations): Likewise.
(is_32bit_abs_reloc): Likewise.
* testsuite/binutils-all/nm.exp: Add bpf-*-* to the list of
ELF targets.
Diffstat (limited to 'binutils/readelf.c')
-rw-r--r-- | binutils/readelf.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/binutils/readelf.c b/binutils/readelf.c index c31a5c1..9d28104 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -102,6 +102,7 @@ #include "elf/d10v.h" #include "elf/d30v.h" #include "elf/dlx.h" +#include "elf/bpf.h" #include "elf/epiphany.h" #include "elf/fr30.h" #include "elf/frv.h" @@ -781,6 +782,7 @@ guess_is_rela (unsigned int e_machine) case EM_SCORE: case EM_XGATE: case EM_NFP: + case EM_BPF: return FALSE; /* Targets that use RELA relocations. */ @@ -1482,6 +1484,10 @@ dump_relocations (Filedata * filedata, rtype = elf_visium_reloc_type (type); break; + case EM_BPF: + rtype = elf_bpf_reloc_type (type); + break; + case EM_ADAPTEVA_EPIPHANY: rtype = elf_epiphany_reloc_type (type); break; @@ -12410,6 +12416,8 @@ is_32bit_abs_reloc (Filedata * filedata, unsigned int reloc_type) case EM_AARCH64: return (reloc_type == 258 || reloc_type == 1); /* R_AARCH64_ABS32 || R_AARCH64_P32_ABS32 */ + case EM_BPF: + return reloc_type == 11; /* R_BPF_DATA_32 */ case EM_ADAPTEVA_EPIPHANY: return reloc_type == 3; case EM_ALPHA: |