安装与部署
软件要求
- 操作系统:openEuler 23.09
硬件要求
- x86_64架构
- aarch64架构
环境准备
- 安装openEuler系统,安装方法参考 《openEuler 23.09 安装指南》。
安装依赖软件
安装插件框架GCC客户端依赖软件
yum install -y gcc
yum install -y gcc-c++
yum install -y gcc-plugin-devel
yum install -y make
yum install -y cmake
yum install -y grpc
yum install -y grpc-devel
yum install -y grpc-plugins
yum install -y protobuf-devel
yum install -y jsoncpp
yum install -y jsoncpp-devel
yum install -y mlir
yum install -y mlir-devel
yum install -y llvm-devel
yum install -y llvm-test
安装插件框架服务端依赖软件
yum install -y gcc // 为了防止环境没有默认编译器,建议安装
yum install -y gcc-c++ // 为了防止环境没有默认编译器,建议安装
yum install -y make
yum install -y cmake
yum install -y grpc
yum install -y grpc-devel
yum install -y grpc-plugins
yum install -y protobuf-devel
yum install -y jsoncpp
yum install -y jsoncpp-devel
yum install -y mlir
yum install -y mlir-devel
yum install -y llvm-devel
yum install -y llvm-test
安装Pin
rpm构建
构建插件框架GCC客户端
git clone https://gitee.com/src-openeuler/pin-gcc-client.git
cd pin-gcc-client
mkdir -p ~/rpmbuild/SOURCES
cp *.patch pin-gcc-client-0.4.1.tar.gz ~/rpmbuild/SOURCES
rpmbuild -ba pin-gcc-client.spec
cd ~/rpmbuild/RPMS/aarch64 // aarch64|x86_64
rpm -ivh pin-gcc-client-0.4.1-12.aarch64.rpm // aarch64|x86_64
构建插件框架服务端
git clone https://gitee.com/src-openeuler/pin-server.git
cd pin-server
mkdir -p ~/rpmbuild/SOURCES
cp *.patch pin-server-0.4.0.tar.gz ~/rpmbuild/SOURCES
rpmbuild -ba pin-server.spec
cd ~/rpmbuild/RPMS/aarch64 // aarch64|x86_64
rpm -ivh pin-server-demo-0.4.0-14.aarch64.rpm // aarch64|x86_64
rpm -ivh pin-server-0.4.0-14.aarch64.rpm // aarch64|x86_64
编译构建
构建插件框架GCC客户端
git clone https://gitee.com/openeuler/pin-gcc-client.git
cd pin-gcc-client
mkdir build
cd build
cmake ../ -DMLIR_DIR=/usr/lib64/cmake/mlir -DLLVM_DIR=/usr/lib64/cmake/llvm
make
构建插件框架服务端
git clone https://gitee.com/openeuler/pin-server.git
cd pin-server
mkdir build
cd build
cmake ../ -DMLIR_DIR=/usr/lib64/cmake/mlir -DLLVM_DIR=/usr/lib64/cmake/llvm
make
使用方法
用户可以通过-fplugin和-fplugin-arg-libpin_xxx使能插件工具。
命令如下:
gcc -fplugin=${CLIENT_PATH}/build/libpin_gcc_client.so \
-fplugin-arg-libpin_gcc_client-server_path=${SERVER_PATH}/build/pin_server \
-fplugin-arg-libpin_gcc_client-log_level="1" \
-fplugin-arg-libpin_gcc_client-arg1="xxx" \
$(SOURCE)
为了方便用户使用,可以通过/usr/local/bin/pin-gcc-client.json文件,进行插件配置。
若/usr/local/bin下没有该配置文件,RPM安装时可以从/usr/bin(编译构建安装时为插件客户端源码configs目录)下拷贝使用。
配置选项如下:
path : 配置插件框架服务端可执行文件路径。
sha256file : 配置插件工具的校验文件xxx.sha256路径。
timeout : 配置跨进程通信超时时间,单位ms 。
编译选项:
-fplugin:指定插件客户端.so所在路径
-fplugin-arg-libpin_gcc_client-server_path:指定插件服务端可执行程序所在路径。
-fplugin-arg-libpin_gcc_client-log_level:指定日志系统默认记录等级,取值0~3。默认为1 。
-fplugin-arg-libpin_gcc_client-argN:用户可以根据插件工具要求,指定其他参数。argN代指插件工具要求的参数字段。
兼容性说明
此节主要列出当前一些特殊场景下的兼容性问题。本项目持续迭代中,会尽快进行修复,也欢迎广大开发者加入。
- 当前插件框架已适配LLVM 15,暂只支持统计类基础插件。




