1 环境说明
硬件环境:LS1046A arm64
系统环境:openEuler release 22.03 (LTS-SP1) gcc10.3.1
2 问题现象
一个客户在设备上编译 Suricata 3.1.1 时发现链接时有很多 multiple definition 的错误,
类似如下:
/usr/bin/ld: decode-sctp.o:/root/suricata-3.1.1/src/suricata.h:129: multiple definition of `data_queues';
alert-debuglog.o:/root/suricata-3.1.1/src/suricata.h:129: first defined here
/usr/bin/ld: decode-sctp.o:/root/suricata-3.1.1/src/suricata.h:127: multiple definition of `trans_q'; alert-debuglog.o:/root/suricata-3.1.1/src/suricata.h:127: first defined here
3 复现步骤
wget http://www.openinfosecfoundation.org/download/suricata-3.1.1.tar.gz
yum makecache
dnf install -y gcc libpcap-devel pcre-devel libyaml-devel file-devel \
zlib-devel jansson-devel nss-devel libcap-ng-devel libnet-devel tar make \
libnetfilter_queue-devel lua-devel libmaxm