RPM macros that list arches the full kernel is built on
cd7e9e8a2f
Linux commit v5.19-rc1~139^2~2 ("kbuild: link symbol CRCs at final link, removing CONFIG_MODULE_REL_CRCS") has broken the assumption aobut the placement of non-absolute CRC symbols in .rodata (and also affects the architectures that used to have these symbols as absolute); rewrite the parsing by utilising "objdump -t" output to figure out the section(s) where the __crc_* symbols are stored and process it instead of the hard-coded ".rodata" section. The change also speeds up the processing a bit, around 33% on synthetic tests: $ time sh -c 'find ./lib/modules/5.14.0-258.el9.ppc64le -name "*.ko.xz" | find-provides.ksyms.old > /dev/null 2> /dev/null' sh -c 10.36s user 5.58s system 137% cpu 11.613 total $ time sh -c 'find ./lib/modules/5.14.0-258.el9.ppc64le -name "*.ko.xz" | find-provides.ksyms.new > /dev/null 2> /dev/null' sh -c 7.82s user 4.59s system 142% cpu 8.686 total $ time sh -c 'find ./lib/modules/5.14.0-258.el9.ppc64le -name "*.ko.xz" -exec sh -c "echo {} | find-provides.ksyms.old" \; > /dev/null 2> /dev/null' sh -c 11.85s user 6.76s system 129% cpu 14.318 total $ time sh -c 'find ./lib/modules/5.14.0-258.el9.ppc64le -name "*.ko.xz" -exec sh -c "echo {} | find-provides.ksyms.new" \; > /dev/null 2> /dev/null' sh -c 8.91s user 5.51s system 135% cpu 10.647 total * find-provides.ksyms: Process "objdump -t" output to get the list of sections where __crc_* symbol contents are placed; retrieve each one with "readelf -R" and supply it to an awk script that cuts the required part of it for each __crc_* symbol in that section. * find-requires.ksyms (all_provides): Likewise. Signed-off-by: Eugene Syromiatnikov <esyr@redhat.com> Resolves: #2135047 |
||
---|---|---|
.gitignore | ||
brp-kmod-restore-perms | ||
brp-kmod-set-exec-bit | ||
find-provides.ksyms | ||
find-requires.ksyms | ||
firmware.prov | ||
kabi.attr | ||
kabi.sh | ||
kernel-srpm-macros.spec | ||
kmod.attr | ||
kmodtool | ||
macros.kernel-srpm | ||
macros.kmp | ||
modalias.attr | ||
modalias.prov | ||
provided_ksyms.attr | ||
README.md | ||
required_ksyms.attr | ||
rpmsort | ||
sources | ||
symset-table |
kernel-srpm-macros
The kernel-srpm-macros package