18 Star 36 Fork 133

openEuler/llvm-project

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

1、项目介绍

欢迎来到openEuler社区的LLVM项目!本仓库是llvm-project下游仓库。

此仓库包含LLVM项目的源代码,LLVM基础设施是一个用于构建高度优化的编译器、优化器和运行时环境的工具包。

LLVM项目有多个组件。该项目的核心组件被称为“LLVM”,它包含处理中间表示及将其转换为目标文件所需的所有工具(包括汇编器、反汇编器、位码分析器和为位码优化器)、库和头文件。

类C语言使用Clang前端,该组件将C、C++、Objective-C和Objective-C++代码编译成LLVM位码,并使用LLVM将其转换为二进制目标文件。

其他组件包括:C++标准库(libc++)、LLD链接器等。

2、构建指导

首先通过git下载源码,然后通过build.sh脚本一键式构建LLVM。构建方式有直接命令行构建容器化构建两种。

2.1、直接命令行构建

推荐使用openEuler操作系统进行构建,如果您使用其他操作系统,建议使用容器化构建方式。

首先确保系统安装了依赖软件包,可以用如下命令安装。

yum install -y gcc g++ make cmake openssl-devel python3 \
python3-setuptools python-wheel texinfo binutils-devel libatomic

然后可以通过 ./build.sh -h查看当前工程支持的构建选项。通过命令行执行一键式构建,例如:

./build.sh -r -b release -X X86 -j 8

2.2、容器化构建

为了解决由于开发环境差异导致的构建失败和构建产物二进制差异问题,openEuler LLVM项目提供了容器化构建方法。得益于openEuler容器镜像项目,提前制作了llvm-build-deps容器镜像。开发者可以通过build.sh脚本的-C选项启用容器化构建,例如:

./build.sh -C -r -b release -X X86 -j 8   // 添加了-C选项

相关依赖:

  • 开发环境需要正确安装了docker应用。
  • 用户加入了docker用户组,使得build.sh脚本执行docker命令时不需要再加sudo命令。可以通过如下命令将当前用户加入docker用户组。
sudo usermod -aG docker ${USER}

注意:第一次执行容器化构建时,脚本会自动从镜像仓库拉取llvm-build-deps容器镜像。

3、贡献指导

1、Fork 本仓库
2、新建 Feat_xxx 分支
3、提交代码
4、新建 Pull Request

4、讨论与求助

4.1、上游社区

4.1、openEuler社区Compiler SIG

几种方式:

空文件

简介

llvm-project 展开 收起
README
Apache-2.0
取消

发行版 (3)

全部

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/openeuler/llvm-project.git
git@gitee.com:openeuler/llvm-project.git
openeuler
llvm-project
llvm-project
dev_17.0.6

搜索帮助