编译Minix3源码,打包为ISO镜像
编译环境
Ubuntu-22.04.1
前置工具安装
sudo apt install build-essential wget git bison flex m4 clang gcc
sudo apt autoremove libgmp-dev libmpfr-dev libmpc-dev libisl-dev
使用8.4.0版本的gcc编译器; 手动编译gcc源码安装
wget http://mirrors.concertpass.com/gcc/releases/gcc-4.8.5/gcc-4.8.5.tar.gz
./contrib/download_prerequisites
./configure --prefix=/usr --disable-multilib
make
make install
zlib 源码下载地址与编译安装
wget https://github.com/madler/zlib/releases/download/v1.3.1/zlib-1.3.1.tar.gz
CXXFLAGS='-std=c++11' ./configure
make
make install
minix3源码
tag为v3.3.0
https://github.com/Stichting-MINIX-Research-Foundation/minix.git
或者
tag是第一版
https://github.com/0xffea/MINIX3.git
依赖包下载与放置目录
v3.3.0源码根目录下
http://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2
http://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2
http://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz
http://gcc.gnu.org/pub/gcc/infrastructure/isl-0.18.tar.bz2
上面的包解压后进入目录编译安装
./configure
make
make install
MINIX3源码根目录下/external/gpl3/gcc目录下
http://mirrors.concertpass.com/gcc/releases/gcc-4.5.3/gcc-4.5.3.tar.bz2
MINIX3源码根目录下/gnu/dist目录下
make-3.80.tar.bz2
MINIX3源码根目录下/external/lgpl2/mpc目录下
mpc-0.9.tar.gz
MINIX3源码根目录下/external/lgpl3/gmp目录下
gmp-5.0.2.tar.bz2
MINIX3源码根目录下/external/lgpl3/mpfr目录下
mpfr-3.0.1.tar.bz
修正会报错的代码 - (没有对应路径文件就不用管-可能是版本调整已修正)
v3.3.0
vi external/bsd/llvm/dist/llvm/include/llvm/IR/ValueMap.h
104: bool hasMD() const { return MDMap != NULL; }
MINIX3
vi gnu/dist/gmake/glob/glob.c
209: #if !defined __alloca
232: #if defined __GNU_LIBRARY__
MINIX3和v3.3.0编译源码
sh build.sh -mi386 -O ../build -U distribution
sh build.sh -mi386 -O ../build tools
v3.3.0打包为iso镜像
sh ./releasetools/x86_cdimage.sh
../obj.i386/tooldir.Linux-3.10.0-1160.76.1.el7.x86_64-x86_64/bin/nbmakefs -t cd9660 -F ../obj.i386/work/input -o "rockridge,bootimage=i386;../obj.i386/destdir.i386/usr/mdec/bootxx_cd9660,label=MINIX" minix_x86.iso ../obj.i386/work/fs