Hello, This series causes the following failure on the autobuilders:
https://autobuilder.yoctoproject.org/typhoon/#/builders/87/builds/4354/steps/14/logs/stdio 2022-11-06 00:37:54,099 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolAppendTests.test_recipetool_appendfile_add: ERROR 2022-11-06 00:37:54,099 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolAppendTests.test_recipetool_appendfile_add_bindir: ERROR 2022-11-06 00:37:54,099 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolAppendTests.test_recipetool_appendfile_add_machine: ERROR 2022-11-06 00:37:54,099 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolAppendTests.test_recipetool_appendfile_alternatives: ERROR 2022-11-06 00:37:54,099 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolAppendTests.test_recipetool_appendfile_basic: ERROR 2022-11-06 00:37:54,099 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolAppendTests.test_recipetool_appendfile_binary: ERROR 2022-11-06 00:37:54,099 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolAppendTests.test_recipetool_appendfile_extlayer: ERROR 2022-11-06 00:37:54,099 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolAppendTests.test_recipetool_appendfile_inst_func: ERROR 2022-11-06 00:37:54,100 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolAppendTests.test_recipetool_appendfile_inst_glob: ERROR 2022-11-06 00:37:54,100 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolAppendTests.test_recipetool_appendfile_inst_todir_glob: ERROR 2022-11-06 00:37:54,100 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolAppendTests.test_recipetool_appendfile_invalid: ERROR 2022-11-06 00:37:54,100 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolAppendTests.test_recipetool_appendfile_orig: ERROR 2022-11-06 00:37:54,100 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolAppendTests.test_recipetool_appendfile_patch: ERROR 2022-11-06 00:37:54,100 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolAppendTests.test_recipetool_appendfile_postinstall: ERROR 2022-11-06 00:37:54,100 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolAppendTests.test_recipetool_appendfile_renamed: ERROR 2022-11-06 00:37:54,100 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolAppendTests.test_recipetool_appendfile_script: ERROR 2022-11-06 00:37:54,100 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolAppendTests.test_recipetool_appendfile_subdir: ERROR 2022-11-06 00:37:54,100 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolAppendTests.test_recipetool_appendfile_todir: ERROR 2022-11-06 00:37:54,100 - oe-selftest - INFO - RESULTS - recipetool.RecipetoolAppendTests.test_recipetool_appendfile_wildcard: ERROR On 03/11/2022 07:56:06+0000, Nathan Rossi wrote: > From: Nathan Rossi <[email protected]> > > Newer versions of binutils (2.38+) have changed how the > "--only-keep-debug" of objcopy behaves when stripping non-debug sections > from an ELF. > > > https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=68f543154e92ab0f5d6c569e0fa143f5e8bd2d80 > > This change causes associated sections to be correctly marked as NOBITS > with the section contents removed from the output. The side effect is > that this causes issues with objcopy's ability to perform symbol and > relocation stripping (-S/--strip-all) on the debug split ELF, such that > with some object files (e.g. kernel modules) objcopy fails to strip > symbols/relocations with an error like the following: > > .../.debug/nls_cp950.ko[.rodata]: file truncated > > Because of this it is now problematic to generate minidebuginfo for > these types of ELF objects. However it is not typically useful to inject > minidebuginfo into these types of ELFs, and other distributions (e.g. > Fedora, referring to find-debuginfo.sh of debugedit) only insert > minidebuginfo into executables and shared libraries. > > This change causes the minidebuginfo injection to only apply to EXEC/DYN > type ELFs, which limits the injection to executables and shared > libraires. > > Additionally this change fixes the parsing of the sections from the > "readelf -W -S" output which was not accounting for the section index > column having leading spaces for single digit index values e.g. "[ 1]". > > Signed-off-by: Nathan Rossi <[email protected]> > --- > meta/classes-global/package.bbclass | 21 ++++++++++++++++++--- > 1 file changed, 18 insertions(+), 3 deletions(-) > > diff --git a/meta/classes-global/package.bbclass > b/meta/classes-global/package.bbclass > index 2d985d8aff..7a0a428b30 100644 > --- a/meta/classes-global/package.bbclass > +++ b/meta/classes-global/package.bbclass > @@ -490,16 +490,31 @@ def inject_minidebuginfo(file, dvar, dv, d): > bb.debug(1, 'ELF file {} has no debuginfo, skipping minidebuginfo > injection'.format(file)) > return > > + # minidebuginfo does not make sense to apply to ELF objects other than > + # executables and shared libraries, skip applying the minidebuginfo > + # generation for objects like kernel modules. > + for line in subprocess.check_output([readelf, '-h', debugfile], > universal_newlines=True).splitlines(): > + if not line.strip().startswith("Type:"): > + continue > + elftype = line.split(":")[1].strip() > + if not any(elftype.startswith(i) for i in ["EXEC", "DYN"]): > + bb.debug(1, 'ELF file {} is not executable/shared, skipping > minidebuginfo injection'.format(file)) > + return > + break > + > # Find non-allocated PROGBITS, NOTE, and NOBITS sections in the > debuginfo. > # We will exclude all of these from minidebuginfo to save space. > remove_section_names = [] > for line in subprocess.check_output([readelf, '-W', '-S', debugfile], > universal_newlines=True).splitlines(): > - fields = line.split() > - if len(fields) < 8: > + # strip the leading " [ 1]" section index to allow splitting on > space > + if ']' not in line: > + continue > + fields = line[line.index(']') + 1:].split() > + if len(fields) < 7: > continue > name = fields[0] > type = fields[1] > - flags = fields[7] > + flags = fields[6] > # .debug_ sections will be removed by objcopy -S so no need to > explicitly remove them > if name.startswith('.debug_'): > continue > --- > 2.37.2 > > > -- Alexandre Belloni, co-owner and COO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#172804): https://lists.openembedded.org/g/openembedded-core/message/172804 Mute This Topic: https://lists.openembedded.org/mt/94752153/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
