]> The Tcpdump Group git mirrors - tcpdump/commit
CI: Make MATRIX_CC loop the outermost.
authorDenis Ovsienko <[email protected]>
Mon, 26 Jul 2021 15:27:28 +0000 (16:27 +0100)
committerDenis Ovsienko <[email protected]>
Mon, 26 Jul 2021 15:31:51 +0000 (16:31 +0100)
commitd3312a6438748730f40e4fd3cbd0dfc56ae16c54
treea01304c08db68fb7a7a9599dc0fc00333ce0f414
parentb1dca9b165677e170a9ed65ae5087de8a122df0d
CI: Make MATRIX_CC loop the outermost.

This way if an iteration includes a local libpcap, the latter is always
compiled with the same CC. This works around odd linking problems on
AIX 7 and Solaris 9 and 10 when one C compiler is GCC and the other is
the vendor's compiler, for example:

* GCC used for libpcap, XL C used for tcpdump:
ld: 0711-317 ERROR: Undefined symbol: .__udivdi3
ld: 0711-317 ERROR: Undefined symbol: .__umoddi3

* GCC used for libpcap, Sun C used for tcpdump:
Undefined                       first referenced
 symbol                             in file
__ctzsi2                            ../libpcap/libpcap.a(optimize.o)
__udivdi3                           ../libpcap/libpcap.a(sf-pcapng.o)
__umoddi3                           ../libpcap/libpcap.a(sf-pcapng.o)
ld: fatal: Symbol referencing errors. No output written to conftest

Similar issues associated with a mix of GCC and Clang had happened on
FreeBSD/AArch64 earlier (addressed in tcpslice commit 75b7771), and
still seem to happen on OpenBSD/AArch64. Hopefully removing the
toolchain mix from the problem space will make it easier to fix other
problems.
build_matrix.sh