我正在尝试编译自己的 UML 内核。我成功创建了一个 ./linux 可执行文件,但在我的 32 位系统上它是 64 位的。
file vmlinux
vmlinux: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped
uname -a
Linux testbox 2.6.32-5-686 #1 SMP Wed Jun 17 16:11:42 UTC 2015 i686 GNU/Linux
为了制作内核我执行了:
make ARCH=um defconfig
make -j4 linux ARCH=um
我如何强制获取 32 位可执行文件?make 是否有其他参数?
答案1
我自己发现,在内核配置(make menuconfig ARCH=um)中可以设置 64 位内核 - 或者取消设置它 => 这样我就得到了一个 32 位可执行文件。