On Tue, Oct 22, 2024 at 06:09:56PM +0200, Mickaël Salaün wrote: > When CONFIG_AUDIT is set, its CONFIG_NET dependency is also set, and the > dev_get_by_index and init_net symbols (used by dump_common_audit_data) > are found by the linker. dump_common_audit_data() should then failed to > build when CONFIG_NET is not set. However, because the compiler is > smart, it knows that audit_log_start() always return NULL when > !CONFIG_AUDIT, and it doesn't build the body of common_lsm_audit(). As > a side effect, dump_common_audit_data() is not built and the linker > doesn't error out because of missing symbols. > > Let's only build lsm_audit.o when CONFIG_AUDIT is set. >
CONFIG_AUDIT and CONFIG_SECURITY are independent of each other. With CONFIG_SECURITY=n and CONFIG_AUDIT=y, we now get: Error log: arm-linux-gnueabi-ld: security/lsm_audit.o: in function `audit_log_lsm_data': security/lsm_audit.c:417:(.text+0x5e4): undefined reference to `lockdown_reasons' arm-linux-gnueabi-ld: security/lsm_audit.c:417:(.text+0x5e8): undefined reference to `lockdown_reasons' make[3]: *** [scripts/Makefile.vmlinux:78: vmlinux] Error 1 make[2]: *** [Makefile:1178: vmlinux] Error 2 make[1]: *** [Makefile:224: __sub-make] Error 2 make: *** [Makefile:224: __sub-make] Error 2 Guenter
