I tried to compile this on Debian 11 with GCC version 10.2.1, and it appears that newer versions of the C compiler are less forgiving with multiple definitions during linking. Compiling fails due to quite a few multiple definitions:
admin@test:/tmp/libmoon$ ./build.sh 2>&1 | grep 'multiple definition'
/usr/bin/ld: /tmp/libmoon/deps/dpdk/x86_64-native-linuxapp-gcc/lib/librte_pmd_e1000.a(igb_rxtx.o):(.bss+0x0): multiple definition of `igb_flow_list'; /tmp/libmoon/deps/dpdk/x86_64-native-linuxapp-gcc/lib/librte_pmd_e1000.a(igb_ethdev.o):(.bss+0x0): first defined here
...
/usr/bin/ld: /tmp/libmoon/deps/dpdk/x86_64-native-linuxapp-gcc/lib/librte_pmd_ixgbe.a(ixgbe_tm.o):(.bss+0x30): multiple definition of `filter_syn_list'; CMakeFiles/libmoon.dir/src/timestamping_ixgbe.c.o:/tmp/libmoon/deps/dpdk/drivers/net/ixgbe/ixgbe_ethdev.h:403: first defined here
/usr/bin/ld: /tmp/libmoon/deps/dpdk/x86_64-native-linuxapp-gcc/lib/librte_pmd_ixgbe.a(ixgbe_tm.o):(.bss+0x40): multiple definition of `filter_ethertype_list'; CMakeFiles/libmoon.dir/src/timestamping_ixgbe.c.o:/tmp/libmoon/deps/dpdk/drivers/net/ixgbe/ixgbe_ethdev.h:401: first defined here
/usr/bin/ld: /tmp/libmoon/deps/dpdk/x86_64-native-linuxapp-gcc/lib/librte_pmd_ixgbe.a(ixgbe_tm.o):(.bss+0x50): multiple definition of `filter_ntuple_list'; CMakeFiles/libmoon.dir/src/timestamping_ixgbe.c.o:/tmp/libmoon/deps/dpdk/drivers/net/ixgbe/ixgbe_ethdev.h:399: first defined here
I tried to compile this on Debian 11 with GCC version 10.2.1, and it appears that newer versions of the C compiler are less forgiving with multiple definitions during linking. Compiling fails due to quite a few multiple definitions: