Ben Cheng | 25b3c04 | 2013-11-20 14:45:36 -0800 | [diff] [blame] | 1 | Fundamental design decision: |
| 2 | |
| 3 | - the sizes of external and internal types are assumed to be the same. |
| 4 | This leaves byte ordering aside. While assuming this the code can be |
| 5 | greatly simplified and speed increases. Since no change violating this |
| 6 | assumption is in sight this is believed to be a worthwhile optimization. |
| 7 | |
| 8 | - the ABI of the backend modules is not guaranteed. Really, not guarantee |
| 9 | whatsoever. We are enforcing this in the code. The modules and their |
| 10 | users must match. No third-party EBL module are supported or allowed. |
| 11 | The only reason there are separate modules is to not have the code for |
| 12 | all architectures in all the binaries. |
Elliott Hughes | 0333382 | 2015-02-18 22:19:45 -0800 | [diff] [blame] | 13 | |
| 14 | - although the public libraries (libasm, libdw) have a stable API and are |
| 15 | backwards ABI compatible they, and the elfutils tools, do depend on each |
| 16 | others internals, and on internals of libelf to provide their interfaces. |
| 17 | So they should always be upgraded in lockstep when packaging the tools |
| 18 | and libraries separately. For one example of how to do that, see the |
| 19 | config/elfutils.spec. |