bpftrace 使用docker静态编译ubuntu-glibc2.27 arm64版本

编译bpftrace

  1. 首先下载bpftrace代码,具体的地址在这里

  2. 由于要编译的版本是arm64,官方给的镜像是amd64的,需要手动修改下文件docker/Docker.ubuntu-glic

#FROM quay.io/iovisor/bpftrace-llvm:${BASE}_${LLVM_VERSION}
FROM syj2468/bpftrace_llvm12

这里使用的镜像是我自己制作的llvm12 arm64镜像
3. 因为是静态编译,所以bpftrace/build.sh内容需要修改一下

#./build-release.sh "$@"
./build-static.sh "$@"
  1. 傻瓜式执行./build.sh 即可,等待编译成功
  2. 最后编译成功后,会生成build-release-ubuntu-glibc目录,在里面的src目录下就是编译好的bpftrace, 可以看到只链接了比较少的动态库
    在这里插入图片描述

注意:

  1. 修改镜像源

    我自己的llvm镜像已经修改了apt源,所以apt-get update操作会比较快,但是如果使用的官方的镜像,如果觉得慢需要在相应的Dockerfile文件里替换源

  2. 手动编译llvm镜像

官方也提供了相应的Dockerfile文件,在bpftrace/docker/Docker.llvm.可以使用这个制作,需要手动更改一些配置

  • 除了上述的源问题,还需要修改cmake/embed/embed_llvm.cmake和cmake/embed/embed_clang.cmake文件,里面会从github获取llvm源码,使用github大概率会导致下载失败,需要替换加速的URL
cmake/embed/embed_llvm.cmake:  set(LLVM_DOWNLOAD_URL "https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_FULL_VERSION}/llvm-${LLVM_FULL_VERSION}.src.tar.xz")
cmake/embed/embed_clang.cmake: set(CLANG_DOWNLOAD_URL "https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VERSION}/clang-${LLVM_VERSION}.src.tar.xz"
  • 在Docker.llvm修改cmake获取路径,arm64版本需要修改路径
https://github.com/Kitware/CMake/releases/download/v3.20.0/cmake-3.20.0-linux-aarch64.tar.gz
  • 在Docker.llvm修改文件路径
/usr/lib/gcc/aarch64-linux-gnu/8/plugin/include/plugin-api.h /usr/local/include
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值