diff options
Diffstat (limited to 'notes/embedded_binary_interface_data.txt')
-rw-r--r-- | notes/embedded_binary_interface_data.txt | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/notes/embedded_binary_interface_data.txt b/notes/embedded_binary_interface_data.txt new file mode 100644 index 0000000..ad99bbd --- /dev/null +++ b/notes/embedded_binary_interface_data.txt @@ -0,0 +1,33 @@ +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? |