Ulrich Drepper | b08d5a8 | 2005-07-26 05:00:05 +0000 | [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. |
Ulrich Drepper | 2a07f05 | 2009-01-24 17:16:39 -0800 | [diff] [blame] | 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. |
Mark Wielaard | 018c034 | 2013-11-04 15:19:32 +0100 | [diff] [blame] | 13 | |
| 14 | - although the public libraries (libasm, libdw) have a stable API and are |
Mark Wielaard | e905583 | 2013-11-04 15:43:33 +0100 | [diff] [blame] | 15 | backwards ABI compatible they, and the elfutils tools, do depend on each |
Mark Wielaard | 018c034 | 2013-11-04 15:19:32 +0100 | [diff] [blame] | 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. |