PR 291271: Some symbols required by dependent modules were missing from qat_common.ko and qat_api.ko, causing load failures when local symbol resolution is disabled.
Details
Verified relevant sysctl settings:
sysctl debug.link_elf_leak_locals
debug.link_elf_leak_locals: 0
sysctl debug.link_elf_obj_leak_locals
debug.link_elf_obj_leak_locals: 0
Loaded QAT modules and confirmed all dependencies load correctly:
- kldload /boot/kernel/qat.ko
- kldstat
Id Refs Address Size Name
1 34 0xffffffff80200000 21268a0 kernel
2 1 0xffffffff82d10000 3220 intpm.ko
3 1 0xffffffff82d14000 2178 smbus.ko
4 1 0xffffffff82d17000 2a80 mac_ntpd.ko
5 1 0xffffffff82d1a000 4390 qat.ko
6 6 0xffffffff82d1f000 15dd0 qat_hw.ko
7 9 0xffffffff82d35000 30020 qat_common.ko
8 8 0xffffffff82d66000 68cd8 qat_api.ko
All symbols exported correctly; no module loading errors observed.
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
Thank you for working on this, but for this driver I think it would be better to just have EXPORT_SYMS=yes rather than enumerating and maintaining the list of symbols. Otherwise this will be a headache for the upstream maintainer.
Incorporated review feedback by exporting all QAT symbols in qat_common and qat_api.
Testing:
Built and loaded qat, qat_hw, qat_common, and qat_api on FreeBSD 16
Modules load successfully with no linker errors or warnings
debug.link_elf_leak_locals=0 and debug.link_elf_obj_leak_locals=0
Verified all modules present and referenced correctly via kldstat