unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
From: John Soo <jsoo1@asu.edu>
To: Mathieu Othacehe <othacehe@gnu.org>
Cc: Help Guix <help-guix@gnu.org>
Subject: Re: BPF in linux-libre
Date: Wed, 17 Jun 2020 06:42:57 -0700	[thread overview]
Message-ID: <87a711reou.fsf@asu.edu> (raw)
In-Reply-To: <87wo46uhdr.fsf@gnu.org> (Mathieu Othacehe's message of "Wed, 17 Jun 2020 12:16:32 +0200")

[-- Attachment #1: Type: text/plain, Size: 14220 bytes --]

Hi Mathieu,

Mathieu Othacehe <othacehe@gnu.org> writes:

> Yes the issue here is that linux-libre-headers is in fact
> linux-libre-headers-5.4.20 which is too old.
>
> I tried to add linux-libre-headers-5.7 to the inputs. Even though it
> comes first in CPLUS_INCLUDE_PATH, GCC is picking the old headers.

I found out that if LIBBPF_INCLUDE_DIR was specified instead of present
as a submodule, the error about missing macros would occur. There is an
open issue upstream regarding it so now bcc builds ok. It was definitely
confusing because kernels since about 4.16 support bpf. Now there is a
new problem building bpftrace:

cd /tmp/guix-build-bpftrace-0.10.0-1.v0.10.0.drv-0/build/src && /gnu/store/89rj5fqcg48afgk99639ds602pgf92k4-cmake-minimal-3.16.5/bin/cmake -E cmake_link_script CMakeFiles/bpftrace.dir/link.txt --verbose=1
/gnu/store/rn75fm7adgx3pw5j8pg3bczfqq1y17lk-gcc-7.5.0/bin/c++  -O2 -g -DNDEBUG  -rdynamic CMakeFiles/bpftrace.dir/attached_probe.cpp.o CMakeFiles/bpftrace.dir/bpffeature.cpp.o CMakeFiles/bpftrace.dir/bpftrace.cpp.o CMakeFiles/bpftrace.dir/btf.cpp.o CMakeFiles/bpftrace.dir/clang_parser.cpp.o CMakeFiles/bpftrace.dir/disasm.cpp.o CMakeFiles/bpftrace.dir/driver.cpp.o CMakeFiles/bpftrace.dir/fake_map.cpp.o CMakeFiles/bpftrace.dir/list.cpp.o CMakeFiles/bpftrace.dir/lockdown.cpp.o CMakeFiles/bpftrace.dir/main.cpp.o CMakeFiles/bpftrace.dir/map.cpp.o CMakeFiles/bpftrace.dir/mapkey.cpp.o CMakeFiles/bpftrace.dir/output.cpp.o CMakeFiles/bpftrace.dir/printf.cpp.o CMakeFiles/bpftrace.dir/resolve_cgroupid.cpp.o CMakeFiles/bpftrace.dir/signal.cpp.o CMakeFiles/bpftrace.dir/struct.cpp.o CMakeFiles/bpftrace.dir/tracepoint_format_parser.cpp.o CMakeFiles/bpftrace.dir/types.cpp.o CMakeFiles/bpftrace.dir/utils.cpp.o CMakeFiles/bpftrace.dir/bfd-disasm.cpp.o  -o bpftrace  -Wl,-rpath,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -Wl,-Bstatic -lbfd -lopcodes arch/libarch.a ast/libast.a ../libparser.a ../resources/libresources.a -Wl,-Bdynamic -lbcc -lelf arch/libarch.a /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMOrcJIT.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMJITLink.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMMCJIT.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMExecutionEngine.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMRuntimeDyld.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libclang.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMXCoreDisassembler.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMXCoreCodeGen.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMXCoreDesc.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMXCoreInfo.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMX86Disassembler.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMX86AsmParser.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMX86CodeGen.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMX86Desc.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMX86Utils.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMX86Info.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMWebAssemblyDisassembler.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMWebAssemblyAsmParser.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMWebAssemblyCodeGen.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMWebAssemblyDesc.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMWebAssemblyInfo.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMSystemZDisassembler.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMSystemZAsmParser.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMSystemZCodeGen.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMSystemZDesc.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMSystemZInfo.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMSparcDisassembler.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMSparcAsmParser.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMSparcCodeGen.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMSparcDesc.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMSparcInfo.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMRISCVDisassembler.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMRISCVAsmParser.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMRISCVCodeGen.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMRISCVDesc.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMRISCVUtils.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMRISCVInfo.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMPowerPCDisassembler.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMPowerPCAsmParser.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMPowerPCCodeGen.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMPowerPCDesc.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMPowerPCInfo.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMNVPTXCodeGen.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMNVPTXDesc.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMNVPTXInfo.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMMSP430Disassembler.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMMSP430AsmParser.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMMSP430CodeGen.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMMSP430Desc.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMMSP430Info.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMMipsDisassembler.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMMipsAsmParser.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMMipsCodeGen.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMMipsDesc.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMMipsInfo.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMLanaiDisassembler.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMLanaiCodeGen.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMLanaiAsmParser.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMLanaiDesc.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMLanaiInfo.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMHexagonDisassembler.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMHexagonCodeGen.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMHexagonAsmParser.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMHexagonDesc.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMHexagonInfo.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMBPFDisassembler.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMBPFAsmParser.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMARMDisassembler.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMARMAsmParser.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMARMCodeGen.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMARMDesc.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMARMUtils.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMARMInfo.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMAMDGPUDisassembler.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMAMDGPUAsmParser.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMAMDGPUCodeGen.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMMIRParser.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMipo.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMLinker.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMInstrumentation.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMIRReader.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMAsmParser.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMVectorize.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMAMDGPUDesc.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMAMDGPUUtils.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMAMDGPUInfo.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMAArch64Disassembler.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMMCDisassembler.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMAArch64AsmParser.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMAArch64CodeGen.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMGlobalISel.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMAArch64Desc.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMAArch64Utils.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMAArch64Info.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMBPFCodeGen.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMSelectionDAG.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMAsmPrinter.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMDebugInfoDWARF.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMCodeGen.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMScalarOpts.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMInstCombine.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMAggressiveInstCombine.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMTransformUtils.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMBitWriter.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMTarget.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMAnalysis.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMProfileData.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMObject.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMMCParser.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMBitReader.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMBitstreamReader.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMBPFDesc.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMMC.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMDebugInfoCodeView.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMDebugInfoMSF.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMBPFInfo.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMCore.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMRemarks.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMBinaryFormat.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMSupport.so.9 /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libLLVMDemangle.so.9 
ld: /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libbfd.a(compress.o): undefined reference to symbol 'inflateEnd'
ld: /gnu/store/80y2wbx9lrhvwp41nnyjjsb4g9ff8avn-clang-toolchain-9.0.1/lib/libz.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [src/CMakeFiles/bpftrace.dir/build.make:532: src/bpftrace] Error 1
make[2]: Leaving directory '/tmp/guix-build-bpftrace-0.10.0-1.v0.10.0.drv-0/build'
make[1]: *** [CMakeFiles/Makefile2:363: src/CMakeFiles/bpftrace.dir/all] Error 2
make[1]: Leaving directory '/tmp/guix-build-bpftrace-0.10.0-1.v0.10.0.drv-0/build'
make: *** [Makefile:133: all] Error 2

Updated patches attached.

Thanks!

- John


[-- Attachment #2: 0001-gnu-Add-libbpf.patch --]
[-- Type: text/x-patch, Size: 2814 bytes --]

From 1fd0e237ec93c953b49fcafa819dcfc1198b8644 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sat, 13 Jun 2020 14:53:50 -0700
Subject: [PATCH 1/5] gnu: Add libbpf.

* gnu/packages/linux.scm (libbpf): New variable.
---
 gnu/packages/linux.scm | 46 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index f2b35e33c5..cd4b712786 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -45,6 +45,7 @@
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com>
+;;; Copyright © 2020 John Soo <jsoo1@asu.edu>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -7127,3 +7128,48 @@ cache data store that is used by network file systems such as @code{AFS} and
 @code{NFS} to cache data locally on disk.  The content of the cache is
 persistent over reboots.")
     (license license:gpl2+)))
+
+(define-public libbpf
+  (let* ((commit "6a1615c263b679c17ecb292fa897f159e826dc10"))
+    (package
+      (name "libbpf")
+      (version "0.0.8")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/libbpf/libbpf")
+               (commit commit)))
+         (sha256
+          (base32
+           "02vbpg9v5sjcw7ihximy63cjmz82q5izkp91i44m1qp6qj5qn4sr"))))
+      (build-system gnu-build-system)
+      (inputs
+       `(("libelf" ,libelf)
+         ("pkg-config" ,pkg-config)
+         ("zlib" ,zlib)))
+      (arguments
+       `(#:tests? #f ; No tests
+         #:make-flags
+         (list
+          (string-append "PREFIX=''")
+          (string-append "DESTDIR=" (assoc-ref %outputs "out"))
+          (string-append
+           "CC=" (assoc-ref %build-inputs "gcc") "/bin/gcc"))
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure)
+           (add-before 'build 'pre-build
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "scripts/check-reallocarray.sh"
+                 (("/bin/rm" rm)
+                  (string-append (assoc-ref inputs "coreutils") rm)))
+               (chdir "src")
+               #t)))))
+      (home-page "https://github.com/libbpf/libbpf")
+      (synopsis "BPF CO-RE (Compile Once – Run Everywhere)")
+      (description
+       "Libbpf supports building BPF CO-RE-enabled applications, which, in
+contrast to BCC, do not require Clang/LLVM runtime being deployed to target
+servers and does not rely on kernel-devel headers being available.")
+      (license `(,license:lgpl2.1 ,license:bsd-2)))))
-- 
2.26.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-gnu-Add-bpf-extra-linux-options.patch --]
[-- Type: text/x-patch, Size: 1339 bytes --]

From f0eff687adee1494c3d642379292dae7cd2a85e6 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sat, 13 Jun 2020 22:52:55 -0700
Subject: [PATCH 2/5] gnu: Add %bpf-extra-linux-options.

* gnu/packages/linux (%bpf-extra-linux-options): New variable.
---
 gnu/packages/linux.scm | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index cd4b712786..bb4f7af81f 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -619,6 +619,22 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
     ("CONFIG_CIFS" . m)
     ("CONFIG_9P_FS" . m)))
 
+;; See https://github.com/iovisor/bcc/blob/master/INSTALL.md#kernel-configuration
+(define %bpf-extra-linux-options
+  `(("CONFIG_BPF" . #t)
+    ("CONFIG_BPF_SYSCALL" . #t)
+    ;; optional, for tc filters
+    ("CONFIG_NET_CLS_BPF" . m)
+    ;; optional, for tc actions
+    ("CONFIG_NET_ACT_BPF" . m)
+    ("CONFIG_BPF_JIT" . #t)
+    ;; for Linux kernel versions 4.1 through 4.6
+    ;; ("CONFIG_HAVE_BPF_JIT" . y)
+    ;; for Linux kernel versions 4.7 and later
+    ("CONFIG_HAVE_EBPF_JIT" . #t)
+    ;; optional, for kprobes
+    ("CONFIG_BPF_EVENTS" . #t)))
+
 (define (config->string options)
   (string-join (map (match-lambda
                       ((option . 'm)
-- 
2.26.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #4: 0003-gnu-Add-linux-libre-with-bpf.patch --]
[-- Type: text/x-patch, Size: 1248 bytes --]

From bf93994a7c1eb3e910061d5c6de8a86d0bc8f331 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sat, 13 Jun 2020 22:54:24 -0700
Subject: [PATCH 3/5] gnu: Add linux-libre-with-bpf.

* gnu/packages/linux.scm (linux-libre-with-bpf): New variable.
---
 gnu/packages/linux.scm | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index bb4f7af81f..5c379e7cd3 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -7145,6 +7145,16 @@ cache data store that is used by network file systems such as @code{AFS} and
 persistent over reboots.")
     (license license:gpl2+)))
 
+(define-public linux-libre-with-bpf
+  (make-linux-libre* linux-libre-5.4-version
+                     linux-libre-5.4-source
+                     '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux" "riscv64-linux")
+                     #:extra-version "bpf"
+                     #:configuration-file kernel-config
+                     #:extra-options
+                     (append %bpf-extra-linux-options
+                             %default-extra-linux-options)))
+
 (define-public libbpf
   (let* ((commit "6a1615c263b679c17ecb292fa897f159e826dc10"))
     (package
-- 
2.26.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #5: 0004-gnu-Add-bcc.patch --]
[-- Type: text/x-patch, Size: 3924 bytes --]

From a4a3836ab1cb781ba7138d4ddc213ac18fe17db4 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sat, 13 Jun 2020 23:16:11 -0700
Subject: [PATCH 4/5] gnu: Add bcc.

* gnu/packages/linux.scm (bcc): New variable.
---
 gnu/packages/linux.scm | 65 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 65 insertions(+)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 5c379e7cd3..362e041ba9 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -97,6 +97,8 @@
   #:use-module (gnu packages haskell-xyz)
   #:use-module (gnu packages libunwind)
   #:use-module (gnu packages libusb)
+  #:use-module (gnu packages llvm)
+  #:use-module (gnu packages lua)
   #:use-module (gnu packages man)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages multiprecision)
@@ -131,6 +133,7 @@
   #:use-module (gnu packages rsync)
   #:use-module (gnu packages selinux)
   #:use-module (gnu packages swig)
+  #:use-module (gnu packages version-control)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system go)
@@ -7199,3 +7202,65 @@ persistent over reboots.")
 contrast to BCC, do not require Clang/LLVM runtime being deployed to target
 servers and does not rely on kernel-devel headers being available.")
       (license `(,license:lgpl2.1 ,license:bsd-2)))))
+
+(define-public bcc
+  (let* ((ver "0.14.0")
+         (commit (string-append "v" ver))
+         (revision "1"))
+    (package
+      (name "bcc")
+      (version (git-version ver revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/iovisor/bcc")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "08m21avzamr48qwshd4r5hlcckk1kvgrb1i6qw373b7la89jf5an"))))
+      (build-system cmake-build-system)
+      (inputs
+       `(;; TODO: package optional integrations
+         ;; ("arping" ,argping)
+         ;; ("netperf" ,netperf)
+         ;; ("iperf" ,iperf) or ("iperf3" ,iperf3)
+         ("bison" ,bison)
+         ("clang-toolchain" ,clang-toolchain)
+         ("flex" ,flex)
+         ;; FIXME: Timestamp some other way.
+         ("git" ,git)
+         ("libbpf" ,(package-source libbpf))
+         ;; LibElf required but libelf does not contain
+         ;; archives, only object files.
+         ;; https://github.com/iovisor/bcc/issues/504
+         ("elfutils" ,elfutils)
+         ("linux-libre-headers" ,linux-libre-headers)
+         ("luajit" ,luajit)
+         ("python-wrapper" ,python-wrapper)))
+      (arguments
+       `(;; Tests all require sudo and a "standard" file heirarchy
+         #:tests? #f
+         ;; LIBBPF_INCLUDE_DIR should work with the output of libbpf -
+         ;; i.e. ,libbpf instead of ,(package-source libbpf) in inputs
+         ;; but it seems there could be a bug
+         ;; #:configure-flags
+         ;; (list
+         ;;  (string-append
+         ;;   "-DLIBBPF_INCLUDE_DIR=" (assoc-ref %build-inputs "libbpf") "/include"))
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'copy-libbpf
+             (lambda* (#:key inputs #:allow-other-keys)
+               (delete-file-recursively "src/cc/libbpf")
+               (copy-recursively (assoc-ref inputs "libbpf") "src/cc/libbpf"))))))
+      (home-page "https://github.com/iovisor/bcc")
+      (synopsis "Tools for BPF on Linux")
+      (description
+       "BCC is a toolkit for creating efficient kernel tracing and
+manipulation programs, and includes several useful tools and examples.  It
+makes use of extended BPF (Berkeley Packet Filters), formally known as eBPF, a
+new feature that was first added to Linux 3.15.  Much of what BCC uses requires
+Linux 4.1 and above.")
+      (license license:asl2.0))))
-- 
2.26.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #6: 0005-WIP-gnu-Add-bpftrace.patch --]
[-- Type: text/x-patch, Size: 2628 bytes --]

From b8b02baf0b2bfa42e0b2d19a47bb5895e0004f93 Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sat, 13 Jun 2020 23:16:56 -0700
Subject: [PATCH 5/5] [WIP] gnu: Add bpftrace.

* gnu/packages/linux.scm (bpftrace): New variable.
---
 gnu/packages/linux.scm | 45 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 362e041ba9..b7956f3d61 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -7264,3 +7264,48 @@ makes use of extended BPF (Berkeley Packet Filters), formally known as eBPF, a
 new feature that was first added to Linux 3.15.  Much of what BCC uses requires
 Linux 4.1 and above.")
       (license license:asl2.0))))
+
+(define-public bpftrace
+  (let* ((ver "0.10.0")
+         (commit (string-append "v" ver))
+         (revision "1"))
+    (package
+      (name "bpftrace")
+      (version (git-version ver revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/iovisor/bpftrace")
+               (commit commit)))
+         (file-name (git-file-name name ver))
+         (sha256
+          (base32
+           "023ardywbw5w8815j2ny9rrp2xlpxndqaa7v2njjm8109p7ilsdn"))))
+      (build-system cmake-build-system)
+      (inputs
+       `(("bcc" ,bcc)
+         ("bison" ,bison)
+         ("clang-toolchain" ,clang-toolchain)
+         ("elfutils" ,elfutils)
+         ("flex" ,flex)
+         ;; FIXME: Tests require googletest but not from system
+         ;; ("googletest" ,googletest)
+         ("linux-libre-headers" ,linux-libre-headers)))
+      (arguments
+       `(#:configure-flags
+         '(;; FIXME: Make tests not clone the googletest repository
+           "-DBUILD_TESTING=OFF"
+           "-DLIBBFD_DISASM_FOUR_ARGS_SIGNATURE=ON")))
+      (home-page "https://github.com/iovisor/bpftrace")
+      (synopsis "High-level tracing language for Linux eBPF")
+      (description
+       "bpftrace is a high-level tracing language for Linux enhanced Berkeley
+Packet Filter (eBPF) available in recent Linux kernels (4.x).  bpftrace uses
+LLVM as a backend to compile scripts to BPF-bytecode and makes use of BCC for
+interacting with the Linux BPF system, as well as existing Linux tracing
+capabilities: kernel dynamic tracing (kprobes), user-level dynamic
+tracing (uprobes), and tracepoints.  The bpftrace language is inspired by awk
+and C, and predecessor tracers such as DTrace and SystemTap.  bpftrace was
+created by Alastair Robertson.")
+      (license license:asl2.0))))
-- 
2.26.2


  reply	other threads:[~2020-06-17 13:43 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-14  3:21 BPF in linux-libre John Soo
2020-06-14  9:23 ` Mathieu Othacehe
2020-06-14 15:11   ` John Soo
2020-06-17 10:16     ` Mathieu Othacehe
2020-06-17 13:42       ` John Soo [this message]
2020-06-21 15:32       ` John Soo
2020-06-26 10:50         ` Mathieu Othacehe
2020-06-28 20:24           ` John Soo
2020-07-01  5:40           ` John Soo
2020-07-03 16:01           ` John Soo
2020-07-05  8:18             ` Mathieu Othacehe
2020-07-05  8:20             ` Mathieu Othacehe
2020-07-06  0:44               ` John Soo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87a711reou.fsf@asu.edu \
    --to=jsoo1@asu.edu \
    --cc=help-guix@gnu.org \
    --cc=othacehe@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).