minix3 编译

85 阅读1分钟

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