Skip to content

CI: gcc-arm64-qemu-cross build fails in aaa_radius (ldconfig segfault under QEMU) #3837

@NormB

Description

@NormB

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions