[K/N] Dockerfile for building LLVM
Provide a stable environment for building LLVM for Linux by using Docker. Note that the base image is Ubuntu 16.04, so after LLVM update building Kotlin/Native on Linux will require glibc 2.23 or higher.
This commit is contained in:
@@ -0,0 +1,25 @@
|
|||||||
|
FROM ubuntu:16.04
|
||||||
|
|
||||||
|
ENV TZ=Europe/Moscow
|
||||||
|
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||||
|
|
||||||
|
RUN apt-get update
|
||||||
|
RUN apt-get install -y git cmake curl unzip ninja-build gcc g++ build-essential zlib1g-dev
|
||||||
|
|
||||||
|
# Build Python.
|
||||||
|
RUN cd /opt && \
|
||||||
|
curl -LO https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz && \
|
||||||
|
tar -xf Python-3.6.9.tgz && \
|
||||||
|
cd Python-3.6.9 && \
|
||||||
|
./configure && make && make install
|
||||||
|
|
||||||
|
# Create a user.
|
||||||
|
ARG USERNAME=jb
|
||||||
|
RUN groupadd -g 1000 $USERNAME
|
||||||
|
RUN useradd -r -u 1000 --create-home -g $USERNAME $USERNAME
|
||||||
|
USER $USERNAME
|
||||||
|
WORKDIR /home/$USERNAME
|
||||||
|
|
||||||
|
COPY package.py .
|
||||||
|
|
||||||
|
ENTRYPOINT ["python3.6", "package.py"]
|
||||||
@@ -30,6 +30,15 @@ Some examples:
|
|||||||
means that LLVM will build itself by using distribution from the previous step.
|
means that LLVM will build itself by using distribution from the previous step.
|
||||||
* `--stage0` allows using existing LLVM toolchain for bootstrapping.
|
* `--stage0` allows using existing LLVM toolchain for bootstrapping.
|
||||||
|
|
||||||
|
### Docker
|
||||||
|
|
||||||
|
You can use Docker to build LLVM for Linux:
|
||||||
|
```shell
|
||||||
|
docker build -t kotlin-llvm-builder .
|
||||||
|
docker run --rm -it -v <HOST_PATH>:/output kotlin-llvm-builder --archive-path /output/llvm-11.1.0-linux-x64
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
### Known problems
|
### Known problems
|
||||||
1. Bootstrap build is not working on macOS for default git branch.
|
1. Bootstrap build is not working on macOS for default git branch.
|
||||||
2. `libcxx` and `compiler-rt` are built as projects, not runtimes.
|
2. `libcxx` and `compiler-rt` are built as projects, not runtimes.
|
||||||
|
|||||||
Reference in New Issue
Block a user