minix3 下载
git clone https://github.com/Stichting-MINIX-Research-Foundation/minix.git
minix3 改动
build.sh
minix@77f874df4e50:~/work/minix$ git diff build.sh
**diff --git a/build.sh b/build.sh******
**index f75c27274..98c6581ae 100755******
**--- a/build.sh******
**+++ b/build.sh******
@@ -1598,6 +1598,7 @@ rebuildmake()
do_rebuildmake=true
fi
+ HOST_CFLAGS="$HOST_CFLAGS -fcommon"
# Build bootstrap ${toolprefix}make if needed.
if ${do_rebuildmake}; then
statusmsg "Bootstrapping ${toolprefix}make"
tools/Makefile.host
minix@77f874df4e50:~/work/minix$ git diff tools/Makefile.host
**diff --git a/tools/Makefile.host b/tools/Makefile.host******
**index 219b5e538..5d1630f9c 100644******
**--- a/tools/Makefile.host******
**+++ b/tools/Makefile.host******
@@ -81,4 +81,5 @@ ${HOST_FILESDIR}/${F}: ${F}
.endif
.endfor
+HOST_CFLAGS+= -fcommon
.include <bsd.hostprog.mk>
external/bsd/llvm/dist/llvm/include/llvm/IR/ValueMap.h
minix@77f874df4e50:~/work/minix$ git diff external/bsd/llvm/dist/llvm/include/llvm/IR/ValueMap.h
**diff --git a/external/bsd/llvm/dist/llvm/include/llvm/IR/ValueMap.h b/externa******
**l/bsd/llvm/dist/llvm/include/llvm/IR/ValueMap.h******
**index f2ea405f1..f9a1a6240 100644******
**--- a/external/bsd/llvm/dist/llvm/include/llvm/IR/ValueMap.h******
**+++ b/external/bsd/llvm/dist/llvm/include/llvm/IR/ValueMap.h******
@@ -101,7 +101,7 @@ public:
~ValueMap() {}
- bool hasMD() const { return MDMap; }
+ bool hasMD() const { return static_cast<bool>(MDMap); }
MDMapT &MD() {
if (!MDMap)
MDMap.reset(new MDMapT);
minix3 编译环境
ubuntu22.04 Dockerfile
Dockerfile
# minix-builder/Dockerfile
FROM registry.cn-hangzhou.aliyuncs.com/acs/ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential bison flex zlib1g-dev libgmp3-dev libmpc-dev libmpfr-dev \
texinfo git curl ccache ninja-build rsync ca-certificates \
&& rm -rf /var/lib/apt/lists/*
# 创建非 root 用户(避免源码目录权限问题)
RUN useradd -m -s /bin/bash minix
USER minix
WORKDIR /home/minix
# 默认命令:拉源码 + 编译
CMD ["/bin/bash"]
docker 镜像构建脚本
buildDockerImage.sh
docker build --platform linux/amd64 -t minix3-builder .
docker 容器创建并运行脚本
runDockerImage.sh
docker run --platform linux/amd64 -it --name minix3-builder -v /Users/lingke/code/minix-builder/work:/home/minix/work minix3-builder
minix3 编译
bash ./releasetools/x86_hdimage.sh