Message ID | 20230314180004.203287-1-raj.khem@gmail.com |
---|---|
State | Accepted, archived |
Commit | dcc891059c5f3a17781febfff4a4280b4b7c8754 |
Headers | show |
Series | systemtap: Disable dangling-pointer warning | expand |
On Tue, Mar 14, 2023 at 7:00 PM Khem Raj <raj.khem@gmail.com> wrote: > This is to fix build in RISCV64 > > | In constructor > 'symresolution_info::symresolution_info(systemtap_session&, bool)', > | inlined from 'int semantic_pass_symbols(systemtap_session&)' at > ../git/elaborate.cxx:1884:28: > | ../git/elaborate.cxx:2601:21: error: storing the address of local > variable 'sym' in '*s.systemtap_session::symbol_resolver' > [-Werror=dangling-pointer=] > | 2601 | s.symbol_resolver = this; // save resolver for early PR25841 > function resolution > | | ~~~~~~~~~~~~~~~~~~^~~~~~ > | ../git/elaborate.cxx: In function 'int > semantic_pass_symbols(systemtap_session&)': > | ../git/elaborate.cxx:1884:22: note: 'sym' declared here > | 1884 | symresolution_info sym (s); > | | ^~~ > | ../git/elaborate.cxx:1884:22: note: 's' declared here > FWIW: this isn't specific to RISCV64, I had the same in my branch for a while and I was seeing it on qemux86: But it was introduced only in newer gcc-13 snapshots, from my commit message: * since newer gcc-13 snapshot it detects dangling-pointer and fails due to Werror git/elaborate.cxx:2601:21: error: storing the address of local variable 'sym' in '*s.systemtap_session::symbol_resolver' [-Werror=dangling-pointer=] * the check was improved recently, probably in one of these: gcc $ git log --oneline a1292514f898e3d3f34fd843b967f72b779aaa88..6aa1f40a3263741d964ef4716e85a0df5cec83b6 | grep -i dangling fdac2bea53b -Wdangling-pointer: don't mark SSA lhs sets as stores 916ce577ad1 libstdc++: Implement P2255R2 dangling checks for std::pair d482b20fd34 warn-access: wrong -Wdangling-pointer with labels [PR106080]
diff --git a/meta/recipes-kernel/systemtap/systemtap_git.bb b/meta/recipes-kernel/systemtap/systemtap_git.bb index 072fcb310a..d320a8a5e0 100644 --- a/meta/recipes-kernel/systemtap/systemtap_git.bb +++ b/meta/recipes-kernel/systemtap/systemtap_git.bb @@ -34,6 +34,9 @@ PACKAGECONFIG[python3-probes] = "--with-python3-probes,--without-python3-probes, inherit autotools gettext pkgconfig systemd inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3-probes', 'setuptools3-base', '', d)} +# | ../git/elaborate.cxx:2601:21: error: storing the address of local variable 'sym' in '*s.systemtap_session::symbol_resolver' [-Werror=dangling-pointer=] +CXXFLAGS += "-Wno-dangling-pointer" + # exporter comes with python3-probes PACKAGES =+ "${PN}-exporter" FILES:${PN}-exporter = "${sysconfdir}/stap-exporter/* \
This is to fix build in RISCV64 | In constructor 'symresolution_info::symresolution_info(systemtap_session&, bool)', | inlined from 'int semantic_pass_symbols(systemtap_session&)' at ../git/elaborate.cxx:1884:28: | ../git/elaborate.cxx:2601:21: error: storing the address of local variable 'sym' in '*s.systemtap_session::symbol_resolver' [-Werror=dangling-pointer=] | 2601 | s.symbol_resolver = this; // save resolver for early PR25841 function resolution | | ~~~~~~~~~~~~~~~~~~^~~~~~ | ../git/elaborate.cxx: In function 'int semantic_pass_symbols(systemtap_session&)': | ../git/elaborate.cxx:1884:22: note: 'sym' declared here | 1884 | symresolution_info sym (s); | | ^~~ | ../git/elaborate.cxx:1884:22: note: 's' declared here Signed-off-by: Khem Raj <raj.khem@gmail.com> --- meta/recipes-kernel/systemtap/systemtap_git.bb | 3 +++ 1 file changed, 3 insertions(+)