- README.static: Explain why static linking of some libraries is
preferred. OBS-URL: https://build.opensuse.org/package/show/Kernel:kdump/makedumpfile?expand=0&rev=53
This commit is contained in:
parent
94b0ae1713
commit
284c12d52d
45
README.static
Normal file
45
README.static
Normal file
@ -0,0 +1,45 @@
|
||||
Q: Why is makedumpfile linked statically?
|
||||
|
||||
A: To save space.
|
||||
|
||||
Loner answer follows.
|
||||
|
||||
The secondary kernel runs in a very constrained environment. It cannot use
|
||||
the whole RAM of the machine, simply because this is the data that should
|
||||
be saved. Instead, it uses a special portion of RAM that is reserved for
|
||||
that purpose in the primary kernel. Since this is memory that cannot be
|
||||
used by the primary kernel (it is basically dead unless there is a kernel
|
||||
crash, which should be a rare event), it is desirable to keep the size of
|
||||
the reserved memory as small as possible.
|
||||
|
||||
One thing that takes up RAM in the secondary kernel is the root file
|
||||
system. Now, the makedumpfile binary is also run from this filesystem.
|
||||
Consequently, initrd must also include all the dynamic libraries that
|
||||
this binary links against. This can increase the size of the initrd
|
||||
considerably.
|
||||
|
||||
However, we don't need most of that space, because makedumpfile uses only
|
||||
a fraction of all the code present in the dynamic libraries. In fact, when
|
||||
makedumpfile is the only user of those libraries in the secondary kernel
|
||||
environment, the other usual term for these libraries, "shared libraries",
|
||||
no longer matches reality. It is not shared with anything else in the
|
||||
system. On the other hand, some libraries are also used by other binaries
|
||||
in the initrd, so it makes sense to link to them dynamically.
|
||||
|
||||
The following libraries are shared with other tools:
|
||||
|
||||
libdl
|
||||
libz
|
||||
|
||||
The following libraries are only used by makedumpfile, and thus should be
|
||||
linked statically:
|
||||
|
||||
libdw
|
||||
libebl
|
||||
libelf
|
||||
libbz2
|
||||
liblzma
|
||||
|
||||
Static versions of some of the above libraries may not be available in the
|
||||
distro, so a build-time check is performed, and they fall back to linking
|
||||
dynamically if necessary.
|
@ -1,3 +1,9 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 9 17:31:50 UTC 2011 - ptesarik@suse.cz
|
||||
|
||||
- README.static: Explain why static linking of some libraries is
|
||||
preferred.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Nov 3 07:48:12 UTC 2011 - cfarrell@suse.com
|
||||
|
||||
|
@ -30,6 +30,7 @@ Summary: Partial kernel dump
|
||||
Group: System/Kernel
|
||||
Url: https://sourceforge.net/projects/makedumpfile/
|
||||
Source: %{name}-%{version}.tar.bz2
|
||||
Source1: README.static
|
||||
Patch0: %{name}-coptflags.diff
|
||||
Patch1: %{name}-supports-3.0.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
|
Loading…
x
Reference in New Issue
Block a user