summaryrefslogtreecommitdiff
path: root/libcpu
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2017-07-18 14:12:36 +0200
committerMark Wielaard <mark@klomp.org>2017-07-24 12:06:14 +0200
commit1609679b1ef3611c71a08900c2f6b94bb97d454d (patch)
tree24b3f6dfa5308e4c3a1ddb37b5097694a263ac7f /libcpu
parentc8e16c12661d18e6ae724a6d89b81c0df9da365a (diff)
downloadelfutils-1609679b1ef3611c71a08900c2f6b94bb97d454d.tar.gz
backends: Don't depend on linux/bpf.h to compile bpf disassembler.
We only need a few constants and one structure definition from linux/bpf. Just define those in a local lib/bpf.h file. This makes sure the bpf disassembler is always build and included even when elfutils is build on older GNU/Linux systems (and even on other platforms). Signed-off-by: Mark Wielaard <mark@klomp.org>
Diffstat (limited to 'libcpu')
-rw-r--r--libcpu/ChangeLog6
-rw-r--r--libcpu/Makefile.am2
-rw-r--r--libcpu/bpf_disasm.c7
3 files changed, 7 insertions, 8 deletions
diff --git a/libcpu/ChangeLog b/libcpu/ChangeLog
index 22bec9b3..28b220fc 100644
--- a/libcpu/ChangeLog
+++ b/libcpu/ChangeLog
@@ -1,3 +1,9 @@
+2017-07-18 Mark Wielaard <mark@klomp.org>
+
+ * Makefile.am: Don't check HAVE_LINUX_BPF_H, just define libcpu_bpf.
+ * bpf_disasm.c: Include bpf.h instead of linux/bpf.h. Don't define
+ BPF_PSEUDO_MAP_FD.
+
2017-04-20 Ulf Hermann <ulf.hermann@qt.io>
* Makefile.am: Add EXEEXT to gendis.
diff --git a/libcpu/Makefile.am b/libcpu/Makefile.am
index 31fc906b..94de56ef 100644
--- a/libcpu/Makefile.am
+++ b/libcpu/Makefile.am
@@ -45,11 +45,9 @@ i386_gendis_SOURCES = i386_gendis.c i386_lex.l i386_parse.y
i386_disasm.o: i386.mnemonics $(srcdir)/i386_dis.h
x86_64_disasm.o: x86_64.mnemonics $(srcdir)/x86_64_dis.h
-if HAVE_LINUX_BPF_H
noinst_LIBRARIES += libcpu_bpf.a
libcpu_bpf_a_SOURCES = bpf_disasm.c
libcpu_bpf_a_CFLAGS = $(AM_CFLAGS) -Wno-format-nonliteral
-endif
%_defs: $(srcdir)/defs/i386
$(AM_V_GEN)m4 -D$* -DDISASSEMBLER $< > $@T
diff --git a/libcpu/bpf_disasm.c b/libcpu/bpf_disasm.c
index e4bbae4a..054aba2b 100644
--- a/libcpu/bpf_disasm.c
+++ b/libcpu/bpf_disasm.c
@@ -35,16 +35,11 @@
#include <stdio.h>
#include <gelf.h>
#include <inttypes.h>
-#include <linux/bpf.h>
+#include "bpf.h"
#include "../libelf/common.h"
#include "../libebl/libeblP.h"
-/* BPF_PSEUDO_MAP_FD was only introduced in linux 3.20. */
-#ifndef BPF_PSEUDO_MAP_FD
- #define BPF_PSEUDO_MAP_FD 1
-#endif
-
static const char class_string[8][8] = {
[BPF_LD] = "ld",
[BPF_LDX] = "ldx",