
The Missing Link: Explaining ELF Static Linking, Semantically [pdf] - ingve
https://www.cs.kent.ac.uk/people/staff/srk21/research/papers/kell16missing-preprint.pdf
======
akkartik
Root cause analysis.

1\. Why is static linking[1] complicated? Because we want to 'reuse' libraries
unmodified.

2\. Why do we want to use libraries unmodified? Because libraries can get
quite complex, and building them isn't always trivial.

3\. Why are libraries complex to build? (Here I must resort to a weasel word.)
Largely because we want to provide the ability to reuse libraries
unmodified[2].

Oops, did I say root cause? We just have circular reasoning. I'm working on
coming up with an alternative:
[https://lists.tildeverse.org/hyperkitty/list/tildeclub@lists...](https://lists.tildeverse.org/hyperkitty/list/tildeclub@lists.tildeverse.org/message/Z7EBQ2ZCBIQ7YMA7Q3RUJWWB4LBIFS3M/)

[1] Dynamic linking has other values, like reducing memory requirements. But
not static linking.

[2] Here's an example, about how Unix `cat` has gained bloat over time, purely
out of compatibility concerns:
[https://news.ycombinator.com/item?id=11340510#11341175](https://news.ycombinator.com/item?id=11340510#11341175)

------
jadia
At a glance the paper looks good and made sense to me. But the codes went way
above my head. I think reading more papers on this topic will give me more
insight.

