[Bug debug/114608] [14 Regression] Undefined reference in output asm with -fipa-reference -fipa-reference-addressable -fsection-anchors -gbtf
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114608 Jeffrey A. Law changed: What|Removed |Added CC||law at gcc dot gnu.org Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #4 from Jeffrey A. Law --- Should be fixed on the trunk.
[Bug debug/114608] [14 Regression] Undefined reference in output asm with -fipa-reference -fipa-reference-addressable -fsection-anchors -gbtf
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114608 --- Comment #3 from GCC Commits --- The master branch has been updated by David Faust : https://gcc.gnu.org/g:8075477f81ae8d0abf64b80dfbd179151f91b417 commit r14-9876-g8075477f81ae8d0abf64b80dfbd179151f91b417 Author: David Faust Date: Mon Apr 8 11:10:41 2024 -0700 btf: emit symbol refs in DATASEC entries only for BPF [PR114608] The behavior introduced in fa60ac54964 btf: Emit labels in DATASEC bts_offset entries. is only fully correct when compiling for the BPF target with BPF CO-RE enabled. In other cases, depending on optimizations, it can result in an incorrect symbol reference in the entry bts_offset field for a symbol which may not be emitted at all, causing link-time undefined symbol reference errors like in PR114608. The offending bts_offset field of BTF_KIND_DATASEC entries is in reality only currently useful to consumers of BTF information for BPF programs anyway. Correct the regression by only emitting symbol references in these entries when compiling for the BPF target. For other targets, the behavior returns to that prior to fa60ac54964. The underlying cause is related to PR 113566 "btf: incorrect BTF_KIND_DATASEC entries for variables which are optimized out." A complete fix for 113566 is more involved and unsuitable for stage 4, but will be addressed in the near future. gcc/ PR debug/114608 * btfout.cc (btf_asm_datasec_entry): Only emit a symbol reference when generating BTF for BPF CO-RE target. gcc/testsuite/ PR debug/114608 * gcc.dg/debug/btf/btf-datasec-1.c: Check bts_offset symbol references only for BPF target. * gcc.dg/debug/btf/btf-datasec-2.c: Likewise. * gcc.dg/debug/btf/btf-pr106773.c: Likewise.
[Bug debug/114608] [14 Regression] Undefined reference in output asm with -fipa-reference -fipa-reference-addressable -fsection-anchors -gbtf
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114608 Andrew Pinski changed: What|Removed |Added Target Milestone|--- |14.0 Target|riscv*-*-* x86_64-*-* | Keywords||btf-debug
[Bug debug/114608] [14 Regression] Undefined reference in output asm with -fipa-reference -fipa-reference-addressable -fsection-anchors -gbtf
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114608 --- Comment #2 from Patrick O'Neill --- (.BTF+0x88): undefined reference to `a' ^ This is the interesting failure line
[Bug debug/114608] [14 Regression] Undefined reference in output asm with -fipa-reference -fipa-reference-addressable -fsection-anchors -gbtf
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114608 --- Comment #1 from Patrick O'Neill --- Command: > /scratch/tc-testing/tc-apr-4/build-rv64gcv/bin/riscv64-unknown-linux-gnu-gcc > -fipa-reference -fipa-reference-addressable -fsection-anchors -gbtf red.c -o > rv64gcv.out /scratch/tc-testing/tc-apr-4/build-rv64gcv/lib/gcc/riscv64-unknown-linux-gnu/14.0.1/../../../../riscv64-unknown-linux-gnu/bin/ld: /scratch/tc-testing/tc-apr-4/build-rv64gcv/sysroot/usr/lib64/lp64d/crt1.o: in function `_start': (.text+0x22): undefined reference to `main' /scratch/tc-testing/tc-apr-4/build-rv64gcv/lib/gcc/riscv64-unknown-linux-gnu/14.0.1/../../../../riscv64-unknown-linux-gnu/bin/ld: /scratch/tmp/ccI7WX4y.o:(.BTF+0x88): undefined reference to `a' collect2: error: ld returned 1 exit status