• 欢迎访问佰阅部落
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

OpenArkCompiler:用Docker编译出华为方舟编译器

开发工具 佰阅 4年前 (2019-09-10) 3971次浏览 0个评论

0.编译后效果

OpenArkCompiler:用Docker编译出华为方舟编译器

1.编译方法

STEP1:服务器或本地安装好Docker环境:

以服务器为例,执行以下脚本安装Docker【适用于Ubuntu、debian、centos7、树莓派等等】

 echo y | bash <(curl -L -s https://raw.githubusercontent.com/Baiyuetribe/codes/master/docker.sh)

STEP2:本地新建一个Dockerfile文件,内容如下:

本站稍微修改,移除163镜像以加快编译,源码克隆自官方,实现一个文件就可以完成编译。

FROM ubuntu:16.04 AS build-env
MAINTAINER https://www.openarkcompiler.cn

# Setting up the build environment
RUN dpkg --add-architecture i386 && \
    apt-get -y update && \
    apt-get -y dist-upgrade && \
    apt-get -y install curl git-core tar xz-utils unzip gnupg flex bison gperf build-essential ccache openjdk-8-jdk && \
    apt-get -y install zlib1g-dev libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc lib32z1-dev qemu g++-multilib gcc-multilib libglib2.0-dev libpixman-1-dev linux-libc-dev:i386 && \
    apt-get -y install python3-paramiko python-paramiko python-jenkins python-requests python-xlwt && \
    apt-get -y install gcc-5-aarch64-linux-gnu g++-5-aarch64-linux-gnu aria2 && \
    mkdir -p /tools/ninja /tools/gn && \
    cd /tools && \
    curl -C - -LO http://releases.llvm.org/8.0.0/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz && \
    curl -LO https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-linux.zip && \
    curl -L -o /tools/gn/gn https://archive.softwareheritage.org/browse/content/sha1_git:2dc0d5b26caef44f467de8120b26f8aad8b878be/raw/?filename=gn && \
    tar Jvxf /tools/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz -C /tools/ && \
    unzip /tools/ninja-linux.zip -d /tools/ninja/ && \
    chmod a+x /tools/gn/gn && \
    rm /tools/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz /tools/ninja-linux.zip && \
    rm -rf /var/cache/apt/archives

# copy source
WORKDIR /OpenArkCompiler
RUN git clone https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler.git /OpenArkCompiler

# create symbolic link and
RUN mkdir -p /OpenArkCompiler/tools /OpenArkCompiler/tools/gn && \
    ln -s /tools/ninja /OpenArkCompiler/tools/ninja_1.9.0 && \
    ln -s /tools/gn/gn /OpenArkCompiler/tools/gn/gn && \
    ln -s /tools/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04 /OpenArkCompiler/tools/clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04
# compile
RUN ["/bin/bash", "-c", "source build/envsetup.sh && make"]

# build final docker image
FROM ubuntu:16.04
RUN apt-get -y update && \
    apt-get install -y openjdk-8-jdk curl vim && \
    rm -rf /var/cache/apt/archives
COPY --from=build-env /OpenArkCompiler/out /OpenArkCompiler
VOLUME /OpenArkCompiler
WORKDIR /OpenArkCompiler
ENV PATH=/OpenArkCompiler/bin:$PATH
CMD maple -h

然后执行docker build -t ark .即可编译。

2.使用方法:

未知:因本站不熟悉java语言,此处不做详细说明。

镜像使用方法:

docker run -it ark bash		#进入容器
maple -h	#获取帮助

就可以进入到ark编译完成的目录了。

3.直接体验

如果不想自己编译,可直接使用本站编译好的镜像

docker run -it baiyuetribe/ark bash
maple -h

OpenArkCompiler:用Docker编译出华为方舟编译器

4.开源说明

OpenArkCompiler 四个技术特点

能够将不同语言代码编译成一套可执行文件,在运行环境中高效执行:

  • 支持多语言联合优化、消除跨语言调用开销;
  • 更轻量的语言运行时;
  • 软硬协同充分发挥硬件能效;
  • 支持多样化的终端设备平台

编译器框架代码开源

时间:2019年8月

开源范围:编译器IR+中端语言实现

开放能力:

  • 框架开源供参考学习,了解方舟编译器架构及框架代码
  • 开发者可构建出完整编译器工具链,支持Java Sample程序编译(非应用)

后续开源范围 陆续开源编译器前端、后端、编译优化;完整支持Java程序编译、JavaScript语言应用的编译等。

5.参考来源:

 


佰阅部落 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:OpenArkCompiler:用Docker编译出华为方舟编译器
喜欢 (2)

您必须 登录 才能发表评论!