Closed kiddin9 closed 4 years ago
这看起来像是链接的问题。在 x86 的 5.4 内核上可以编译通过吗?
我测试的是openwrt x86.
@Chion82 openwrt X86用的https://github.com/LGA1150/openwrt-fullconenat的源码同样的错误,LGA1150也是直接引用的netfilter-full-cone-nat项目的源码。请问应该怎么修复?
@garypang13 你用make -j1 V=s
单线程编译就能发现这个问题和fullconenat
没关系,是编译objtool
时报的错。你可以试试在Advanced configuration options (for developers) > Toolchain Options
里面把GCC compiler Version
和Binutils Version
都改成最新版再编译。我用gcc 9.3+Binutils 2.34
可以正常编译32位的openwrt X86
@llccd 我用的是gcc 8.4+Binutils 2.31 版本并不低,以前都是用的这个版本,都能正常编译 lean的用的gcc 7+Binutils 2.31 也能编译成功. 所以不是gcc和Binutils版本导致的. 就是升级Kernel到5.4才出现的这个问题.
@llccd 我自己测试更改gcc和Binutils为最新版后,在openwrt主线5.4内核下依然失败,但是下午要上班没来得及V=s细看具体错误。在openwrt主线4.19内核下低版本gcc和Binutils都无问题,可以编译通过。且5.4内核下,与4.19内核同一个config,只是去掉fullconenat就可编译通过。变量只有fullconenat
@tinnlux 你用我改过的Makefile https://github.com/llccd/openwrt-fullconenat试一下
@llccd 十分感谢,我得明天才能测试了。
@tinnlux 我测试编译成功了,感谢 @llccd
报错如下