19 lines
1 KiB
Text
19 lines
1 KiB
Text
Fundamental design decision:
|
|
|
|
- the sizes of external and internal types are assumed to be the same.
|
|
This leaves byte ordering aside. While assuming this the code can be
|
|
greatly simplified and speed increases. Since no change violating this
|
|
assumption is in sight this is believed to be a worthwhile optimization.
|
|
|
|
- the ABI of the backend modules is not guaranteed. Really, no guarantee
|
|
whatsoever. We are enforcing this in the code. The modules and their
|
|
users must match. No third-party EBL module are supported or allowed.
|
|
The only reason there are separate modules is to not have the code for
|
|
all architectures in all the binaries.
|
|
|
|
- although the public libraries (libasm, libdw) have a stable API and are
|
|
backwards ABI compatible they, and the elfutils tools, do depend on each
|
|
others internals, and on internals of libelf to provide their interfaces.
|
|
So they should always be upgraded in lockstep when packaging the tools
|
|
and libraries separately. For one example of how to do that, see the
|
|
config/elfutils.spec.
|