Hi Giuliano,
On Tue, Nov 18, 2025 at 6:58 AM Giuliano Procida gprocida@google.com wrote:
Hi.
Thus do the last one: don't attempt to process files if we have no symbol versions to calculate.
This results in the -T foo option being ignored in the case there were no symbols. I think it would be better, consistent with the documentation and expectations, for the file to be produced empty.
The kernel build doesn't produce empty symtypes files because symbol versioning is skipped for (non-Rust) object files that have no exports, and before rustc 1.91, we never ran gendwarfksyms for Rust object files that didn't have exports.
This means that just the for loop should be skipped, say by adding the condition there with &&.
No, I think the current behavior is correct, we shouldn't produce empty files.
If you disagree, then please update the documentation to match the new behaviour.
I re-read the documentation and it doesn't really state how the -T flag behaves if the tool is used to process a file with no exports. While this doesn't impact kernel builds, a patch to clarify the documentation is always welcome!
Sami