Bug 1922698 - many DW_TAG_INVALID errors
Summary: many DW_TAG_INVALID errors
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: dwarves
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Arnaldo Carvalho de Melo
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2021-01-30 22:09 UTC by Chris Murphy
Modified: 2021-02-14 01:45 UTC (History)
5 users (show)

Fixed In Version: dwarves-1.20-1.fc33 dwarves-1.20-1.fc32
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2021-02-06 01:18:06 UTC
Type: Bug


Attachments (Terms of Use)

Description Chris Murphy 2021-01-30 22:09:31 UTC
Description of problem:

Compiling the kernel, and > 90% of the output is made up of these die__process DW_TAG_INVALID messages. Looks like a dup of bug 742257.


Version-Release number of selected component (if applicable):
dwarves-1.19-1.fc34.x86_64
gcc-11.0.0-0.17.fc34.x86_64


How reproducible:
Always


Steps to Reproduce:
1. linux git, git checkout tags/v5.11-rc5
2. using config-5.11.0-0.rc5.134.fc34.x86_64+debug, modified with localmodconfig
3. make -j8

Actual results:

Many messages like this:
die__process_function: DW_TAG_INVALID (0x48) @ <0x4b431be> not handled!
die__process_function: DW_TAG_INVALID (0x48) @ <0x4b431cb> not handled!
die__process_function: DW_TAG_INVALID (0x48) @ <0x4b431d8> not handled!
die__process_function: DW_TAG_INVALID (0x48) @ <0x4b431e5> not handled!
DW_AT_<0x20>=0x21
die__process_inline_expansion: DW_TAG_INVALID (0x48) @ <0x4b434b3> not handled!
die__process_inline_expansion: DW_TAG_INVALID (0x48) @ <0x4b4350f> not handled!
die__process_inline_expansion: DW_TAG_INVALID (0x48) @ <0x4b4358d> not handled!
die__process_inline_expansion: DW_TAG_INVALID (0x48) @ <0x4b43680> not handled!
die__process_function: DW_TAG_INVALID (0x48) @ <0x4b43705> not handled!
die__process_function: DW_TAG_INVALID (0x48) @ <0x4b4372e> not handled!
die__process_inline_expansion: DW_TAG_INVALID (0x48) @ <0x4b43853> not handled!
die__process_inline_expansion: DW_TAG_INVALID (0x48) @ <0x4b4389d> not handled!
die__process_function: DW_TAG_INVALID (0x48) @ <0x4b43921> not handled!
die__process_function: DW_TAG_INVALID (0x48) @ <0x4b4394b> not handled!
die__process_function: DW_TAG_INVALID (0x48) @ <0x4b43958> not handled!
die__process_function: DW_TAG_INVALID (0x48) @ <0x4b43965> not handled!


kernel compile does complete

Expected results:


No errors.

Additional info:

Comment 1 Mark Wielaard 2021-01-30 22:23:21 UTC
DW_TAG_call_site is 0x48, which is the DWARF5 standardized tag for DW_TAG_GNU_call_site

Comment 2 Chris Murphy 2021-01-30 23:17:43 UTC
Also quite a lot of each of these lines, repeating:

DW_AT_<0xb>=0x21
DW_AT_<0x88>=0x21

And quite a lot of these lines but with different paths to file:

ld: warning: orphan section `.debug_line_str' from `kernel/sched/autogroup.o' being placed in section `.debug_line_str'
ld: warning: orphan section `.debug_loclists' from `kernel/sched/stats.o' being placed in section `.debug_loclists'
ld: warning: orphan section `.debug_rnglists' from `kernel/sched/stats.o' being placed in section `.debug_rnglists'
ld: warning: orphan section `.debug_line_str' from `kernel/sched/stats.o' being placed in section `.debug_line_str'
ld: warning: orphan section `.debug_loclists' from `kernel/sched/debug.o' being placed in section `.debug_loclists'
ld: warning: orphan section `.debug_rnglists' from `kernel/sched/debug.o' being placed in section `.debug_rnglists'
ld: warning: orphan section `.debug_line_str' from `kernel/sched/debug.o' being placed in section `.debug_line_str'
ld: warning: orphan section `.debug_loclists' from `kernel/sched/cpuacct.o' being placed in section `.debug_loclists'
ld: warning: orphan section `.debug_rnglists' from `kernel/sched/cpuacct.o' being placed in section `.debug_rnglists'
ld: warning: orphan section `.debug_line_str' from `kernel/sched/cpuacct.o' being placed in section `.debug_line_str'
ld: warning: orphan section `.debug_loclists' from `kernel/sched/cpufreq.o' being placed in section `.debug_loclists'
ld: warning: orphan section `.debug_rnglists' from `kernel/sched/cpufreq.o' being placed in section `.debug_rnglists'
ld: warning: orphan section `.debug_line_str' from `kernel/sched/cpufreq.o' being placed in section `.debug_line_str'
ld: warning: orphan section `.debug_loclists' from `kernel/sched/cpufreq_schedutil.o' being placed in section `.debug_loclists'
ld: warning: orphan section `.debug_rnglists' from `kernel/sched/cpufreq_schedutil.o' being placed in section `.debug_rnglists'
ld: warning: orphan section `.debug_line_str' from `kernel/sched/cpufreq_schedutil.o' being placed in section `.debug_line_str'

