Re: [RFC PATCH v3 06/37] bpf tools: Introduce 'bpf' library to tools

From: Wangnan (F)
Date: Thu May 21 2015 - 03:12:06 EST




å 2015/5/19 1:35, Alexei Starovoitov åé:
On 5/17/15 3:56 AM, Wang Nan wrote:
This is the first patch of libbpf. The goal of libbpf is to create a
standard way for accessing eBPF object files. This patch creates
Makefile and Build for it, allows 'make' to build libbpf.a and
libbpf.so, 'make install' to put them into proper directories.
Most part of Makefile is borrowed from traceevent. Before building,
it checks the existance of libelf in Makefile, and deny to build if
not found. Instead of throw an error if libelf not found, the error
raises in a phony target "elfdep". This design is to ensure
'make clean' still workable even if libelf is not found.

Signed-off-by: Wang Nan <wangnan0@xxxxxxxxxx>
---
...
+
+# Version of eBPF elf file
+FILE_VERSION = 1

what that comment suppose to mean?

+# Makefiles suck: This macro sets a default value of $(2) for the
+# variable named by $(1), unless the variable has been set by
+# environment or command line. This is necessary for CC and AR
+# because make sets default values, so the simpler ?= approach
+# won't work as expected.

what this for? copy-paste?

+# Allow setting CC and AR, or setting CROSS_COMPILE as a prefix.
+$(call allow-override,CC,$(CROSS_COMPILE)gcc)
+$(call allow-override,AR,$(CROSS_COMPILE)ar)

was cross-compile tested or just copy-pasted?


Cross compiling is tested on aarch64.

+EXT = -std=gnu99

I guess it was copy-pasted from libtraceevent, but please double
check that it's actually needed.


Will remove.

+# Append required CFLAGS
+override CFLAGS += -fPIC
+override CFLAGS += $(INCLUDES)
+override CFLAGS += -D_GNU_SOURCE

_GNU_SOURCE actually needed?
Please sanitize the file.

diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
new file mode 100644
index 0000000..bebe99a
--- /dev/null
+++ b/tools/lib/bpf/libbpf.c
@@ -0,0 +1,15 @@
+/*
+ * common eBPF ELF loading operations.
+ *
+ * Copyright (C) 2015, Wang Nan <wangnan0@xxxxxxxxxx>
+ * Copyright (C) 2015, Huawei Inc.

since it borrows heavily from samples/bpf/bpf_load.c, libbpf.h
would be nice if you mention the source and/or copyright in the header.


Will change. Could you please provide copyright information so I can add it here?

+ *
+ * Released under the GPL v2. (and only v2, not any later version)
+ */

are you sure about this restriction? libtracevent is LGPL, for example.


Will change.

Thank you.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/