aboutsummaryrefslogtreecommitdiff
path: root/notes/embedded_binary_interface_data.txt
diff options
context:
space:
mode:
Diffstat (limited to 'notes/embedded_binary_interface_data.txt')
-rw-r--r--notes/embedded_binary_interface_data.txt33
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?