aboutsummaryrefslogtreecommitdiff
path: root/binutils/readelf.c
diff options
context:
space:
mode:
authorJose E. Marchesi <jose.marchesi@oracle.com>2019-05-23 19:06:17 +0200
committerJose E. Marchesi <jose.marchesi@oracle.com>2019-05-23 19:34:21 +0200
commitaca4efc7a4fc42bac5b7b029c52cbb2a2bc2574b (patch)
tree7d2aef37131904e9346e79c8454aea0f082f2aec /binutils/readelf.c
parent8376927b2cc8b80cd5aa1e48aabafc85c0ad4f3e (diff)
downloadbinutils-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.c8
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: