diff --git a/documentation/dev-manual/common-tasks.rst b/documentation/dev-manual/common-tasks.rst index cfa81176c3..1caf953901 100644 --- a/documentation/dev-manual/common-tasks.rst +++ b/documentation/dev-manual/common-tasks.rst @@ -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 ` 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 diff --git a/documentation/overview-manual/concepts.rst b/documentation/overview-manual/concepts.rst index 5c6364129d..47493786d9 100644 --- a/documentation/overview-manual/concepts.rst +++ b/documentation/overview-manual/concepts.rst @@ -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` diff --git a/documentation/overview-manual/yp-intro.rst b/documentation/overview-manual/yp-intro.rst index ce2aed519e..a863a7d16e 100644 --- a/documentation/overview-manual/yp-intro.rst +++ b/documentation/overview-manual/yp-intro.rst @@ -387,39 +387,6 @@ Yocto Project: You can learn more about the AutoBuilder used by the Yocto Project Autobuilder :doc:`here `. -- *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 `__ 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 `__, which is used to run commands in an environment that seemingly has root privileges. diff --git a/documentation/ref-manual/classes.rst b/documentation/ref-manual/classes.rst index 03dd375776..cba9793332 100644 --- a/documentation/ref-manual/classes.rst +++ b/documentation/ref-manual/classes.rst @@ -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`` diff --git a/documentation/ref-manual/faq.rst b/documentation/ref-manual/faq.rst index e06dfd972b..e06b5e6caa 100644 --- a/documentation/ref-manual/faq.rst +++ b/documentation/ref-manual/faq.rst @@ -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. diff --git a/documentation/ref-manual/variables.rst b/documentation/ref-manual/variables.rst index c9d7cfbe92..005456f0c4 100644 --- a/documentation/ref-manual/variables.rst +++ b/documentation/ref-manual/variables.rst @@ -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`.