I haven't read enough on the ELF format to be able to answer this myself: why can't one process an ELF file in such a way as to re-create it with a particular string table enlarged sufficiently to hold whatever one wants (not needing to reserve space for patching string table entries in the binary)?
For that matter, if string table contents are only pointed at by structures that are part of the ELF format (and not by arbitrary text or data section contents), then why isn't it possible (if tedious) to determine whether there are any unused bytes in a string table? That is, if one can find the size of the string table, and everything pointing into it should be findable by navigating the various data structures, and all strings are null-terminated, then it should be possible to determine how many times every byte in the string table falls within one or more references, and what those references are. Don't get me wrong; being able to fix run paths at all is much needed. But I was hoping for either a truly smart ELF editor that could reconstitute an ELF file with all necessary adjustments without needing to reserve space for such purposes (and with the potential flexibility to make other interesting adjustments), or alternatively, something with ld.so.1 and crle such that one could set specific overriding run paths for specific execnames (which would at least centralize all such overrides and avoid the need to hack up binaries, making their checksums, md5sums, or signatures invalid). This message posted from opensolaris.org