折腾了好久iproute2/ip工具的交叉编译,以下方法可轻松编译通过,基于2023年比较新的代码。
1 下载代码
https://github.com/shemminger/iproute2
# 本文基于2023-02-24此commit:
git checkout abe2b38d
2 运行./configure自动生成一个config.mk
3 修改config.mk
AR:=aarch64-linux-gnu-ar
CC:=aarch64-linux-gnu-gcc
YACC:=bison
TC_CONFIG_NO_XT:=y
LIBDIR:=/usr/lib
IP_CONFIG_SETNS:=y
CFLAGS += -DHAVE_SETNS
CFLAGS += -DHAVE_HANDLE_AT -DNEED_STRLCPY
#CFLAGS += -DHAVE_LIBBSD
#LDLIBS += -lbsd
改动解释:
1 第1,2行:修改ar/cc工具链
2 第9,10行:交叉编译器不带libbsd,去除
3 第8行:-DNEED_STRLCPY,使用代码自带的strlcpy函数。这个函数是libbsd里的,我们没有这个lib,不然会报函数找不到。具体可阅读./configure文件中跟libbsd相关的逻辑,比较简单此处略过。
4 make