mirror of
https://git.yoctoproject.org/poky
synced 2026-01-29 21:08:42 +01:00
documentation: remove references to prelink support
Fixing documentation and updating examples containing "prelink" in their output. (From yocto-docs rev: 8927b8fff55fac1bd1fefcff2d16141dbd1ebc51) Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
0966ba1ebb
commit
6df5aa3475
@@ -2534,13 +2534,6 @@ doing the following:
|
||||
where you have installed them and whether those files are in
|
||||
different locations than the defaults.
|
||||
|
||||
.. note::
|
||||
|
||||
If image prelinking is enabled (e.g. :ref:`image-prelink <ref-classes-image-prelink>` is in :term:`USER_CLASSES`
|
||||
which it is by default), prelink will change the binaries in the generated images
|
||||
and this often catches people out. Remove that class to ensure binaries are
|
||||
preserved exactly if that is necessary.
|
||||
|
||||
Following Recipe Style Guidelines
|
||||
---------------------------------
|
||||
|
||||
@@ -8273,26 +8266,39 @@ in a format suitable for use in global configuration (e.g.,
|
||||
output from this command::
|
||||
|
||||
$ buildhistory-collect-srcrevs -a
|
||||
# i586-poky-linux
|
||||
SRCREV:pn-glibc = "b8079dd0d360648e4e8de48656c5c38972621072"
|
||||
SRCREV:pn-glibc-initial = "b8079dd0d360648e4e8de48656c5c38972621072"
|
||||
SRCREV:pn-opkg-utils = "53274f087565fd45d8452c5367997ba6a682a37a"
|
||||
SRCREV:pn-kmod = "fd56638aed3fe147015bfa10ed4a5f7491303cb4"
|
||||
# x86_64-linux
|
||||
SRCREV:pn-gtk-doc-stub-native = "1dea266593edb766d6d898c79451ef193eb17cfa"
|
||||
SRCREV:pn-dtc-native = "65cc4d2748a2c2e6f27f1cf39e07a5dbabd80ebf"
|
||||
SRCREV:pn-update-rc.d-native = "eca680ddf28d024954895f59a241a622dd575c11"
|
||||
SRCREV_glibc:pn-cross-localedef-native = "b8079dd0d360648e4e8de48656c5c38972621072"
|
||||
SRCREV_localedef:pn-cross-localedef-native = "c833367348d39dad7ba018990bfdaffaec8e9ed3"
|
||||
SRCREV:pn-prelink-native = "faa069deec99bf61418d0bab831c83d7c1b797ca"
|
||||
SRCREV:pn-opkg-utils-native = "53274f087565fd45d8452c5367997ba6a682a37a"
|
||||
SRCREV:pn-kern-tools-native = "23345b8846fe4bd167efdf1bd8a1224b2ba9a5ff"
|
||||
SRCREV:pn-kmod-native = "fd56638aed3fe147015bfa10ed4a5f7491303cb4"
|
||||
# qemux86-poky-linux
|
||||
SRCREV_machine:pn-linux-yocto = "38cd560d5022ed2dbd1ab0dca9642e47c98a0aa1"
|
||||
SRCREV_meta:pn-linux-yocto = "a227f20eff056e511d504b2e490f3774ab260d6f"
|
||||
# all-poky-linux
|
||||
SRCREV:pn-update-rc.d = "eca680ddf28d024954895f59a241a622dd575c11"
|
||||
SRCREV:pn-ca-certificates = "07de54fdcc5806bde549e1edf60738c6bccf50e8"
|
||||
SRCREV:pn-update-rc.d = "8636cf478d426b568c1be11dbd9346f67e03adac"
|
||||
# core2-64-poky-linux
|
||||
SRCREV:pn-binutils = "87d4632d36323091e731eb07b8aa65f90293da66"
|
||||
SRCREV:pn-btrfs-tools = "8ad326b2f28c044cb6ed9016d7c3285e23b673c8"
|
||||
SRCREV_bzip2-tests:pn-bzip2 = "f9061c030a25de5b6829e1abf373057309c734c0"
|
||||
SRCREV:pn-e2fsprogs = "02540dedd3ddc52c6ae8aaa8a95ce75c3f8be1c0"
|
||||
SRCREV:pn-file = "504206e53a89fd6eed71aeaf878aa3512418eab1"
|
||||
SRCREV_glibc:pn-glibc = "24962427071fa532c3c48c918e9d64d719cc8a6c"
|
||||
SRCREV:pn-gnome-desktop-testing = "e346cd4ed2e2102c9b195b614f3c642d23f5f6e7"
|
||||
SRCREV:pn-init-system-helpers = "dbd9197569c0935029acd5c9b02b84c68fd937ee"
|
||||
SRCREV:pn-kmod = "b6ecfc916a17eab8f93be5b09f4e4f845aabd3d1"
|
||||
SRCREV:pn-libnsl2 = "82245c0c58add79a8e34ab0917358217a70e5100"
|
||||
SRCREV:pn-libseccomp = "57357d2741a3b3d3e8425889a6b79a130e0fa2f3"
|
||||
SRCREV:pn-libxcrypt = "50cf2b6dd4fdf04309445f2eec8de7051d953abf"
|
||||
SRCREV:pn-ncurses = "51d0fd9cc3edb975f04224f29f777f8f448e8ced"
|
||||
SRCREV:pn-procps = "19a508ea121c0c4ac6d0224575a036de745eaaf8"
|
||||
SRCREV:pn-psmisc = "5fab6b7ab385080f1db725d6803136ec1841a15f"
|
||||
SRCREV:pn-ptest-runner = "bcb82804daa8f725b6add259dcef2067e61a75aa"
|
||||
SRCREV:pn-shared-mime-info = "18e558fa1c8b90b86757ade09a4ba4d6a6cf8f70"
|
||||
SRCREV:pn-zstd = "e47e674cd09583ff0503f0f6defd6d23d8b718d3"
|
||||
# qemux86_64-poky-linux
|
||||
SRCREV_machine:pn-linux-yocto = "20301aeb1a64164b72bc72af58802b315e025c9c"
|
||||
SRCREV_meta:pn-linux-yocto = "2d38a472b21ae343707c8bd64ac68a9eaca066a0"
|
||||
# x86_64-linux
|
||||
SRCREV:pn-binutils-cross-x86_64 = "87d4632d36323091e731eb07b8aa65f90293da66"
|
||||
SRCREV_glibc:pn-cross-localedef-native = "24962427071fa532c3c48c918e9d64d719cc8a6c"
|
||||
SRCREV_localedef:pn-cross-localedef-native = "794da69788cbf9bf57b59a852f9f11307663fa87"
|
||||
SRCREV:pn-debianutils-native = "de14223e5bffe15e374a441302c528ffc1cbed57"
|
||||
SRCREV:pn-libmodulemd-native = "ee80309bc766d781a144e6879419b29f444d94eb"
|
||||
SRCREV:pn-virglrenderer-native = "363915595e05fb252e70d6514be2f0c0b5ca312b"
|
||||
SRCREV:pn-zstd-native = "e47e674cd09583ff0503f0f6defd6d23d8b718d3"
|
||||
|
||||
.. note::
|
||||
|
||||
@@ -8354,21 +8360,18 @@ Here is an example of ``image-info.txt``:
|
||||
.. code-block:: none
|
||||
|
||||
DISTRO = poky
|
||||
DISTRO_VERSION = 1.7
|
||||
USER_CLASSES = buildstats image-prelink
|
||||
IMAGE_CLASSES = image_types
|
||||
DISTRO_VERSION = 3.4+snapshot-a0245d7be08f3d24ea1875e9f8872aa6bbff93be
|
||||
USER_CLASSES = buildstats
|
||||
IMAGE_CLASSES = qemuboot qemuboot license_image
|
||||
IMAGE_FEATURES = debug-tweaks
|
||||
IMAGE_LINGUAS =
|
||||
IMAGE_INSTALL = packagegroup-core-boot run-postinsts
|
||||
IMAGE_INSTALL = packagegroup-core-boot speex speexdsp
|
||||
BAD_RECOMMENDATIONS =
|
||||
NO_RECOMMENDATIONS =
|
||||
PACKAGE_EXCLUDE =
|
||||
ROOTFS_POSTPROCESS_COMMAND = write_package_manifest; license_create_manifest; \
|
||||
write_image_manifest ; buildhistory_list_installed_image ; \
|
||||
buildhistory_get_image_installed ; ssh_allow_empty_password; \
|
||||
postinst_enable_logging; rootfs_update_timestamp ; ssh_disable_dns_lookup ;
|
||||
IMAGE_POSTPROCESS_COMMAND = buildhistory_get_imageinfo ;
|
||||
IMAGESIZE = 6900
|
||||
ROOTFS_POSTPROCESS_COMMAND = write_package_manifest; license_create_manifest; cve_check_write_rootfs_manifest; ssh_allow_empty_password; ssh_allow_root_login; postinst_enable_logging; rootfs_update_timestamp; write_image_test_data; empty_var_volatile; sort_passwd; rootfs_reproducible;
|
||||
IMAGE_POSTPROCESS_COMMAND = buildhistory_get_imageinfo ;
|
||||
IMAGESIZE = 9265
|
||||
|
||||
Other than ``IMAGESIZE``,
|
||||
which is the total size of the files in the image in Kbytes, the
|
||||
|
||||
@@ -1036,12 +1036,10 @@ for example, to determine whether or not to run specific tests. See the
|
||||
:term:`IMAGE_MANIFEST`
|
||||
variable for additional information.
|
||||
|
||||
Optimizing processes that are run across the image include ``mklibs``,
|
||||
``prelink``, and any other post-processing commands as defined by the
|
||||
Optimizing processes that are run across the image include ``mklibs``
|
||||
and any other post-processing commands as defined by the
|
||||
:term:`ROOTFS_POSTPROCESS_COMMAND`
|
||||
variable. The ``mklibs`` process optimizes the size of the libraries,
|
||||
while the ``prelink`` process optimizes the dynamic linking of shared
|
||||
libraries to reduce start up time of executables.
|
||||
variable. The ``mklibs`` process optimizes the size of the libraries.
|
||||
|
||||
After the root filesystem is built, processing begins on the image
|
||||
through the :ref:`ref-tasks-image`
|
||||
|
||||
@@ -387,39 +387,6 @@ Yocto Project:
|
||||
You can learn more about the AutoBuilder used by the Yocto Project
|
||||
Autobuilder :doc:`here </test-manual/understand-autobuilder>`.
|
||||
|
||||
- *Cross-Prelink:* Prelinking is the process of pre-computing the load
|
||||
addresses and link tables generated by the dynamic linker as compared
|
||||
to doing this at runtime. Doing this ahead of time results in
|
||||
performance improvements when the application is launched and reduced
|
||||
memory usage for libraries shared by many applications.
|
||||
|
||||
Historically, cross-prelink is a variant of prelink, which was
|
||||
conceived by `Jakub
|
||||
Jelínek <https://people.redhat.com/jakub/prelink.pdf>`__ a number of
|
||||
years ago. Both prelink and cross-prelink are maintained in the same
|
||||
repository albeit on separate branches. By providing an emulated
|
||||
runtime dynamic linker (i.e. ``glibc``-derived ``ld.so`` emulation),
|
||||
the cross-prelink project extends the prelink software's ability to
|
||||
prelink a sysroot environment. Additionally, the cross-prelink
|
||||
software enables the ability to work in sysroot style environments.
|
||||
|
||||
The dynamic linker determines standard load address calculations
|
||||
based on a variety of factors such as mapping addresses, library
|
||||
usage, and library function conflicts. The prelink tool uses this
|
||||
information, from the dynamic linker, to determine unique load
|
||||
addresses for executable and linkable format (ELF) binaries that are
|
||||
shared libraries and dynamically linked. The prelink tool modifies
|
||||
these ELF binaries with the pre-computed information. The result is
|
||||
faster loading and often lower memory consumption because more of the
|
||||
library code can be re-used from shared Copy-On-Write (COW) pages.
|
||||
|
||||
The original upstream prelink project only supports running prelink
|
||||
on the end target device due to the reliance on the target device's
|
||||
dynamic linker. This restriction causes issues when developing a
|
||||
cross-compiled system. The cross-prelink adds a synthesized dynamic
|
||||
loader that runs on the host, thus permitting cross-prelinking
|
||||
without ever having to run on a read-write target filesystem.
|
||||
|
||||
- *Pseudo:* Pseudo is the Yocto Project implementation of
|
||||
`fakeroot <http://man.he.net/man1/fakeroot>`__, which is used to run
|
||||
commands in an environment that seemingly has root privileges.
|
||||
|
||||
@@ -953,21 +953,6 @@ specified by :term:`EFI_PROVIDER` if
|
||||
Normally, you do not use this class directly. Instead, you add "live" to
|
||||
:term:`IMAGE_FSTYPES`.
|
||||
|
||||
.. _ref-classes-image-prelink:
|
||||
|
||||
``image-prelink.bbclass``
|
||||
=========================
|
||||
|
||||
The ``image-prelink`` class enables the use of the ``prelink`` utility
|
||||
during the :ref:`ref-tasks-rootfs` task, which optimizes
|
||||
the dynamic linking of shared libraries to reduce executable startup
|
||||
time.
|
||||
|
||||
By default, the class is enabled in the ``local.conf.template`` using
|
||||
the :term:`USER_CLASSES` variable as follows::
|
||||
|
||||
USER_CLASSES ?= "buildstats image-prelink"
|
||||
|
||||
.. _ref-classes-insane:
|
||||
|
||||
``insane.bbclass``
|
||||
|
||||
@@ -455,7 +455,4 @@ changing it?
|
||||
**A:** The first most obvious change is the system stripping debug symbols from
|
||||
it. Setting :term:`INHIBIT_PACKAGE_STRIP` to stop debug symbols being stripped and/or
|
||||
:term:`INHIBIT_PACKAGE_DEBUG_SPLIT` to stop debug symbols being split into a separate
|
||||
file will ensure the binary is unchanged. The other less obvious thing that can
|
||||
happen is prelinking of the image. This is set by default in local.conf via
|
||||
:term:`USER_CLASSES` which can contain 'image-prelink'. If you remove that, the
|
||||
image will not be prelinked meaning the binaries would be unchanged.
|
||||
file will ensure the binary is unchanged.
|
||||
|
||||
@@ -8537,12 +8537,11 @@ system and gives an overview of their function and contents.
|
||||
|
||||
:term:`USER_CLASSES`
|
||||
A list of classes to globally inherit. These classes are used by the
|
||||
OpenEmbedded build system to enable extra features (e.g.
|
||||
``buildstats``, ``image-prelink``, and so forth).
|
||||
OpenEmbedded build system to enable extra features.
|
||||
|
||||
The default list is set in your ``local.conf`` file::
|
||||
|
||||
USER_CLASSES ?= "buildstats image-prelink"
|
||||
USER_CLASSES ?= "buildstats"
|
||||
|
||||
For more information, see
|
||||
``meta-poky/conf/local.conf.sample`` in the :term:`Source Directory`.
|
||||
|
||||
Reference in New Issue
Block a user