]> 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]>
Wed, 29 Sep 2021 14:08:36 +0000 (15:08 +0100)
commitd1d2537fbbc75b82c9f94599fa16c9697a35f7d2
tree5e7c73d5c5f48a2195ea2ac4f45391454624ac3f
parentd884c90309b4c405c8d81e3ab70676773817d9c7
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.

(cherry picked from commit d3312a6438748730f40e4fd3cbd0dfc56ae16c54)
build_matrix.sh