我正在尝试在我的 Linux 机器上使用当前的 gcc-6.3 编译旧版本的 Linux (3.4)。但运行 make 命令会显示如下错误:
scripts/kconfig/conf.o: relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC
而且我还没有找到任何解决方案。看来 gcc 需要对某些对象使用 fPIC 标志,而 3.4 内核配置文件并未要求如此。最好我不想触及内核默认值。我应该如何要求 gcc 停止需要此标志或禁用它?
答案1
答案2
无论我解决了什么错误,下一次编译尝试中都会出现新的错误。不幸的是,我发现的最好的解决方案是使用旧的 gcc 来编译这个内核。