iperf2.0 扩展支持aarch64 machine `aarch64‘ not recognized

iperf2.0常用来测试网络,但不支持aarch64,一个网络应用软件,想来是由于年代问题导致的。

直接执行configure --host=aarch64-linux-gnu:

checking for aarch64-linux-gnu-ranlib... aarch64-linux-gnu-ranlib
checking build system type... x86_64-unknown-linux-gnu
checking host system type... Invalid configuration `aarch64-linux-gnu': machine `aarch64' not recognized
configure: error: /bin/sh ./config.sub aarch64-linux-gnu failed

看样子是config.sub脚本。为了让该脚本识别,对basic_machine加上aarch64识别:

...

aarch64)
	# add by GTF.
	;;
*-unknown)
...
...

再次configure已经可以生成Makefile了。

make时会两个错:
error: ‘::malloc’ has not been declared
error: redefinition of ‘struct std::__is_integer’
error: previous definition of ‘struct std::__is_integer’

一个是malloc函数问题,一个是int类型问题,configure里修改:

#$as_echo "#define HAVE_MALLOC 0" >>confdefs.h
$as_echo "#define HAVE_MALLOC 1" >>confdefs.h

#注释掉
#$as_echo "#define malloc rpl_malloc" >>confdefs.h

#注释掉
#$as_echo "#define bool int" >>confdefs.h

然后就可以编过了。
奈何本人没文化,通过修改脚本参数来配置configure的方式不贴了。
也可以直接更新脚本,方法别人早写过了,只不过有时候我就喜欢看看错在哪里。

你可能感兴趣的:(问题记录,linux,gnu,shell)