Hello! Chapter 32 of The NetBSD Guide deals with Crosscompiling NetBSD with build.sh.
1. With `list-arch' the full list of the available machines and CPU types is shown, named respectively MACHINE and MACHINE_ARCH. Correct me if I'm wrong, MACHINE_ARCH represents the CPU with its specific instructions set. In other words, this one: <https://en.wikipedia.org/wiki/Instruction_set_architecture> I struggle instead about MACHINE. Some of them (sparc, vax) have just one MACHINE_ARCH with the same name. Some of them have just one MACHINE_ARCH with a different name (amd64). This allows to specify just one between `-m' or `-a', when building with build.sh. Then, there are the cases where a single MACHINE has several MACHINE_ARCH. So, what does MACHINE exactly refer to? 2. (For `host', `build host', etc. refer to the paper <http://www.mewburn.net/luke/papers/build.sh.pdf>) After fetching the sources, and after building the tools for the first time with `-O ~/obj', two directories are created in `~/obj': tooldir.NetBSD-9.99.81-amd64 tools `tooldir.NetBSD-9.99.81-amd64' actually contains the cross-compiler with its tools that have just been built: they are the actual `tools' created by build.sh and they are supposed to run on the host platform. What exactly is, instead, the contents of the directory `tools'? Are they supposed to run on the build host platform to build the cross-compiler and its tools? 3. In Chapter 32, option `-u' for build.sh is used both when building `tools' and when building the kernel itself. Assume to run build 1 as: ./build.sh -U -j2 -O ~/obj -m evbarm -a aarch64 tools kernel=MYKERNEL Then, some modifications to the cross-compiler tools and/or to the kernel sourcefile(s) are performed. In the end, assume to run build 2 as: ./build.sh -U -u -j2 -O ~/obj -m evbarm -a aarch64 tools kernel=MYKERNEL IIUC, `-u' means that if anything between tools and kernel has already been built and its code has not been modified after build 1, now it won't be built again. Is this correct? Bye! Rocky