mirror of
https://git.yoctoproject.org/poky
synced 2026-05-30 12:29:55 +00: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
|
where you have installed them and whether those files are in
|
||||||
different locations than the defaults.
|
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
|
Following Recipe Style Guidelines
|
||||||
---------------------------------
|
---------------------------------
|
||||||
|
|
||||||
@@ -8273,26 +8266,39 @@ in a format suitable for use in global configuration (e.g.,
|
|||||||
output from this command::
|
output from this command::
|
||||||
|
|
||||||
$ buildhistory-collect-srcrevs -a
|
$ 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
|
# 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::
|
.. note::
|
||||||
|
|
||||||
@@ -8354,21 +8360,18 @@ Here is an example of ``image-info.txt``:
|
|||||||
.. code-block:: none
|
.. code-block:: none
|
||||||
|
|
||||||
DISTRO = poky
|
DISTRO = poky
|
||||||
DISTRO_VERSION = 1.7
|
DISTRO_VERSION = 3.4+snapshot-a0245d7be08f3d24ea1875e9f8872aa6bbff93be
|
||||||
USER_CLASSES = buildstats image-prelink
|
USER_CLASSES = buildstats
|
||||||
IMAGE_CLASSES = image_types
|
IMAGE_CLASSES = qemuboot qemuboot license_image
|
||||||
IMAGE_FEATURES = debug-tweaks
|
IMAGE_FEATURES = debug-tweaks
|
||||||
IMAGE_LINGUAS =
|
IMAGE_LINGUAS =
|
||||||
IMAGE_INSTALL = packagegroup-core-boot run-postinsts
|
IMAGE_INSTALL = packagegroup-core-boot speex speexdsp
|
||||||
BAD_RECOMMENDATIONS =
|
BAD_RECOMMENDATIONS =
|
||||||
NO_RECOMMENDATIONS =
|
NO_RECOMMENDATIONS =
|
||||||
PACKAGE_EXCLUDE =
|
PACKAGE_EXCLUDE =
|
||||||
ROOTFS_POSTPROCESS_COMMAND = write_package_manifest; license_create_manifest; \
|
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;
|
||||||
write_image_manifest ; buildhistory_list_installed_image ; \
|
IMAGE_POSTPROCESS_COMMAND = buildhistory_get_imageinfo ;
|
||||||
buildhistory_get_image_installed ; ssh_allow_empty_password; \
|
IMAGESIZE = 9265
|
||||||
postinst_enable_logging; rootfs_update_timestamp ; ssh_disable_dns_lookup ;
|
|
||||||
IMAGE_POSTPROCESS_COMMAND = buildhistory_get_imageinfo ;
|
|
||||||
IMAGESIZE = 6900
|
|
||||||
|
|
||||||
Other than ``IMAGESIZE``,
|
Other than ``IMAGESIZE``,
|
||||||
which is the total size of the files in the image in Kbytes, the
|
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`
|
:term:`IMAGE_MANIFEST`
|
||||||
variable for additional information.
|
variable for additional information.
|
||||||
|
|
||||||
Optimizing processes that are run across the image include ``mklibs``,
|
Optimizing processes that are run across the image include ``mklibs``
|
||||||
``prelink``, and any other post-processing commands as defined by the
|
and any other post-processing commands as defined by the
|
||||||
:term:`ROOTFS_POSTPROCESS_COMMAND`
|
:term:`ROOTFS_POSTPROCESS_COMMAND`
|
||||||
variable. The ``mklibs`` process optimizes the size of the libraries,
|
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.
|
|
||||||
|
|
||||||
After the root filesystem is built, processing begins on the image
|
After the root filesystem is built, processing begins on the image
|
||||||
through the :ref:`ref-tasks-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
|
You can learn more about the AutoBuilder used by the Yocto Project
|
||||||
Autobuilder :doc:`here </test-manual/understand-autobuilder>`.
|
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
|
- *Pseudo:* Pseudo is the Yocto Project implementation of
|
||||||
`fakeroot <http://man.he.net/man1/fakeroot>`__, which is used to run
|
`fakeroot <http://man.he.net/man1/fakeroot>`__, which is used to run
|
||||||
commands in an environment that seemingly has root privileges.
|
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
|
Normally, you do not use this class directly. Instead, you add "live" to
|
||||||
:term:`IMAGE_FSTYPES`.
|
: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:
|
.. _ref-classes-insane:
|
||||||
|
|
||||||
``insane.bbclass``
|
``insane.bbclass``
|
||||||
|
|||||||
@@ -455,7 +455,4 @@ changing it?
|
|||||||
**A:** The first most obvious change is the system stripping debug symbols from
|
**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
|
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
|
: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
|
file will ensure the binary is unchanged.
|
||||||
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.
|
|
||||||
|
|||||||
@@ -8537,12 +8537,11 @@ system and gives an overview of their function and contents.
|
|||||||
|
|
||||||
:term:`USER_CLASSES`
|
:term:`USER_CLASSES`
|
||||||
A list of classes to globally inherit. These classes are used by the
|
A list of classes to globally inherit. These classes are used by the
|
||||||
OpenEmbedded build system to enable extra features (e.g.
|
OpenEmbedded build system to enable extra features.
|
||||||
``buildstats``, ``image-prelink``, and so forth).
|
|
||||||
|
|
||||||
The default list is set in your ``local.conf`` file::
|
The default list is set in your ``local.conf`` file::
|
||||||
|
|
||||||
USER_CLASSES ?= "buildstats image-prelink"
|
USER_CLASSES ?= "buildstats"
|
||||||
|
|
||||||
For more information, see
|
For more information, see
|
||||||
``meta-poky/conf/local.conf.sample`` in the :term:`Source Directory`.
|
``meta-poky/conf/local.conf.sample`` in the :term:`Source Directory`.
|
||||||
|
|||||||
Reference in New Issue
Block a user