blob: ad99bbde84380150206867a86306fc6b3563d9a9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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?
|