blob: f7e4b61e533be02ce710ef2e4a6c37a845586f23 [file] [log] [blame]
Ulrich Drepperb08d5a82005-07-26 05:00:05 +00001Fundamental 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 Drepper2a07f052009-01-24 17:16:39 -08007
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 Wielaard018c0342013-11-04 15:19:32 +010013
14- although the public libraries (libasm, libdw) have a stable API and are
Mark Wielaarde9055832013-11-04 15:43:33 +010015 backwards ABI compatible they, and the elfutils tools, do depend on each
Mark Wielaard018c0342013-11-04 15:19:32 +010016 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.