-
Notifications
You must be signed in to change notification settings - Fork 639
Description
Summary
The build_multiarch (gcc-arm64-qemu-cross, 22.04) CI job fails with build errors in the aaa_radius module. The root cause is ldconfig -p segfaulting under QEMU emulation, which prevents the Makefile from detecting the radcli library.
This started appearing with runner image ubuntu24/20260302.42 — the same job passes on master as of March 3 (run 22629954256) but fails on March 5 (run 22732062072).
Root Cause
aaa_radius/Makefile:16 uses ldconfig -p | grep radcli to detect the radius library:
RADIUSCLIENT := $(shell if [ -n "`ldconfig -p | grep radcli`" ]; then echo "RADCLI"; \In the QEMU-emulated ARM64 container, ldconfig segfaults:
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
Segmentation fault (core dumped)
Must specify package names on the command line
Since the detection fails, RADIUSCLIENT stays empty, no -DRADCLI is defined, and the build proceeds without the proper include paths — resulting in unknown type name 'VALUE_PAIR', unknown type name 'rc_handle', etc.
Note: CROSS_COMPILE is not set for the *-qemu-cross builds (they compile natively inside the emulated container), so the cross-compile fallback path in aaa_radius/Makefile:44-46 is not taken.
Suggested Fixes
Option A (quick): Add aaa_radius to EXCLUDE_MODULES_ADD for the qemu-cross builds in scripts/build/build.conf.sub:
gcc-arm64-qemu-cross)
...
EXCLUDE_MODULES_ADD="db_unixodbc aaa_radius"
;;Option B (robust): Make the radius detection in aaa_radius/Makefile more resilient — e.g., try pkg-config --exists libradcli first (which doesn't depend on ldconfig), or guard the ldconfig call so a segfault doesn't silently produce an empty result.
CI Log Reference
- Failed run: https://github.com/OpenSIPS/opensips/actions/runs/22732062072/job/65923503535
- Last passing run on master: https://github.com/OpenSIPS/opensips/actions/runs/22629954256