我试图在 64 位机器上编译用户模式 Linux,但defconfig
出现以下错误。
arch/x86/um/user-offsets.c:1: sorry, unimplemented: code model "large" not supported yet
知道这意味着什么吗?
答案1
根据我不稳定的理解:编译脚本正在通过-mcmodel=large
海湾合作委员会的选项。仅从 GCC 4.3 开始支持此选项(或者也许是 4.4)。你似乎有一个旧版本该选项在命令行上被识别,但在幕后并未实现。
该选项生成一个可执行文件,运行在大模型,它会消耗更多的指针内存,但不会对代码和数据部分的地址和大小施加任何限制。这允许内核运行在任何虚拟地址。我认为这对于用户模式 Linux 来说是必要的,因为它必须与真正的内核共存,同时它本身又假装是用户→内核 ABI 的内核。