https://sourceware.org/bugzilla/show_bug.cgi?id=26028
Bug ID: 26028 Summary: Readelf truncates symbol names - which is both undocumented, and unnecessary Product: binutils Version: 2.34 Status: UNCONFIRMED Severity: normal Priority: P2 Component: binutils Assignee: unassigned at sourceware dot org Reporter: nyh at math dot technion.ac.il Target Milestone: --- Tested on readelf 2.34 from Fedora 32. Readelf appears to truncate symbol names to some length, but this length and even the fact that symbol names are truncated, are not documented in readelf(1). Surprisingly, the "--wide" option avoids this trunction. Here is an example noted in https://github.com/cloudius-systems/osv/issues/1083: $ readelf --dyn-syms build/release/loader.elf ... 295: 000000004036bd10 17 FUNC GLOBAL DEFAULT 4 _ZN6virtio13virtio_driver $ readelf --dyn-syms --wide build/release/loader.elf 295: 000000004036bd10 17 FUNC GLOBAL DEFAULT 4 _ZN6virtio13virtio_driver14set_dev_statusEh Note the truncated symbol name in the first output, and the full symbol name in the second. The documentation for "--wide" suggests that it inhibits breaking lines after 80 characters. But in fact it also (or only?) inhibits truncation. Moreover, the truncation didn't even happen at the 80th character of the line but rather the 84th - I am guessing that this might be because of a miscalculation of the line length because this specific executable had over 16,000 symbols and maybe some of the other fields were longer than expected. I think you should fix the readelf code to never truncate symbol names, no matter how long the line becomes. I can't see how backward compatibility here can be important (especially given that the existing situation doesn't even truncate the line to 80 characters), but if for some reason you don't want to fix the code, please at least fix the documentation, readelf(1): In "--syms" please explain that symbol names may be truncated unless the "--wide" option is used, and in "--wide" please explain what it really does - that it avoids truncation, not line splits, and probably not really at 80 characters. -- You are receiving this mail because: You are on the CC list for the bug.