Would it be a good idea or not to include the interface of libraries into the binary (.so/.dll) files themselves? This would then have to include: * the name and version of the library * for each API-version: - function parameters and returns (names and types) - function constraints (if this is added) - struct/types * interface dependencies on other libraries and their versions * runtime dependencies on other libraries and their versions Implementation details ---------------------- Regarding the ELF format, should be be a section or a segment? Also, should it have SH_ALLOC or not? I think that the `strip` program removes everything that doesn't have SH_ALLOC? Maybe it could use ELF .note.* / SHT_NOTE? - .note.slul-module (name and version) - .note.slul-api (API-versions) - .note.slul-bdeps (interface/build dependencies) - .note.slul-xdeps (runtime/execution dependencies) Problems -------- Some distributions (e.g. Fedora) explicitly say that they want to keep the distribution small for those who don't need development files. So maybe it's a bad idea to make the library files larger for everyone?