Comment 3 Mark Wielaard 2021-01-30 23:45:14 UTC
(In reply to Chris Murphy from comment #2)
> Also quite a lot of each of these lines, repeating:
> 
> DW_AT_<0xb>=0x21
> DW_AT_<0x88>=0x21

Those are DW_AT_byte_size and DW_AT_alignment given as DW_FORM_implicit_const.
Which is a new FORM in DWARF5 providing a constant value.

It should be solved upstream by:

commit 8ec231f6b0c8aaeff02ba9e5ca9ee79d86e026d2
Author: Arnaldo Carvalho de Melo <acme>
Date:   Wed Jan 27 11:12:06 2021 -0300

    dwarf_loader: Support DW_FORM_implicit_const in attr_numeric()
    
    Will be used to read DW_AT_data_bit_offset.
    
    Signed-off-by: Arnaldo Carvalho de Melo <acme>


> And quite a lot of these lines but with different paths to file:
> 
> ld: warning: orphan section `.debug_line_str' from
> `kernel/sched/autogroup.o' being placed in section `.debug_line_str'
> ld: warning: orphan section `.debug_loclists' from `kernel/sched/stats.o'
> being placed in section `.debug_loclists'
> ld: warning: orphan section `.debug_rnglists' from `kernel/sched/stats.o'
> being placed in section `.debug_rnglists't 
> ld: warning: orphan section `.debug_line_str' from `kernel/sched/stats.o'
> being placed in section `.debug_line_str'
> ld: warning: orphan section `.debug_loclists' from `kernel/sched/debug.o'
> being placed in section `.debug_loclists'
> ld: warning: orphan section `.debug_rnglists' from `kernel/sched/debug.o'
> being placed in section `.debug_rnglists'
> ld: warning: orphan section `.debug_line_str' from `kernel/sched/debug.o'
> being placed in section `.debug_line_str'
> ld: warning: orphan section `.debug_loclists' from `kernel/sched/cpuacct.o'
> being placed in section `.debug_loclists'
> ld: warning: orphan section `.debug_rnglists' from `kernel/sched/cpuacct.o'
> being placed in section `.debug_rnglists'
> ld: warning: orphan section `.debug_line_str' from `kernel/sched/cpuacct.o'
> being placed in section `.debug_line_str'
> ld: warning: orphan section `.debug_loclists' from `kernel/sched/cpufreq.o'
> being placed in section `.debug_loclists'
> ld: warning: orphan section `.debug_rnglists' from `kernel/sched/cpufreq.o'
> being placed in section `.debug_rnglists'
> ld: warning: orphan section `.debug_line_str' from `kernel/sched/cpufreq.o'
> being placed in section `.debug_line_str'
> ld: warning: orphan section `.debug_loclists' from
> `kernel/sched/cpufreq_schedutil.o' being placed in section `.debug_loclists'
> ld: warning: orphan section `.debug_rnglists' from
> `kernel/sched/cpufreq_schedutil.o' being placed in section `.debug_rnglists'
> ld: warning: orphan section `.debug_line_str' from
> `kernel/sched/cpufreq_schedutil.o' being placed in section `.debug_line_str'

I think that is a linker (or linker script) issue.
Should probably be reported either against the kernel or against binutils.
Might be resolved in binutils by:

commit 9e42b97628f96d8c7f59890e368ddf3a0bd8c811
Author: Fangrui Song <maskray>
Date:   Mon Jan 25 11:35:57 2021 +0000

    Add some more DWARF-5 sections

commit b8df69003de5c662fab94d10af3ad335909fa5bf
Author: Nick Clifton <nickc>
Date:   Mon Jan 25 11:20:20 2021 +0000

    Update linker scripts with the names of new DWARF-5 debug sections.
    
            * scripttempl/DWARF.sc: Add .debug_loclists, .debug_rnglists,
            .debug_line_str and .debug_str_offsets.  Move .debug_macro and
            .debug_addr into DWARF-5 section.

Or that might be something else. Best to ask in a new binutils bug.

Comment 4 Chris Murphy 2021-01-31 00:09:11 UTC
Done. Bug 1922707

Comment 5 Mark Wielaard 2021-01-31 01:51:18 UTC
(In reply to Chris Murphy from comment #4)
> Done. Bug 1922707

Thanks.

I did sent a patch for the TAG issue upstream:
https://www.spinics.net/lists/dwarves/msg00857.html

Comment 6 Nick Desaulniers 2021-02-04 01:25:59 UTC
I can confirm that with pahole @ 8d6f06f053a06829589dd3b4b4f88f8a73a21006, I no longer observe `DW_TAG_INVALID (0x48)` related failures. Thanks Mark.

Comment 7 Fedora Update System 2021-02-05 13:21:29 UTC
FEDORA-2021-804e7a572c has been submitted as an update to Fedora 33. https://bodhi.fedoraproject.org/updates/FEDORA-2021-804e7a572c

Comment 8 Fedora Update System 2021-02-05 16:34:50 UTC
FEDORA-2021-eb4c8e9e7c has been submitted as an update to Fedora 32. https://bodhi.fedoraproject.org/updates/FEDORA-2021-eb4c8e9e7c

Comment 9 Fedora Update System 2021-02-06 01:18:06 UTC
FEDORA-2021-804e7a572c has been pushed to the Fedora 33 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 10 Fedora Update System 2021-02-06 01:58:59 UTC
FEDORA-2021-eb4c8e9e7c has been pushed to the Fedora 32 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2021-eb4c8e9e7c`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-eb4c8e9e7c

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 11 Fedora Update System 2021-02-14 01:45:35 UTC
FEDORA-2021-eb4c8e9e7c has been pushed to the Fedora 32 stable repository.
If problem still persists, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.