summaryrefslogtreecommitdiffstats
path: root/NOTES
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2016-12-24 22:31:41 +0100
committerMark Wielaard <mark@klomp.org>2016-12-24 22:51:32 +0100
commit1700fd25e6caf26663af2bd994d1d99fab9df59f (patch)
tree9a0bb382900e622e39e876b85c07e485d2b5c86b /NOTES
parent0d0f8450ffc6135c0938308254f378ac79612e75 (diff)
http://elfutils.org/ is now hosted at http://sourceware.org/elfutils/
fedorahosted used to be our home, but we are now hosted at sourceware. Change the elfutils project home to http://elfutils.org/ Point hosted services (email, release, git, bug tracker and web pages) to https://sourceware.org/elfutils/ Move design notes from README to NOTES. Add URLs for home, releases, bugs, git and mailinglist to README. Make the --version output of all tools the same by using a common print_version function and update the publicly shown copyright holder to the elfutils developers. Signed-off-by: Mark Wielaard <mark@klomp.org>
Diffstat (limited to 'NOTES')
-rw-r--r--NOTES22
1 files changed, 22 insertions, 0 deletions
diff --git a/NOTES b/NOTES
index 4f06b8d2..2a5c23bf 100644
--- a/NOTES
+++ b/NOTES
@@ -1,3 +1,25 @@
+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.
+
+Some notes:
+
- old GNU ld's behavior wrt DSOs seems to be severely broken.
y.o reference foo()