长期支持版本

    社区创新版本

      安装与部署

      软件要求

      • 操作系统:openEuler 23.03

      硬件要求

      • x86_64架构
      • ARM架构

      环境准备

      安装依赖软件

      安装插件框架GCC客户端依赖软件

      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 gcc-plugin-devel
      yum install -y llvm-mlir
      yum install -y llvm-mlir-devel
      yum install -y llvm-devel
      

      安装插件框架服务端依赖软件

      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 llvm-mlir
      yum install -y llvm-mlir-devel
      yum install -y llvm-devel
      

      安装Pin

      rpm构建

      构建插件框架GCC客户端

      git clone https://gitee.com/src-openeuler/pin-gcc-client.git
      cd pin-gcc-client
      mkdir -p ~/rpmbuild/SOURCES
      cp *.path pin-gcc-client.tar.gz ~/rpmbuild/SOURCES
      rpmbuild -ba pin-gcc-client.spec
      cd  ~/rpmbuild/RPMS
      rpm -ivh pin-gcc-client.rpm
      

      构建插件框架服务端

      git clone https://gitee.com/src-openeuler/pin-server.git
      cd pin-server
      mkdir -p ~/rpmbuild/SOURCES
      cp *.path pin-server.tar.gz ~/rpmbuild/SOURCES
      rpmbuild -ba pin-server.spec
      cd  ~/rpmbuild/RPMS
      rpm -ivh pin-server.rpm
      

      编译构建

      构建插件框架GCC客户端

      git clone https://gitee.com/openeuler/pin-gcc-client.git
      cd pin-gcc-client
      mkdir build
      cd build
      cmake ../ -DMLIR_DIR=${MLIR_PATH} -DLLVM_DIR=${LLVM_PATH}
      make
      

      构建插件框架服务端

      git clone https://gitee.com/openeuler/pin-server.git
      cd pin-server
      mkdir build
      cd build
      cmake ../ -DMLIR_DIR=${MLIR_PATH} -DLLVM_DIR=${LLVM_PATH}
      make
      

      使用方法

      用户可以通过-fplugin-fplugin-arg-libpin_xxx使能插件工具。 命令如下:

      $(TARGET): $(OBJS)
          $(CXX) -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"
      

      为了方便用户使用,可以通过${INSTALL_PATH}/bin/pin-gcc-client.json文件,进行插件配置。配置选项如下:

      • 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代指插件工具要求的参数字段。

      兼容性说明

      此节主要列出当前一些特殊场景下的兼容性问题。本项目持续迭代中,会尽快进行修复,也欢迎广大开发者加入。

      • 插件框架在-flto阶段使能时,不支持使用make -j多进程编译。建议改用make -j1进行编译。

      文档捉虫

      “有虫”文档片段

      问题描述

      提交类型 issue

      有点复杂...

      找人问问吧。

      PR

      小问题,全程线上修改...

      一键搞定!

      问题类型
      规范和低错类

      ● 错别字或拼写错误;标点符号使用错误;

      ● 链接错误、空单元格、格式错误;

      ● 英文中包含中文字符;

      ● 界面和描述不一致,但不影响操作;

      ● 表述不通顺,但不影响理解;

      ● 版本号不匹配:如软件包名称、界面版本号;

      易用性

      ● 关键步骤错误或缺失,无法指导用户完成任务;

      ● 缺少必要的前提条件、注意事项等;

      ● 图形、表格、文字等晦涩难懂;

      ● 逻辑不清晰,该分类、分项、分步骤的没有给出;

      正确性

      ● 技术原理、功能、规格等描述和软件不一致,存在错误;

      ● 原理图、架构图等存在错误;

      ● 命令、命令参数等错误;

      ● 代码片段错误;

      ● 命令无法完成对应功能;

      ● 界面错误,无法指导操作;

      风险提示

      ● 对重要数据或系统存在风险的操作,缺少安全提示;

      内容合规

      ● 违反法律法规,涉及政治、领土主权等敏感词;

      ● 内容侵权;

      您对文档的总体满意度

      非常不满意
      非常满意
      提交
      根据您的反馈,会自动生成issue模板。您只需点击按钮,创建issue即可。
      文档捉虫
      编组 3备份